Docker手工安装Hadoop集群

本文详细介绍了如何使用Docker容器来搭建Hadoop集群,包括创建Dockerfile,安装JDK,设置SSH免密登录,配置Hadoop环境,以及通过Ansible进行文件同步和集群初始化。整个过程旨在简化Hadoop集群的安装和管理。

安装Hadoop集群一般来讲比较困难,我们会采用CDH安装等集成环境,不过在安装这些集成环境时,比较臃肿,安装也很困难。我们尝试使用docker进行安装集群,从0开始,根据业务要求进行定制。

只要你认真细致,实际上安装hadoop集群也不是很难哦。

准备docker环境

在这个dockerfile里面,我们先安装jdk1.8,免费后面要继续安装

同事,生成秘钥文件,为了将来机器之间免密访问

# 生成的新镜像以centos镜像为基础
FROM centos
# 指定作者信息
MAINTAINER by Rudolfyan
# 安装openssh-server
RUN yum -y install openssh-server

RUN mkdir /var/run/sshd
RUN ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key
RUN ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key

# 指定root密码
RUN /bin/echo 'root:123456'|chpasswd
RUN /bin/sed -i 's/.*session.*required.*pam_loginuid.so.*/session optional pam_loginuid.so/g' /etc/pam.d/sshd
RUN /bin/echo -e "LANG=\"en_US.UTF-8\"" > /etc/default/local

RUN yum -y install java-1.8.0-openjdk.x86_64

EXPOSE 22
CMD /usr/sbin/sshd -D

准备hadoop环境

我们下载hadoop3.2.1版本,通过URL直接下载,放到和dockerfile相同层次的目录下。


[root@ora-mssql hadoop]# curl https://archive.apache.org/dist/hadoop/common/hadoop-3.2.1/hadoop-3.2.1.tar.gz -o hadoop-3.2.1.tar.gz
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  342M  100  342M    0     0  2583k      0  0:02:15  0:02:15 --:--:-- 4076k
[root@ora-mssql hadoop]# ls
Dockerfile  hadoop-3.2.1.tar.gz

 生成第二个镜像,基础镜像为第一节生成的镜像。

mkdir hadoopqun
cat <<EOF >hadoopqun/Dockerfile
FROM rudolfyan/centosssh:1.0
MAINTAINER will

ENV REFRESHED_AT 2021


ADD hadoop-3.2.1.tar.gz /usr/local/nlp/
ENV HADOOP_HOME /usr/local/nlp/hadoop-3.2.1
ENV PATH $HADOOP_HOME/bin:$PATH

RUN yum install -y which sudo

EOF
docker build -t rudolfyan/hadoopqun:1.0 . -f hadoopqun/Dockerfile

启动三个hadoop qun的docker

docker run --name dkhmaster -p 10022:22 -d rudolfyan/hadoopqun:1.0
docker run --name dkhslave1 -p 10022:23 -d rudolfyan/hadoopqun:1.0
docker run --name dkhslave2 -p 10022:24 -d rudolfyan/hadoopqun:1.0

[root@ora-mssql ~]# docker ps -a
CONTAINER ID        IMAGE                             COMMAND                  CREATED             STATUS                    PORTS                                                    NAMES
9f92ba0ee1a4        rudolfyan/hadoopqun:1.0           "/bin/sh -c '/usr/..."   About an hour ago   Up About an hour          0.0.0.0:10024->22/tcp                                    dkhslave2
bfd5a858efb1        rudolfyan/hadoopqun:1.0           "/bin/sh -c '/usr/..."   About an hour ago   Up About an hour          0.0.0.0:10023->22/tcp                                    dkhslave1
5e35e92b76f0        rudolfyan/hadoopqun:1.0           "/bin/sh -c '/usr/..."   About an hour ago   Up About an hour          0.0.0.0:10022->22/tcp  

在master的机器上生成秘钥,这样可以访问其他的slave机器免密,然后能够直接控制,这一步是比不可少的。

root@5e35e92b76f0 /]# ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:EBkfY93CuuzdHLl6T50vFPTkS0SR
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

老骥又出发

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值