基于Docker的分布式实时计算平台的Storm的部署过程

1.安装 docker

sudo apt update 
sudo snap install docker 
# 确认docker安装信息 
sudo docker info 
# 停止启动查看服务 
sudo snap stop docker 
sudo snap start docker 
snap services 
# 设置以非root用户身份运行docker命令 
cat /etc/group |grep docker 
sudo groupadd docker 
sudo usermod -aG docker $USER 
newgrp docker #更新用户组 
# 重启系统之后查看docker信息 
docker info 

安装docker与确认docker安装信息

2.搭建Docker集群
2.1Docker Ubuntu上安装ssh和连接ssh

docker pull ubuntu 
# 启动镜像 
docker run -it --name master -h master ubuntu bash 
# 在容器中执行 
apt install openssh-server 
# 设置一个root密码 
passwd 
# 修改配置文件 
vim /etc/ssh/sshd_config 
# 注释 PermitRootLogin prohibit-password 
# 添加 PermitRootLogin yes 
/etc/init.d/ssh restart 
update-rc.d ssh enable 
#
ssh root@localhost 
#
ssh-keygen -t rsa -P '' 
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

进入容器,安装ssh
在这里插入图片描述
安装ssh
在这里插入图片描述
修改配置文件
在这里插入图片描述
2.2安装并配置Java环境

cd ~ 
wget https://download.oracle.com/otn/java/jdk/8u291- 
b10/d7fc238d0cbf4b0dac67be84580cfb4b/jdk-8u291-linux-x64.tar.gz? 
AuthParam=1620749617_c9ce7691a135d911c54bd08097d30c3b 
#
mkdir /usr/lib/jvm 
tar -zxvf jdk-8u291-linux-x64.tar.gz -C /usr/lib/jvm 
vim ~/.bashrc 
# 在文件末尾追加下面内容: 
# set oracle jdk environment 
export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_291 
export JRE_HOME=${JAVA_HOME}/jre 
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib 
export PATH=${JAVA_HOME}/bin:$PATH 
#
source ~/.bashrc
java -version

wget这一步要去实际的官网复制相应的链接

安装并配置Java环境
在这里插入图片描述
2.3 制作Docker镜像

docker commit -a "wcf" -m "vim openssh jdk1.8" master wcf
/ubuntu:liu3.14 
docker images 

其中wcf是docker用户名,可以修改成自己想要的名字
在这里插入图片描述
2.4 运行容器

# 后台运行并启动命令sshd -D 
docker run -d -p 2222:22 --name master -h master Docker用户名/ubuntu:liu3.14 
/usr/sbin/sshd -D 
docker run -d --name slave01 -h slave01 Docker用户名/ubuntu:liu3.14 
/usr/sbin/sshd -D 
docker run -d --name slave02 -h slave02 Docker用户名/ubuntu:liu3.14 
/usr/sbin/sshd -D 
# 启动容器bash 
liu@lnu:~$ docker exec -it master bash 
liu@lnu:~$ docker exec -it slave01 bash 
liu@lnu:~$ docker exec -it slave02 bash

在这里插入图片描述
这里要注意master的容器会跟前面的容器名重复,用docker rename进行重命名。

