[bigdata-012]部署CDH5 Hadoop 的伪分布式容器

来源:互联网 发布:php base64_encoder 编辑:程序博客网 时间:2024/06/10 13:08
1. CDH 伪分布式容器

所谓伪分布式,就是在一个容器里,部署Hadoop集群的所有功能节点,主要用于开发和测试。

 

2. 选择Hadoop镜像的两个条件:
    跟host做端口映射。
    伪分布式Hadoop。

 

3. pull image
    docker pull ingensi/hadoop-cdh-pseudo:cdh5
    该镜像帮助文档:
https://hub.docker.com/r/ingensi/hadoop-cdh-pseudo/

 

4. 运行这个镜像
docker run --name dck-hadoop-cdh5  -d -p 8020:8020 -p 50070:50070 -p 50470:50470 -p 8030:8030 -p 8031:8031 -p 8032:8032 -p 8033:8033 -p 8088:8088  ingensi/hadoop-cdh-pseudo:cdh5
这个命令,将HDFS namenode和YARN resourcemanager的端口和host的端口做了映射,暂时不对datanode, nodemanager, historyserver做端口映射,因为从对外功能上而言,对namenode和resourcemanager做映射就足够使用了。

 

5. 运行容器bash
docker exec -it dck-hadoop-cdh5 bash

 

6. 在bash检查下进程
ps axu
能看到多个hadoop进程。也就是:
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
hdfs      2339  0.1  2.8 1560444 229784 ?      Sl   03:48   0:16 /usr/java/jdk1.7.0_65/bin/java -Dproc_namenode -Xmx1000m -Dhadoop.log.dir=/usr/lib/hadoop/logs -Dhadoop.log.file=hadoop.log
hdfs      2410  0.1  2.5 1543052 208128 ?      Sl   03:48   0:16 /usr/java/jdk1.7.0_65/bin/java -Dproc_datanode -Xmx1000m -Dhadoop.log.dir=/usr/lib/hadoop/logs -Dhadoop.log.file=hadoop.log
yarn      2487  0.5  3.3 1735864 274596 ?      Sl   03:48   0:50 /usr/java/jdk1.7.0_65/bin/java -Dproc_resourcemanager -Xmx1000m -Dhadoop.log.dir=/usr/lib/hadoop-yarn/logs -Dyarn.log.dir=/
yarn      2726  0.3  2.8 1588472 234676 ?      Sl   03:48   0:29 /usr/java/jdk1.7.0_65/bin/java -Dproc_nodemanager -Xmx1000m -server -Dhadoop.log.dir=/usr/lib/hadoop-yarn/logs -Dyarn.log.d
mapred    2795  0.1  2.8 1561336 231624 ?      Sl   03:48   0:12 /usr/java/jdk1.7.0_65/bin/java -Dproc_historyserver -Xmx1000m -Dhadoop.log.dir=/usr/lib/hadoop/logs -Dhadoop.log.file=hadoo
它们分别对应如下Hadoop功能节点:
  • HDFS: 1 namenode and 1 datanode
  • YARN: 1 resourcemanager, 1 nodemanager and 1 historyserver (mapreduce)

7. 测试hdfs是否正常
    切换到hdfs用户
    su hdfs
    cd

 

    用vi编辑一个简单文本文件,任意输入两行即可。
    vi readme

 

    在hdfs上创建一个目录,以存放readme文件
    hdfs dfs -mkdir -p /user/hdfs/test

 

    将readme文件复制到这个目录
    hdfs dfs -put readme /user/hdfs/test

 

    显示这个文件的内容
    hdfs dfs -cat /user/hdfs/test/readme

 

    如果上述步骤均能顺利执行,表明分布式文件系统功能正常。
   
    进一步测试,可以重启容器,或者主机,观察hadoop hdfs变化,重测上述流程。
   
0 0
原创粉丝点击