1.Ubuntu20
2.Hadoop3.1.4
3.Jdk1.8_301
docker exec -it 容器id /bin/bash
apt-get update
apt-get install ssh
/etc/init.d/ssh start
~/.bashrc
文件,保存后每次进入容器会自动启动sshd 服务(这一句一定要放 在最后,一定要,不然后面会启动异常!)
cd ~/.ssh
ssh-keygen -t rsa
一路按回车cat ./id_rsa.pub >> ./authorized_keys
ssh localhost
登录本机了hadoop_env.sh
,修改JAVA_HOMEcore-site.xml
,输入<configuration>
<property>
<name>hadoop.tmp.dirname>
<value>file:/usr/local/hadoop/tmpvalue>
<description>Abase for other temporary directories.description>
property>
<property>
<name>fs.defaultFSname>
<value>hdfs://master:9000value>
property>
configuration>
(3)打开hdfs-site.xml 输入
<configuration>
<property>
<name>dfs.namenode.name.dirname>
<value>file:/usr/local/hadoop/namenode_dirvalue>
property>
<property>
<name>dfs.datanode.data.dirname>
<value>file:/usr/local/hadoop/datanode_dirvalue>
property>
<property>
<name>dfs.replicationname>
<value>3value>
property>
configuration>
(4)打开mapred-site.xml 输入
<configuration>
<property>
<name>mapreduce.framework.namename>
<value>yarnvalue>
property>
<property>
<name>yarn.app.mapreduce.am.envname>//这里的路径是你安装hadoop 的路径
<value>HADOOP_MAPRED_HOME=/usr/local/hadoopvalue>
property>
<property>
<name>mapreduce.map.envname>
<value>HADOOP_MAPRED_HOME=/usr/local/hadoopvalue>
property>
<property>
<name>mapreduce.reduce.envname>
<value>HADOOP_MAPRED_HOME=/usr/local/hadoopvalue>
property>
configuration>
(5)打开yarn-site.xml 输入
<configuration>
<property>
<name>yarn.nodemanager.aux-servicesname>
<value>mapreduce_shufflevalue>
property>
<property>
<name>yarn.resourcemanager.hostnamename>
<value>mastervalue>
property>
configuration>
配置完后hadoop 集群的基本环境已经配置完毕!保存修改后的镜像
docker commit 保存镜像输入docker images
可以查看保存镜像。
我用1 个节点作master,3 个节点作slave。namenode 与secondnamenode 同一
节点。
1.分别打开四个终端,每个终端界面运行刚刚修改后的镜像。分别表示Hadoop
集群中的master,s01、s02 和s03
docker run -it -h Master --name Master...
2.输入cat /etc/hosts
查看当前容器的ip,如查看master IP 为172.17.0.3
3.编辑4 个容器的hosts,把每一个主机和ip 保存进去
4.在master 主机输入ssh s01 等测试master 能否正常连接slave(这里建议全
部ssh 一遍,避免后面启动hadoop 要输入yes 或者报警告)
5.到这里,还差最后一个配置就要完成hadoop 集群配置了,打开master 上的
workers 文件(在hadoop 安装目录下的etc/hadoop 下),hadoop2 版本这个文件
叫做slaves,把原先的默认值localhost 删掉,输入三个slave 的主机名:s03
s02,s03.
在master 终端输入start-all.sh 启动集群(第一次启动,务必要format 一下namenode,后面再启动就不需要format 了)
格式化namenode
在hadoop-env.sh 添加以下内容
export HDFS NAMENODE USER=root
export HDFS DATANODE_USER=root
export HDFS_SECONDARYNAMENODE_USER=root
export YARN_RESOURCEMANAGER_USER=root
export YARN NODEMANAGER USER=root
至此,基于docker 的hadoop 集群搭建成功。