docker快速安装hadoop单机、集群部署

在这里插入图片描述

Docker安装Hadoop集群

一、单机hadoop

首先进入我们已有容器:(docker exec -it NAMES(名字) COMMAND ‘/bin/bash’)
mkdir /usr/hadoop
Cd /usr/hadoop
解压上传来的hadoop,或wget获取http://mirrors.sonic.net/apache/hadoop/common/hadoop-2.8.3/hadoop-2.8.3.tar.gz
命令:tar xvzf 压缩包(小编一般解压完直接删除压缩包)

准备工作已完成,开始搭建hadoop

编辑 .bashrc
Vi ~/.bashrc
加入如下内容:

1.# Set Hadoop-related environment variables
	export HADOOP_HOME=/usr/local/hadoop
2.# Add Hadoop bin/ directory to PATH
	export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin
刷新一下:

Source ~/.bashrc

  • 此处有坑:
    找不到which的话执行:yum install which
创建三个文件:

先进cd /usr/local/hadoop/hadoop-2.7.2
mkdir tmp作为Hadoop的临时目录
mkdir datanode作为NameNode的存放目录
mkdir namenode作为DataNode的存放目录

  • 配置文件:cd /usr/local/hadoop/hadoop-2.7.2/etc/hadoop

三个文件:
1.core-site.xml配置:

<configuration>
<property>
        <name>hadoop.tmp.dir</name>
        <value>/usr/local/hadoop/hadoop-2.7.2/tmp</value>
   </property>
   <property>
        <name>fs.default.name</name>
        <value>hdfs://master:9000</value>
        <final>true</final>
</configuration>

2.hdfs-site.xml配置:(一些配置为了集群而准备)

<configuration>
   <property>
        <name>dfs.replication</name>
        <value>2</value>
   </property>
   <property>
        <name>dfs.namenode.name.dir</name>
        <value>/usr/local/hadoop/hadoop-2.7.2/namenode</value>
        <final>true</final>
   </property>
   <property>
        <name>dfs.namenode.name.dir</name>
        <value>/usr/local/hadoop/hadoop-2.7.2/datanode</value>
        <final>true</final>
   </property>
</configuration>

3.mapred-site.xml配置:(有个mapred-site.xml.template文件,更改为mapred-site.xml)

<configuration>
   <property>
        <name>mapred.job.tracker</name>
        <value>master:9001</value>
   </property>
</configuration>

  • 下面就指定JAVA_HOME环境变量:

使用命令vi hadoop-env.sh,添加如下配置:
# The java implementation to use.
export JAVA_HOME=/usr/java/jdk1.8.0_141

接着格式化 namenode
执行命令:hadoop namenode -format
此刻hadoop配置就完成了。

二、 安装SSH:

使用yum: yum install passwd openssl openssh-server -y
因为我们是docker操作,他并不会自动启动,所以我们去给他加到。Bashrc中

执行命令添加如下内容:Vi ~/.bashrc
			#autorun 
			/usr/sbin/sshd
执行命令生成秘钥公钥:
			ssh-keygen -t rsa -P '' -f ~/.ssh/id_dsa
			cd ~/.ssh/ 
			cat id_dsa.pub >> authorized_keys
			
chmod 700 ~/.ssh/ 
chmod 600 ~/.ssh/authorized_keys
  • 补:
    无密登录问题:bash: ssh: command not found
    解决办法:yum -y install openssh-clients

到此位置我们保存容器为新的镜像即可:
docker commit -m “hadoop install” 61c9cf8da12f linux:hadoop
此时我们已经装好了一个单机版的hadoop镜像

检测ssh
命令1./usr/sbin/sshd
命令2.ssh
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-t5BoKntl-1597990905913)(https://s1.51cto.com/images/blog/201903/04/4eb2a0101cfc0e1e52c22123dbb70d72.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)]

三、 docker hadoop集群

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NOZ9rwJN-1597990905915)(https://s1.51cto.com/images/blog/201903/04/38c02fc050859938301951966683efd6.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)]

切记: hostname、hosts配置在容器内修改了,只能在本次容器生命周期内有效。如果容器退出了,重新启动,这两个配置将被还原。且这两个配置无法通过commit命令写入镜像。

  • 三个容器启动后分别配置hosts
    vi /etc/hosts 注意修改ip地址:

    172.17.0.2 master
    172.17.0.3 slave1
    172.17.0.4 slave2

    启动sshd /usr/sbin/sshd

配置slaves:vi /usr/local/hadoop/hadoop-2.7.2/etc/hadoop/slaves
将:master
slave1
slave2
添加进去之后:

分别启动Hadoop:(进入/usr/local/hadoop/hadoop-2.7.2/sbin)
			start-all.sh
分别查看--》节点上执行jps命令

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-iX5C6Yx1-1597990905917)(https://s1.51cto.com/images/blog/201903/04/4d2b9d6171e785e86e3c02dd5a916e0e.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)]

master如下:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PCUDuZII-1597990905918)(https://s1.51cto.com/images/blog/201903/04/c97a720dafc6508be1ba1da7374485a6.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)]

slave1如下:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-aYjkM6ik-1597990905919)(https://s1.51cto.com/images/blog/201903/04/043d9768841a6a844be11d1f71b151f2.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)]

slave2如下:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8FWTemyU-1597990905922)(https://s1.51cto.com/images/blog/201903/04/0b02c091bf77d55df8fbbcd1c230e811.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)]

还可以通过Web页面看到查看DataNode和NameNode的状态:http://IP:50070/ :

大功告成,docker—hadoop集群搭建完毕。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值