Docker安装Hadoop

本文详细介绍了在Ubuntu系统下使用Docker安装Hadoop的完整过程,包括创建基础镜像、安装JDK、配置Hadoop核心文件、设置静态IP、组建一主二从集群,并启动HDFS和YARN服务。

作者:zhuge···预计阅读 59 分钟·639 阅读·0 评论
Docker安装Hadoop

本文讲述在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


相关文章

评论

加载中...