Tag: hadoop

从运行Spark的另一个Docker容器写入Docker中运行的HDFS

我有一个spark + jupyter的docker镜像( https://github.com/zipfian/spark-install ) 我有另外一个hadoop的docker镜像。 ( https://github.com/kiwenlau/hadoop-cluster-docker ) 我在Ubuntu上面的2个镜像中运行2个容器。 对于第一个容器:我能够成功启动jupyter并运行python代码: import pyspark sc = pyspark.sparkcontext('local[*]') rdd = sc.parallelize(range(1000)) rdd.takeSample(False,5) 对于第二个容器: 在主机Ubuntu操作系统,我能够成功地去 web浏览器localhost:8088:然后浏览Hadoop的所有应用程序 localhost:50070:并浏览HDFS文件系统。 现在我想从jupyter(运行在第一个容器中)写入HDFS文件系统(在第二个容器中运行)。 所以我添加额外的行 rdd.saveAsTextFile("hdfs:///user/root/input/test") 我得到的错误: HDFS URI,无主机:hdfs:/// user / root / input / test 我不正确地给hdfspath? 我的理解是,我应该能够与另一个运行spark的容器运行hdfs的docker容器通信。 我错过了什么? 谢谢你的时间。 我还没有尝试docker撰写。

如何在Docker容器中保存HDFS数据

我有一个hadoop的docker形象。 (在我的情况是https://github.com/kiwenlau/hadoop-cluster-docker ,但问题适用于任何hadoop泊坞窗图像) 我正在运行docker集装箱如下所示.. sudo docker run -itd –net=hadoop –user=root -p 50070:50070 \ -p 8088:8088 -p 9000:9000 –name hadoop-master –hostname hadoop-master \ kiwenlau/hadoop 我正在从主机ubuntu机器上运行的java写数据到hdfs文件系统。 FileSystem hdfs = FileSystem.get(new URI(hdfs://0.0.0.0:9000"), configuration) hdfs.create(new Path("hdfs://0.0.0.0:9000/user/root/input/NewFile.txt")), 启动docker时如何挂载音量,以保持“NewFile1.txt”。 容器内的哪个“path”对应于HDFSpath“/user/root/input/NewFile.txt”?

在被调用的docker容器之外实例化docker容器

我试图以编程方式启动docker容器在我的Java代码,将做一些数据处理,然后死一旦完成。 这是因为我们没有大量的docker集装箱不断在生产集群上进行监听。 我find了docker remote api,它允许我发送http的调用来执行各种docker命令。 我还通过Spotify发现了一个很好的库,它将环绕这些调用。 我的问题是: 如果调用远程api的代码位于docker容器中,那么在该代码中实例化的容器是否存在于callee docker容器中? 本质上是docker工人的docker工人。 这是不理想的,因为这个代码实例化的一些潜在的容器将使用大量的RAM,这将超过为被调用容器分配的RAM,特别是如果我们随时实例化n个容器。 我怎么能让Docker容器实例化与住在宿主中的其他容器一起生活? 有没有什么事情需要做,以便在Hadoop集群中工作? docker api当前正在侦听默认的unix套接字,是否需要将其更改为端口才能在集群中工作? Docker和Hadoop对我来说是新的,所以任何信息都将是最有帮助的。

是什么原因导致了GCS接收器抛出OutOfMemoryExceptionexception

我正在使用flume写入Google云端存储。 Flume监听HTTP:9000 。 我花了一些时间来使其工作(添加gcs库,使用凭证文件…),但现在它似乎通过networking进行通信。 我发送非常小的HTTP请求为我的testing,我有足够的RAM可用: curl -X POST -d '[{ "headers" : { timestamp=1417444588182, env=dev, tenant=myTenant, type=myType }, "body" : "some body ONE" }]' localhost:9000 我第一次请求遇到这个内存exception(当然,它停止工作): 2014-11-28 16:59:47,748 (hdfs-hdfs_sink-call-runner-0) [INFO – com.google.cloud.hadoop.util.LogUtil.info(LogUtil.java:142)] GHFS version: 1.3.0-hadoop2 2014-11-28 16:59:50,014 (SinkRunner-PollingRunner-DefaultSinkProcessor) [ERROR – org.apache.flume.sink.hdfs.HDFSEventSink.process(HDFSEventSink.java:467)] process failed java.lang.OutOfMemoryError: Java heap space at java.io.BufferedOutputStream.<init>(BufferedOutputStream.java:76) at com.google.cloud.hadoop.fs.gcs.GoogleHadoopOutputStream.<init>(GoogleHadoopOutputStream.java:79) at com.google.cloud.hadoop.fs.gcs.GoogleHadoopFileSystemBase.create(GoogleHadoopFileSystemBase.java:820) at org.apache.hadoop.fs.FileSystem.create(FileSystem.java:906) […]

创buildBigInsights(IBM Hadoop)Docker镜像,sysctl问题

我正在尝试使用IBM BigInsights QuickStart Edition创build一个Docker镜像,并使用本地软件安装程序在DOCKER容器云(例如IBM Bluemix)上运行,这可以在此处find: http://www-01.ibm.com/software/data/infosphere/biginsights/quick-start/downloads.html 问题是,在安装过程中,我得到的错误是某些使用sysctl访问的内核参数设置不正确。 如果我使用Dockerfile调整它们,我得到一个错误: 只读文件系统 现在我想知道是否可以创build一个BigInsights镜像,因为必须在主机上设置内核参数,当然我无法控制容器云。 Dockerfile看起来像这样: FROM centos:latest COPY biginsights-3.0.0.2-quickstart-nonproduction-Linux-amd64-b20150120_1502 /usr/local/biginsights-3.0.0.2-quickstart-nonproduction-Linux-amd64-b20150120_1502 RUN yum -y install tar RUN yum -y install hostname RUN yum -y install expect RUN yum -y install net-tools RUN yum -y install openssh RUN yum -y install openssh-clients RUN yum -y install openssh-server RUN yum -y install […]

运行Mesos集群并在集群上运行其他Docker容器的Docker容器(使用Marathon)

我只是从Mesos,Docker和Marathon开始,但是我无法find任何可以回答这个问题的地方。 我想build立一个在Docker上运行的Mesos集群 – 这里有一些互联网资源,但是我想在Mesos本身上运行Docker容器。 这将意味着在其他Docker容器中运行的Docker容器。 这有问题吗? 不知何故,它似​​乎并不直观,但似乎这样做真的很方便。 理想情况下,我想运行Mesos群集(使用Marathon,Chronos等),然后在Docker容器中运行Hadoop。 这是可能的还是标准的做事方式? 任何其他build议,什么好的做法是值得赞赏的。 谢谢

基于Docker的Ambari 1.7集群安装向导“repo URL dead(404)while'运行安装代理脚本'

我试图从Ambari源设置一个简单的双节点集群(包括一个Ambari服务器节点),并且在DataNode上安装Ambari代理期间,它似乎伸出一个URL, http://public-repo-1.hortonworks.com/ambari/centos6/1.x/updates/repodata/repomd.xm ,这似乎已经死了。 我很漂亮的绿色,并找不到a)find正确的URL和b)在脚本中更改它。 build立 根据Docker Ambari开发的官方文档 ,我下载并构build了Ambari(1.7版本最新版本)的Docker镜像(我在OS X上): git clone https://github.com/apache/ambari.git cd ambari docker build -t ambari/build ./dev-support/docker/docker build设花了相当长的时间(小时),但我很高兴看到它的工作。 docker岩石! 然后,我使用-it Docker标志在交互模式下基于上面构build的映像启动了一个Docker容器,作为ambari-master 。 这个容器是作为Ambari服务器的。 一旦进入,我得到它的ssh private key写在某处我可以复制它在Ambari群集安装wizzard期间问。 服务器的Docker命令如下所示(对文档稍作修改,为便于阅读,使用虚线): # From the cloned {ambari_root} directory: docker run \ –privileged \ -h master.coderigo.com \ –name ambari-master \ -p 80:80 -p 5005:5005 -p 8080:8080 \ -v $(pwd):/tmp/ambari […]

将yamr作业提交给远程集群时发生ClassNotFoundException

我有一个伪分布的hadoop集群,作为docker容器运行 docker run -d -p 50070:50070 -p 9000:9000 -p 8032:8032 -p 8088:8088 –name had00p sequenceiq/hadoop-docker:2.6.0 /etc/bootstrap.sh -d 它的configuration在这里: https : //github.com/sequenceiq/docker-hadoop-ubuntu/ 我可以成功处理hdfs,访问ui,但坚持从java提交工作,我得到了 ClassNotFoundException:Class com.github.mikhailerofeev.hadoop.Script $ MyMapper not found 以下是示例代码: @Override public Configuration getConf() { String host = BOOT_TO_DOCKER_IP; int nameNodeHdfsPort = 9000; int yarnPort = 8032; String yarnAddr = host + ":" + yarnPort; String […]

DOCKER容器和主机上的运行时内核参数不一致

我的主机位于Ubuntu 14.04.2 LTS上,我正在使用最新的centos基础映像来创buildIBM InfoSphere BigInsights的DOCKER映像,以便将其推送到Bluemix Container Cloud。 我已经解决了几乎所有的问题,但是我坚持使用sysctl设置运行时内核参数,因为它们有错误的值,安装程序会抱怨。 sysctl -a |grep net.ipv4.ip_local_port_range net.ipv4.ip_local_port_range = 32768 61000 当然,它不可能在DOCKER容器中设置它们,我得到以下错误: sysctl -w net.ipv4.ip_local_port_range="1024 64000" sysctl: setting key "net.ipv4.ip_local_port_range": Read-only file system 所以我在主机系统上设置了参数: sudo sysctl -w net.ipv4.ip_local_port_range="1024 64000" net.ipv4.ip_local_port_range = 1024 64000 sudo sysctl -a |grep net.ipv4.ip_local_port_range net.ipv4.ip_local_port_range = 1024 64000 我甚至重build了整个图像,重新创build容器,但仍然在我得到的DOCKER容器中: sysctl -a |grep net.ipv4.ip_local_port_range net.ipv4.ip_local_port_range = 32768 […]

BigTable泊坞窗图像启动问题:util.NativeCodeLoader:无法加载您的平台的原生Hadoop库

我正在关注BigTable的教程: https : //cloud.google.com/bigtable/docs/hbase-shell-quickstart 当我尝试启动我的Docker镜像时,出现以下错误: C:\ dev \ GoogleCloudBigtable-quickstart> docker run -it bigtable -hbase / bin / bash -c“hbase shell” 2015-05-07 18:11:52,366 WARN [main] util.NativeCodeLoader: Unable to load native-hadoop library for your platform… using builtin-java classes where applicable NativeException: java.io.IOException: java.lang.reflect.InvocationTargetException initialize at /hbase/bin/../lib/ruby/hbase/hbase.rb:41 (root) at /hbase/bin/../bin/hirb.rb:118 2015-05-07 18:11:52,958 WARN [Thread-3] hbase.BigtableOptionsFactory: Shutdown is commencing […]