3.部署Hadoop
3.1 hosts地址映射`

# 编辑所有节点 /etc/hosts 
vim /etc/hosts 
# 内容如下: 
172.17.0.2 master 
172.17.0.3 slave01 
172.17.0.4 slave02 
# shell脚本 
root@master:~# vim /etc/profile.d/my_host.sh 
# 内容如下: 
echo 172.17.0.2 master >> /etc/hosts 
echo 172.17.0.3 slave01 >> /etc/hosts 
echo 172.17.0.4 slave02 >> /etc/hosts 
root@master:~# source /etc/profile.d/my_host.sh 
root@master:~#scp /etc/profile.d/my_host.sh slave01:/etc/profile.d 
root@master:~#scp /etc/profile.d/my_host.sh slave02:/etc/profile.d 
# 分别在slave节点运行 
source /etc/profile.d/my_host.sh

修改文件配置时,主从节点都要修改。
在这里插入图片描述

3.2 ssh无密码互通

# Master节点可以SSH无密码登录到各个Slave节点 
root@master:/# 
cd ~/.ssh 
rm ./id_rsa* 
ssh-keygen -t rsa 
cat ./id_rsa.pub >> ./authorized_keys 
scp ~/.ssh/id_rsa.pub root@slave01:/root/ 
# 在slave01节点上,将SSH公匙加入授权: 
root@slave01:/# 
mkdir ~/.ssh 
cat ~/id_rsa.pub >> ~/.ssh/authorized_keys 
rm ~/id_rsa.pub 
# 在slave02节点上进行相同操作

在这里插入图片描述
3.3安装 hadoop

root@master:/# 
cd ~ 
wget https://mirrors.bfsu.edu.cn/apache/hadoop/common/hadoop-3.1.4/hadoop- 
3.1.4.tar.gz 
tar -zxvf hadoop-3.1.4.tar.gz -C /usr/local/ 
cd /usr/local 
mv ./hadoop-3.1.4/ ./hadoop 
/usr/local/hadoop/bin/hadoop version 
# 配置运行环境 
vim ~/.bashrc 
# 添加如下配置: 
# set hadoop environment config 
export PATH=/usr/local/hadoop/bin:/usr/local/hadoop/sbin:$PATH 
export HADOOP_HOME=/usr/local/hadoop 
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native 
export CLASSPATH=$($HADOOP_HOME/bin/hadoop classpath):$CLASSPATH 
# 使配置生效 
source ~/.bashrc

在这里插入图片描述
3.4 配置集群

# (1)修改文件workers 
# (2)修改文件core-site.xml 
# (3)修改文件hdfs-site.xml 
# (4)修改文件mapred-site.xml 
# (5)修改文件yarn-site.xml 
# (6)修改文件hadoop-env.sh 
# 上述5个文件全部配置完成以后,将master的/usr/local/hadoop复制到其他节点. 
root@master: cd /usr/local 
tar -zcf ~/hadoop.master.tar.gz ./hadoop 
cd ~ 
scp ./hadoop.master.tar.gz slave01:/root 
scp ./hadoop.master.tar.gz slave02:/root 
# 在两个slave节点上运行 
root@slave01: cd ~ 
tar -zxf ~/hadoop.master.tar.gz -C /usr/local 
# 首次启动Hadoop集群时,需要先在master节点执行名称节点的格式化 
root@master:~# hdfs namenode -format 
# 配置root用户直接启动hadoop 
root@master:~# vim /etc/profile.d/my_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 
# 执行生效 
root@master:~# source /etc/profile.d/my_env.sh 
# 启动hadoop集群 
# my_host.sh需要在各个节点上运行 
source /etc/profile.d/my_host.sh 
# my_env.sh需要在master节点上运行 
root@master:~# 
source /etc/profile.d/my_env.sh 
start-all.dfs

首先配置六个文件,要进入hadoop/etc/hadoop下进行配置,相关的配置文件内容如下链接请点击

首次启动Hadoop集群时,需要先在master节点执行名称节点的格式化
4 部署Zookeeper
4.1 安装与集群配置

root@master:~# cd ~ 
wget https://mirrors.bfsu.edu.cn/apache/zookeeper/zookeeper-3.7.0/apache- 
zookeeper-3.7.0-bin.tar.gz 
tar -zxvf apache-zookeeper-3.7.0-bin.tar.gz -C /usr/local/ 
cd /usr/local 
mv apache-zookeeper-3.7.0-bin/ zookeeper 
cd zookeeper 
mkdir data # 用户存储快照文件的目录 
mkdir logs 
cd conf 
cp zoo_sample.cfg zoo.cfg 
vim zoo.cfg
root@master:~# cd /usr/local/zookeeper/data 
vim myid # 内容为1,对应server.1 
cd /usr/local/ 
scp -r zookeeper slave01:/usr/local/ 
scp -r zookeeper slave02:/usr/local/ 
# 修改myid内容为2,对应server.2 
root@slave01:/# vim /usr/local/zookeeper/data/myid 
# 修改myid内容为3,对应server.3 
root@slave02:/# vim /usr/local/zookeeper/data/myid 
# 在master配置路径环境 
root@master:~# 
vim ~/.bashrc 
source ~/.bashrc
root@master:~# 
scp ~/.bashrc slave01:~/ 
scp ~/.bashrc slave02:~/ 
root@slave01:~# source ~/.bashrc 
root@slave02:~# source ~/.bashrc 

在这里插入图片描述
4.2 运行zookeeper

root@master:~# zkServer.sh start 
root@slave01:~# zkServer.sh start 
root@slave02:~# zkServer.sh start 
# 测试ZooKeeper客户端 
root@master:~# 
zkServer.sh status

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
出现上图的即为成功

5 部署Storm
5.1 安装与集群配置`

root@master:~# cd ~ 
wget https://mirrors.tuna.tsinghua.edu.cn/apache/storm/apache-storm- 
2.2.0/apache-storm-2.2.0.tar.gz 
tar -zxvf apache-storm-2.2.0.tar.gz -C /usr/local/ 
cd /usr/local/ 
mv apache-storm-2.2.0/ storm 
cd storm/conf 
vim storm.yaml
root@master:/usr/local/storm# mkdir data 
cd /usr/local/ 
scp -r storm slave01:/usr/local/ 
scp -r storm slave02:/usr/local/ 
# 在master配置路径环境 
root@master:~# 
vim ~/.bashrc 
source ~/.bashrc
root@master:~# 
scp ~/.bashrc slave01:~/ 
scp ~/.bashrc slave02:~/ 
root@slave01:~# source ~/.bashrc 
root@slave02:~# source ~/.bashrc

在这里插入图片描述
5.2 启动storm集群

# 在master启动Hadoop集群 
root@master:~# 
start-all.sh 
# 在所有节点启动zookeeper 
root@master:~# zkServer.sh start 
root@slave01:~# zkServer.sh start 
root@slave02:~# zkServer.sh start 
#
# Docker镜像的ubuntu没有python,需要安装用以执行storm启动脚本 
apt install python -y 
# 启动 
root@master:/# storm nimbus 
root@master:/# storm ui 
root@slave01:/# storm supervisor 
root@slave02:/# storm supervisor 
root@master:/# curl http://172.17.0.2:9080

在这里插入图片描述
出现上图就是成功部署了Storm

Logo

鸿蒙生态一站式服务平台。

更多推荐