本文讲述在Ubuntu下创建使用docker基于ubuntu镜像创建hadoop.实现以下功能
1、为一主二从
2、docker静态地址
3、全部自定义安装
一、创建一个安装好jdk的镜像
1、创建一个ubuntu容器
sudo docker pull ubuntu
2、映射主机上的java目录到启动的容器中
make ~/build
#-r表示递归
cp -r /usr/lib/jvm/java-8-openjdk-amd64 ~/build
3、下载Hadoop到文件夹
wget https://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common/hadoop-3.3.2/hadoop-3.3.2.tar.gz
4、启动容器
docker run -it -v /home/bs/build:/root/build --name ubuntu ubuntu
5、进bash更新和安装 vim ssh
apt update & apt upgrade
apt install vim ssh
#选择6,70
#启动ssh服务
/etc/init.d/ssh start
#写入启动项
vim ~/.bashrc
#在最后写上 /etc/init.d/ssh start
#立即加载配置
source ~/.bashrc
#设置免密登陆
cat /root/.ssh/id_rsa.pub >> authorized_keys
#试验
ssh localhost
6、移动jdk至容器内
mkdir /usr/lib/jvm
#cp -r /root/build/java-8-openjdk-amd64/ /usr/lib/jvm/java-8-openjdk-amd64
mv /root/build/java-8-openjdk-amd64/ /usr/lib/jvm/java-8-openjdk-amd64
7、设置JAVA环境变量
vim ~/.bashrc
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64/
export PATH=$PATH:$JAVA_HOME/bin
:wq
source ~/.bashrc
8返回主机
exit
通过docker ps 查看ubuntu的镜像ID
9、创建一个新的image
docker commit [id] ubuntu/jdkinstalled
二、安装Hadoop
1、新启动一个docker
docker run -it -v /home/bs/build/:/root/build --name ubuntu-jdk1 ubuntu/jdkinstalled
2、进入ubuntu-jdk1 bash
3、解压hadoop
tar -zxvf /root/build/hadoop-3.3.2.tar.gz -C /usr/local/
cd /usr/local/hadoop-3.3.2/bin
运行 ./hadoop version 即可查看到内容
4、编辑/etc/hadoop/core-site.xml
<configuration>
<property>
<name>hadoop.tmp.dir</name>
<value>file:/usr/local/hadoop/tmp</value>
<description>Abase for other temporary directories.</description>
</property>
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:9000</value>
</property>
</configuration>
5、编辑hadoop-env.sh
vim hadoop-env.sh
#在顶部加入
JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64/
6、编辑hdfs-site.xml
#dfs.replication = 3 是3个副本
vim hdfs-site.xml
<configuration>
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/usr/local/hadoop/tmp/dfs_name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/usr/local/hadoop/tmp/dfs_data</value>
</property>
</configuration>
7、编辑mapred-site.xml
vim mapred-site.xml
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
可使用yarn框架、jobhistory使用地址以及web地址
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.jobhistory.address</name>
<value>bigdata:10020</value>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>bigdata:19888</value>
</property>
</configuration>
8、编辑yarn-site.xml
vim yarn-site.xml
<configuration>
<!-- Site specific YARN configuration properties -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
<description>NodeManager上运行的附属服务。需配置成mapreduce_shuffle,才可运行MapReduce程序</description>
</property>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>master</value>
<description>resourcemanager</description>
</property>
</configuration>
9、创建一个安装好hadoop的image
使用docker ps查看id
然后
docker commit [id] ubuntu/hadoopinstalled
三、启用集群
1、创建一个自定义的网络,网段172.18.0.0/16,网络名称为: hadoopnet。
docker network create --subnet=172.18.0.0/16 hadoopnet
2、分别启动三个
常用端口
HDFS页面:50070
YARN的管理界面:8088
HistoryServer的管理界面:19888
Zookeeper的服务端口号:2181
Mysql的服务端口号:3306
Hive.server1=10000
Kafka的服务端口号:9092
azkaban界面:8443
Hbase界面:16010,60010
Spark的界面:8080
Spark的URL:7077
docker run -it -h master --name master -p 9870:9870 -p 9000:9000 -p 50070:50070 --network hadoopnet --ip 172.18.0.2 ubuntu/hadoopinstalled
docker run -it -h slave01 --name slave01 --network hadoopnet --ip 172.18.0.3 ubuntu/hadoopinstalled
docker run -it -h slave02 --name slave02 --network hadoopnet --ip 172.18.0.4 ubuntu/hadoopinstalled
3、修改hosts文件
vim /etc/hosts
#修改master slave01 slave01的IP
master 172.18.0.2
slave01 172.18.0.3
slave02 172.18.0.4
4、同步其它2台的hosts
scp /etc/hosts slave01:/etc/hosts
scp /etc/hosts slave02:/etc/hosts
如果之前没有把ssh公钥复制,需要从/root/.ssh/id_rsa.pub复制
ssh-copy-id root@master
ssh-copy-id root@slave01
ssh-copy-id root@slave02
5、在master中解决可能存在的问题
vi /etc/profile
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
source /etc/profile
more https://blog.csdn.net/weixin_49736959/article/details/108897129
6、配置works
vim /usr/local/hadoop-3.3.2/etc/hadoop/workers
slave01
slave02
master
7、hdfs格式化
cd /usr/local/hadoop-3.3.2
bin/hdfs namenode -format
8、启动
sbin/start-all.sh
如果出错错误,把namenode datanode以及日志全部删掉重新format
9、运行jps检查
也可以从以下地址找到相关信息
其它:http://dblab.xmu.edu.cn/blog/install-hadoop-simplify/
其它:https://my.oschina.net/u/4231975/blog/4523266

评论