Tag: hadoop

使用Hadoop和Docker进行代码开发的过程

我在Hadoop学习了一段时间,并且安装了一切虚拟机,并且能够使用Intellij编写Java代码来执行MapReduce作业。 这一切都很棒,但是我想学习MapReduce,而且还有更多的细节,所以我有兴趣在自己的机器上设置一些东西来练习。 我看到Cloudera拥有Docker镜像,允许在某种Linux风格下安装Hadoop生态系统。 我是docker工人,但听起来不错,尤其是因为他们有一个伪集群的多节点选项,我不需要繁琐的虚拟机。 我的问题是,如何实际编写MapReduce,Spark或任何代码在容器中运行? 在我的主机上没有Hadoop / Spark / etc的jar或者库,这些都在图像中,而且在docker上看起来有些容器是命令行驱动的。 所以不知道如何在图像中使用IDE。 那么,当所有的依赖关系都在图像中的时候,如何开发代码呢?

在Linux上,Docker可以在没有虚拟机的情况下隔离应用程序。 在Linux上或虚拟机上的Docker中,应用程序运行速度会更快吗?

在Linux上,Docker可以在没有虚拟机的情况下隔离应用程序。 在Linux上或虚拟机上的Docker中,应用程序运行速度会更快吗?

如何在Docker中安装Hadoop从站使本地计算机上的主节点能够处理这些从节点?

我想在自己的计算机上安装多个从站节点,并且在我的本地计算机上还有一个主节点。我想这样可以很容易地上传数据和MR编程。 但是我很困惑的IP和端口configuration。 处理这个configuration是否容易? 但是,我也认为我可以把所有的节点变成docker,并configurationdockernetworking和数据共享目录。 所以我可以做同样的事情。 如果我可以处理它,哪种方法更好?

Docker上的Hadoop(纱线)控制资源消耗(CPU和RAM)

我有一个运行在Docker上的hadoop(2.7.3,伪集群节点,单节点)。 该docker运行在64核心的128位至强处理器的Xeon机器上。 在执行mapreduce的时候,我可以从一眼看出,它有CPU使用率的峰值,有时超过100%。 短跑进程的尖峰(我可以看到它是那些hadoop进程之一)。 op,我将最高输出(批处理模式)转储到一个文件,并对文件执行运行后检查。 我得到这个有问题的命令: /opt/jdk/bin/java -Djava.net.preferIPv4Stack=true -Dhadoop.metrics.log.level=WARN -Xmx200m -Djava.io.tmpdir=/tmp/hadoop-hadoop/nm-local-dir/usercache/hadoop/appcache/application_1494685463128_0031/container_1494685463128_0031_01_000008/tmp -Dlog4j.configuration=container-log4j.properties -Dyarn.app.container.log.dir=/usr/local/hadoop/logs/userlogs/application_1494685463128_0031/container_1494685463128_0031_01_000008 -Dyarn.app.container.l+ 究竟是什么? 它仍然被截断,尽pipe我已经在shell上完成了这个技巧: export COLUMNS=$((COLUMNS*48)) export LINES=$((LINES/48)) top -c -b -n 2000000 > eventsbatcher.top.out 无论如何,这是hadoop; 并可能是节点pipe理器(?)。 如何驯服它? 我应该在Docker级别上驯服它(确保没有容器使用超过X的CPU / RAM),还是应该在hadoop方面控制它? 或两者? 我想这应该是两个。 在hadoop方面,实际上我已经在我的yarn-site.xml中有这个了。 我怎么知道它被尊重? 这+ 100%的CPU使用率让我觉得这个特别的configuration不被尊重。 也许我错了。 <property> <name>yarn.nodemanager.resource.memory-mb</name> <value>8192</value> </property> <property> <name>yarn.nodemanager.resource.cpu-vcores</name> <value>8</value> </property> docker方呢? 如何限制/驯服我的hadoop容器? 在此先感谢答案/指针!

Kubernetes中的多节点Hadoop

我已经安装了minikube单节点Kubernetes集群,我只想在这个kubernetes节点内部署一个多节点hadoop集群的帮助,我需要一个起点!

加载hortonworks docker镜像时出错

将图像加载到docker时出现下一个错误: [root@xxx docker]# docker load < HDP_2.6_docker_05_05_2017_15_01_40.tar.gz b1b065555b8a: Loading layer [==================================================>] 202.2 MB/202.2 MB bcedae1b8073: Loading layer [=================================> ] 8.437 GB/12.68 GB ApplyLayer退出状态1 stdout:stderr:写入/usr/lib/ams-hbase/lib/hadoop-common-2.7.3.2.6.0.3-8.jar:设备上没有剩余空间 我也检查了这台机器是否有足够的空间: [root@Jerusalem docker]# df -a Filesystem 1K-blocks Used Available Use% Mounted on rootfs – – – – / sysfs 0 0 0 – /sys proc 0 0 0 – /proc devtmpfs […]

