docker中搭建Hadoop集群

前提:jdk和ssh服务都已经安装完成,如未完成,请参考博主所写博客
1、创建镜像容器 -P将容器的所有端口映射到主机端口
docker run -itd -v /c/Users:/root/build -P -h master --name master --net mynetwork --ip 172.18.0.2 hadoop:master /bin/bash
docker run -itd -v /c/Users:/root/build -P -h slave1 --name slave1 --net mynetwork --ip 172.18.0.3 hadoop:slave1 /bin/bash
docker run -itd -v /c/Users:/root/build -P -h slave2 --name slave2 --net mynetwork --ip 172.18.0.4 hadoop:slave2 /bin/bash
2、运行容器
docker attach master
docker attach slave1
docker attach slave2
3、安装到/usr/local/目录下
cp jdk-8u181-linux-x64.tar.gz /usr/local/
4、解压
tar -zxvf jdk-8u181-linux-x64.tar.gz
5、重命名
mv hadoop-2.7.6 hadoop276
6、删除安装包
rm -rf hadoop-2.7.6.tar.gz
7、修改/etc/hosts文件
172.18.0.2 master
172.18.0.3 slave1
172.18.0.4 slave2
8、修改配置文件(配置时注释部分一定要删除)
配置vim hadoop-env.sh
export JAVA_HOME=/usr/java/jdk8/
配置vim yarn-env.sh
export JAVA_HOME=/usr/java/jdk8/
配置vim core-site.xml

修改配置文件
配置vim hadoop-env.sh
export JAVA_HOME=/usr/java/jdk8/
配置vim yarn-env.sh
export JAVA_HOME=/usr/java/jdk8/
配置vim core-site.xml
        <property>
                <name>fs.defaultFS</name>
                <value>hdfs://master:9000/</value>
        </property>
        <property>
                <name>hadoop.tmp.dir</name>
                <value>/home/hadoopdata</value>
        </property>
配置vim hdfs-site.xml
        <property>
                <name>dfs.replication</name>
                <value>1</value>
        </property>		
配置vim yarn-site.xml		
        <!--nomenodeManager获取数据的方式是shuffle-->
        <property>
                <name>yarn.nodemanager.aux-services</name>
                <value>mapreduce_shuffle</value>
        </property>
        <!--ResourceManager 对客户端暴露的地址。客户端通过该地址向RM提交应用程序,杀死应用程序等-->
        <property>
                <name>yarn.resourcemanager.address</name>
                <value>master:18040</value>
        </property>
        <!--ResourceManager 对ApplicationMaster暴露的访问地址。ApplicationMaster通过该地址向RM申请资源、释放资源等。-->
        <property>
                <name>yarn.resourcemanager.scheduler.address</name>
                <value>master:18030</value>
        </property>
        <!--ResourceManager 对NodeManager暴露的地址.。NodeManager通过该地址向RM汇报心跳,领取任务等。-->
        <property>
                <name>yarn.resourcemanager.resource-tracker.address</name>
                <value>master:18025</value>
        </property>
        <!--ResourceManager 对管理员暴露的访问地址。管理员通过该地址向RM发送管理命令等。-->
        <property>
                <name>yarn.resourcemanager.admin.address</name>
                <value>master:18141</value>
        </property>
        <!--ResourceManager对外web ui地址。用户可通过该地址在浏览器中查看集群各类信息。-->
        <property>
                <name>yarn.resourcemanager.webapp.address</name>
                <value>master:18088</value>				
配置mapred-site.xml
复制etc/hadoop/mapred-site.xml.template, 另存为 mapred-site.xml
cp mapred-site.xml.template mapred-site.xml
vim mapred-site.xml
		<property>
			<name>mapreduce.framework.name</name>
			<value>yarn</value>
		</property>
修改配置slave文件
slave1
slave2

9、创建目录存放数据文件
cd /home/
mkdir /home/hadoopdata
10、配置hadoop环境变量
vim ~/.bashrc
export HADOOP_HOME=/usr/local/hadoop276
export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
11、加载变量
source ~/.bashrc
启动hadoop集群进行测试
12、启动hadoop集群进行测试
首先测试试试服务是否开启,可通过/usr/sbin/sshd -D &命令开启
a、格式化文件系统: 在master 节点执行
hdfs namenode –format
b、启动hadoop(停止:sbin/stop-all.sh)
cd /usr/local/hadoop276
sbin/start-all.sh
c、验证:
在三个节点中输入 jps
d、保存为镜像
docker commit -a “axh” -m “centos7 with jdk ssh hadoop installed” master hadoop:master
docker commit -a “axh” -m “centos7 with jdk ssh hadoop installed” slave1 hadoop:slave1
docker commit -a “axh” -m “centos7 with jdk ssh hadoop installed” slave2 hadoop:slave2

猜你喜欢

转载自blog.csdn.net/YBK233/article/details/83095506