Docker容器中的Hadoop HDFS

我之前使用docker为python API和UI创build了Images,现在我转而使用docker来自动部署Hadoop HDFS / YARN集群。 我想问一下,为hadoop(DataNode / NodeManager)准备Docker镜像是否会成为我自动化的解决scheme,或者在这个领域使用docker是否有任何复杂的问题?

Hadoop Docker设置 – WordCount教程

我正在按照教程来运行在这里提到的WordCount.java ,当我在教程中运行以下行 hadoop jar wordcount.jar org.myorg.WordCount /user/cloudera/wordcount/input /user/cloudera/wordcount/output 我得到以下错误 – 17/09/04 01:57:29 INFO client.RMProxy: Connecting to ResourceManager at /0.0.0.0:8032 17/09/04 01:57:30 INFO ipc.Client: Retrying connect to server: 0.0.0.0/0.0.0.0:8032. Already tried 0 time(s); retry policy is RetryUpToMaximumCountWithFixedSleep(maxRetries=10, sleepTime=1000 MILLISECONDS) 我用的docker图片是docker pull cloudera/quickstart 没有Hadoop和Docker的设置教程,所以如果能告诉我要克服这些问题的configuration将会很有帮助。

Pyspark:远程Hive仓库位置

我需要从Pyspark读取/写入存储在远程Hive Server中的表。 我所知道的这个远程Hive是在Docker下运行的。 从Hadoop色调我find了两个网站的iris表,我尝试从中select一些数据: 我有一个表metastoreurl: http://xxx.yyy.net:8888/metastore/table/mytest/iris 和表位置url: hdfs://quickstart.cloudera:8020/user/hive/warehouse/mytest.db/iris 我不知道为什么最后的url包含quickstart.cloudera:8020 。 也许这是因为Hive在Docker下运行? 讨论访问Hive表Pyspark教程写道: https://spark.apache.org/docs/latest/sql-programming-guide.html#hive-tables 使用Hive时,必须使用Hive支持实例化SparkSession,包括连接到持久性Hive Metastore,支持Hive serdes和Hive用户定义的函数。 没有现有Hive部署的用户仍然可以启用Hive支持。 当未由hive-site.xmlconfiguration时,上下文自动在当前目录中创buildmetastore_db,并创build一个由spark.sql.warehouse.dirconfiguration的目录,该目录默认为Spark应用程序当前目录中的spark-warehouse目录开始。 请注意,自从Spark 2.0.0以来,hive-site.xml中的hive.metastore.warehouse.dir属性已被弃用。 而是使用spark.sql.warehouse.dir来指定仓库中数据库的默认位置。 您可能需要向启动Spark应用程序的用户授予写权限。 在我的情况下,我设法得到hive-site.xml既没有hive.metastore.warehouse.dir也没有spark.sql.warehouse.dir属性。 Spark教程build议使用下面的代码来访问远程Hive表: from os.path import expanduser, join, abspath from pyspark.sql import SparkSession from pyspark.sql import Row // warehouseLocation points to the default location for managed databases and tables val warehouseLocation = new File("spark-warehouse").getAbsolutePath […]

Hue / Hive用户root不允许冒充Hue

情况:我已经在不同的Docker容器中设置了Hive,Hue和Hadoop。 在同一个Dockernetworking中。 我为每个Hadoop Namenode,2个Datanodes,1个Hue实例,1个Hive Server和一个Postgres Metastore创build了一个容器。 我能够在namenode的hdfs-site.xml中configurationhue代理用户,并且可以通过webhdfs浏览文件系统。 然而,对于Hive,我得到了Hue中的错误: Failed to open new session: java.lang.RuntimeException: org.apache.hadoop.ipc.RemoteException (org.apache.hadoop.security.authorize.AuthorizationException): User: root is not allowed to impersonate hue 我可以在Hive中创buildHive表格,或者在Sparkjobs中写入Hive表格。 我到目前为止所尝试的是: 我试过添加类似的属性 hive.server2.proxy.user = hue hive.server2.enable.impersonation =真 hadoop.proxyuser.hue.hosts = * hive.server2.authentication = NONE 在不同的configuration文件中,如: core-site.xml在hdfs-namenodeconfiguration文件夹中 hive-hadoop文件夹中的core-site.xml 两者都是hdfs-site.xml hive-conf文件夹中的hive-site.xml 这个问题大部分都是在类似的问题上提出的,但是现在看起来并不是最新的。 对于一些房产蜂房说:财产不明 我需要澄清的是: 什么是正确的文件添加configuration? 什么是正确的财产补充? 我是否必须添加一些configuration到色调的metaore? 附加信息: – Hive版本:2.3.1 – Hive Hadoop版本:2.7.4 […]