0


利用docker搭建服务器集群并部署大数据生态软件

1.集群搭建与配置

本来想使用centos镜像搭建服务器集群,但最小化安装版的镜像也需要1G左右,如果后面再部署一些大数据软件,单是多台服务器环境部署就会占用大量空间,加上此版本镜像在不同电脑环境的安装过程中可能会有一些问题出现,因此选择使用docker容器方式来搭建集群。
在这里插入图片描述docker搭建的集群包含3个节点,其中每个节点在原始centos镜像基础上安装了一些必要命令工具和部署了包括Hadoop、Zookeeper等集群软件后,占用空间在2G左右。
在这里插入图片描述

1.1 centos镜像配置

**

本次集群服务器选择centos镜像来部署

**

#docker下载centos镜像,不加tag默认下载最新版本(latest)docker pull centos

#查看所有镜像信息docker images

#用centos镜像创建容器#name 自定义容器名称#privileged 以真正root身份操作容器#centos:latest 镜像的名称:版本,用镜像id替代也可以docker run -itd--name serverbase --privileged centos:latest init

#查看所有运行中的容器dockerps#进入容器dockerexec-it serverbase /bin/bash

#设置root用户密码passwd#容器使用的centos镜像版本是latest,需要修改镜像源后才能正常安装一些工具,在容器内部分别执行cd /etc/yum.repos.d/
sed-i's/mirrorlist/#mirrorlist/g' /etc/yum.repos.d/CentOS-*
sed-i's|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g' /etc/yum.repos.d/CentOS-*
yum makecache
yum update -y#安装一些必要工具
yum -yinstallvim
yum installpasswdsudo yum install net-tools
yum install telnet
yum install openssh-server -y
yum install openssh-clients -y#修改ssh配置文件sshd_config,修改参照图1红框两处vi /etc/ssh/sshd_config

#修改完保存,重启ssh服务
systemctl start sshd

#退出容器exit#将修改后的容器打包生成新的镜像#serverbase 上面修改的容器名称,使用容器id也可以#centos:serverbase 要生成的新镜像的名称:tagdocker commit -a “作者名称” -m"一些说明信息" serverbase centos:serverbase

#查看新生成的镜像docker images

图1:配置文件sshd_config的修改

在这里插入图片描述

1.2 IP问题

**

Docker网络模式

**

docker在创建容器时,默认使用的网络模式是bridge,即桥接网络模式。docker默认情况下会建立bridge、host和none三种网络类型,

#查看docker网络类型docker network ls

默认的bridge网络模式在创建容器时会在网段内按照顺序获取IP地址,IP地址取决于目前已有多少容器在运行,所以docker重启后会变化,我们希望通过docker创建的linux服务器集群要有固定的IP,可以使用docker自定义桥接网络方式来实现容器IP的固定。

**

自定义桥接网络

**

#使用如下命令创建自定义桥接网络#subnet    指定一个docker网段,要和docker自建的bri0不同#mydocnetwork    自定义网络名称docker network create --subnet=172.18.0.0/16 mydocnetwork

#创建完后再次查看docker网络,发现多了一个mydocnetwork,表示已成功创建docker network ls

1.3 集群节点配置

**

本集群包含3个节点,注意节点的命名最好不要有下划线或特殊字符,否则在后面部署软件集群时可能会引发一些问题。

**

**

创建第1个节点-node1

**

docker run -d--name node1 --hostname node1 --net mydocnetwork --ip172.18.0.2 -p10100:22 -p10101:9870 -p :10102:8088 -p10103:9000 -p10104:16010 -p :10105:8081 -p10106:3000 -p10107:8042 --privileged centos:serverbase /usr/sbin/init

参数解释:

  • name 容器名称(集群节点名称)
  • hostname 指定主机名,创建后可以查看容器内的 /etc/hosts
  • net 指定网络,这里的mydocnetwork是上面自定义的桥接网络,使用此网络可以给容器指定固定IP地址
  • ip 指定的固定IP地址
  • p 注意是小写的p,比如第一个,9001是宿主机端口,22是容器内部端口,可以同时定义多个,宿主机端口可以自定义,不要有冲突就行。xshell等工具连接此节点时使用宿主机ip、端口10100,其他接口用于访问后面部署的一些软件监控页面,这里端口暂时写不全也没关系,容器创建后也可以在配置文件里新增端口
  • privileged 使容器拥有真正root权限
  • centos:serverbase 上面重新创建后的镜像名:tag

*选读:容器创建后添加端口方法

#查看要新增暴露端口的容器id,比如上面创建的节点1的容器id:596e1712214ddockerps-a#查找要修改的容器的完整ID,结果为 596e1712214d23e7b2c648f47f24a441b8e645b1155e747796a357d1507cad9adocker inspect 596e1712214d |grep Id

#到 /var/lib/docker/containers 路径()目录下找到与完整Id相同的目录#修改此目录下的 hostconfig.json 与 config.v2.json 两个配置文件#修改前需要先停掉容器与docker服务docker stop 容器ID
systemctl stop docker#hostconfig.json需要修改 PortBindings ,按下面这个格式来添加端口对#格式:"{容器内部端口}/tcp":[{"HostIp":"","HostPort":"映射的宿主机端口"}]"PortBindings":{"22/tcp":[{"HostIp":"","HostPort":"10100"}],"9870/tcp":[{"HostIp":"","HostPort":"10101"}]}#config.v2.json需要修改 ExposedPorts ,按下面这个格式来添加端口(容器内的端口)#格式:"{容器内部端口}/tcp":{}"ExposedPorts":{"22/tcp":{},"9870/tcp":{}}#修改完,重启docker服务
systemctl restart docker

**

创建第2个节点-node2

**

docker run -d--name node2 --hostname node2 --net mydocnetwork --ip172.18.0.3 -p10200:22 -p10201:9870 -p :10202:8088 -p10203:9000 -p10204:16010 -p :10205:8081 -p10206:3000 -p10207:8042 --privileged centos:serverbase /usr/sbin/init

**

创建第3个节点-node3

**

docker run -d--name node3 --hostname node3 --net mydocnetwork --ip172.18.0.4 -p10300:22 -p10301:9870 -p :10302:8088 -p10303:9000 -p10304:16010 -p :10305:8081 -p10306:3000 -p10307:8042 --privileged centos:serverbase /usr/sbin/init

**

修改节点root用户密码

**

#依次进入三个节点的容器内dockerexec-it 容器id /bin/bash

#设置root用户密码passwd

**

配置hosts

**

#为了使节点间互相通过节点名称(主机名)来识别连通,需要在 /etc/hosts 里面配置域名解析,但由于每次重启容器都会重置 /etc/hosts ,所以需要在三个节点的 /etc/bashrc 文件里面加上如下内容,这样每次进入容器都会自动写入 /etc/hosts#172.18.0.2、172.18.0.3、172.18.0.4分别是三个节点的ip,也即容器内部ip,可以在进入容器后通过ifconfig命令查看# node1result=$(cat /etc/hosts |grep".*172.18.0.2.*node1.*")if[["$result"=""]]thenecho"172.18.0.2 node1">> /etc/hosts
fi# node2result=$(cat /etc/hosts |grep".*172.18.0.3.*node2.*")if[["$result"=""]]thenecho"172.18.0.3 node2">> /etc/hosts
fi# node3result=$(cat /etc/hosts |grep".*172.18.0.4.*node3.*")if[["$result"=""]]thenecho"172.18.0.4 node3">> /etc/hosts
fi#没有ll别名的可以加上aliasll="ls -alF"#修改完执行source /etc/bashrc

#为了方便xshell等软件使用节点名连接,需要在自己电脑的hosts文件里配置域名解析,Mac系统在 /etc/hosts 文件里修改,windows系统在 C:\Windows\System32\drivers\etc 文件里加上
宿主机ip node1
宿主机ip node2
宿主机ip node3

**

容器自启动

**

#设置容器开机自启动docker update --restart=always 容器id
#关闭容器自启动docker update --restart=no 容器id

1.4 ssh免密登录

#集群间经常需要互相访问,设置免密登录能极大方便节点间的协作。在三个节点分别执行
ssh-keygen -t rsa -b4096#一路回车直至结束#在三个节点分别执行
ssh-copy-id node1
ssh-copy-id node2
ssh-copy-id node3
#输入对应节点root用户密码即可

1.5 集群时区修改与时间同步

**

时区修改

**

#默认的centos镜像时区并不是beijing时间,因此和系统时间会有差异,需要同步时间。进入节点容器,查看时间date#如有差异,再查看节点服务器时区
timedatectl
#如果想把时区修改成 Asia/Shanghai
timedatectl set-timezone Asia/Shanghai
#修改完再次查看时区和时间

**

时间同步-chrony服务端节点设置

**

#chrony工具可以用一台服务器作为其他节点的server服务端来同步集群服务器时间。需要先安装chrony
yum -yinstall chrony
#安装完成后开启服务、设置开机自启动
systemctl start chronyd
systemctl enable chronyd

#选择一台作为server服务端的服务器(此处以节点node1为例),chrony服务端节点需要修改配置文件chrony.conf,修改两处如图2所示vi /etc/chrony.conf

#修改完成后重启chrony服务
systemctl restart chronyd

图2:服务端配置文件chrony.conf的修改

  • allow 0.0.0.0/0 允许哪些客户端来同步本机的时间
  • local stratum 10 本机不同步任何主机的时间,本机作为时间源

在这里插入图片描述

**

时间同步-chrony客户端节点设置

**

#在节点2、3上同样安装chrony、开启服务、设置开机自启动#修改节点2、3上的配置文件chrony.conf,修改两处如图3所示,然后重启服务#查看server和同步节点信息
chronyc activity
chronyc tracking

图3:客户端配置文件chrony.conf的修改
在这里插入图片描述

1.6 防火墙管理

#三个节点安装防火墙
yum install firewalld firewall-config

#关闭防火墙
systemctl stop firewalld
systemctl disable firewalld

2.集群软件部署

2.1 jdk安装配置

**

jdk下载

**

jdk官方下载地址

#在3个节点创建软件安装文件夹mkdir-p /export/server

#在node1上将下载的jdk压缩包解压tar-zxvf jdk-8u351-linux-aarch64.tar.gz -C /export/server

#使用scp将jdk安装目录分发到node2、node3cd /export/server
scp-r jdk1.8.0_351 node2:`pwd`/
scp-r jdk1.8.0_351 node3:`pwd`/

#在3个节点建立软链接ln-s /export/server/jdk1.8.0_351 /export/server/jdk
#有些linux系统会自带java,删除并重建软连接rm-f /usr/bin/java
ln-s /export/server/jdk/bin/java /usr/bin/java

**

配置java环境变量

**

#在3个节点上修改配置文件vi /etc/profile
#在最后加上exportJAVA_HOME=/export/server/jdk
exportPATH=$PATH:$JAVA_HOME/bin

#修改完保存并运行source /etc/profile

2.2 Zookeeper集群安装

#安装wget
yum -yinstallwget#node1下载Zookeeperwget http://archive.apache.org/dist/zookeeper/zookeeper-3.5.9/apache-zookeeper-3.5.9-bin.tar.gz

#解压tar-zxvf apache-zookeeper-3.5.9-bin.tar.gz -C /export/server

#创建zookeeper数据存储目录mkdir /export/server/zookeeper/data

#重命名配置文件mv /export/server/zookeeper/conf/zoo_sample.cfg /export/server/zookeeper/conf/zoo.cfg
#修改配置文件zoo.cfgvi /export/server/zookeeper/conf/zoo.cfg
#对应修改以下内容tickTime=2000dataDir=/export/server/zookeeper/data
clientPort=2181initLimit=5syncLimit=2server.1=node1:2888:3888
server.2=node2:2888:3888
server.3=node3:2888:3888

#myid的配置,创建文件myid,内容写1(node1节点写1,node2节点写2,以此类推,用于不同节点上zookeeper的标识)vi /export/server/zookeeper/data/myid

#分发,在node1上cd /export/server
#使用scp命令分发到节点2和3上scp-r apache-zookeeper-3.5.9-bin node2:`pwd`/
scp-r apache-zookeeper-3.5.9-bin node3:`pwd`/

#在3个节点上创建软链接ln-s /export/server/apache-zookeeper-3.5.9-bin /export/server/zookeeper

#node2上修改myid文件,内容写2vi /export/server/zookeeper/data/myid
#node3上修改myid文件,内容写3vi /export/server/zookeeper/data/myid

#启动Zookeeper
/export/server/zookeeper/bin/zkServer.sh start

#jps命令查看启动的进程,看到 QuorumPeerMain 这个进程即为启动成功
jps

#验证zookeeper是否配置成功
/export/server/zookeeper/bin/zkCli.sh
#然后在控制台输入ls /
#出现[zookeeper]表示zookeeper配置成功

2.3 Kafka集群安装

#node1下载wget http://archive.apache.org/dist/kafka/2.4.1/kafka_2.12-2.4.1.tgz

#解压tar-zxvf kafka_2.12-2.4.1.tgz -C /export/server/

#修改配置文件 server.propertiesvi /export/server/kafka/config/server.properties
#修改以下内容broker.id=1listeners=PLAINTEXT://node1:9092
log.dirs=/export/server/kafka/data
zookeeper.connect=node1:2181,node2:2181,node3:2181

#分发,在node1上cd /export/server
#使用scp命令分发到节点2和3上scp-r kafka_2.12-2.4.1 node2:`pwd`/
scp-r kafka_2.12-2.4.1 node3:`pwd`/

#在3个节点上创建软链接ln-s /export/server/kafka_2.12-2.4.1 /export/server/kafka

#node2上修改配置文件 server.propertiesvi /export/server/kafka/config/server.properties
#修改以下内容broker.id=2listeners=PLAINTEXT://node2:9092

#node3上修改配置文件 server.propertiesvi /export/server/kafka/config/server.properties
#修改以下内容broker.id=3listeners=PLAINTEXT://node3:9092

#在3个节点上节点上启动kafka(一般选择下面的后台启动方式)
/export/server/kafka/bin/kafka-server-start.sh /export/server/kafka/config/server.properties
#如果启动报错 "Error: VM option 'UseG1GC' is experimental and must be enabled via -XX:+UnlockExperimentalVMOptions",则可修改此配置文件 /export/server/kafka/bin/kafka-run-class.sh ,如图4所示,删掉这段文字即可vi /export/server/kafka/bin/kafka-run-class.sh

#后台运行nohup /export/server/kafka/bin/kafka-server-start.sh /export/server/kafka/config/server.properties 2>&1>> /export/server/kafka/kafka-server.log &#jps命令查看启动的进程,看到Kafka这个进程即为启动成功
jps

#验证kafka是否配置成功#在node1创建一个主题
/export/server/kafka_2.12-2.4.1/bin/kafka-topics.sh --create--zookeeper node1:2181 --replication-factor 1--partitions3--topictest#在nide1执行,启动一个模拟的数据生产者,会出现一个命令提示符,此时先不输入
/export/server/kafka_2.12-2.4.1/bin/kafka-console-producer.sh --broker-list node1:9092 --topictest#在node2或node3执行如下命令,启动一个模拟的数据消费者
/export/server/kafka_2.12-2.4.1/bin/kafka-console-consumer.sh --bootstrap-server node1:9092 --topictest --from-beginning

#此时回到节点1随便输入内容然后回车,会在另外节点看到输出内容,表示kafka安装配置成功

图4:启动错误处理
在这里插入图片描述

2.4 Hadoop集群安装

#node1下载wget http://archive.apache.org/dist/hadoop/common/hadoop-3.3.0/hadoop-3.3.0.tar.gz

#解压tar-zxvf hadoop-3.3.0.tar.gz -C /export/server/

**

修改配置文件

**

#所有要修改的配置文件路径,在node1上cd /export/server/hadoop/etc/hadoop

vi hadoop-env.sh

#在文件开始处加入以下内容:exportJAVA_HOME=/export/server/jdk
exportHADOOP_HOME=/export/server/hadoop
exportHADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
exportYARN_CONF_DIR=$HADOOP_HOME/etc/hadoop
exportYARN_LOG_DIR=$HADOOP_HOME/logs/yarn
exportHADOOP_LOG_DIR=$HADOOP_HOME/logs/hdfs
exportHDFS_NAMENODE_USER=root
exportHDFS_DATANODE_USER=root
exportHDFS_SECONDARYNAMENODE_USER=root
exportYARN_RESOURCEMANAGER_USER=root
exportYARN_NODEMANAGER_USER=root
exportYARN_PROXYSERVER_USER=root

vi core-site.xml

#先删除文件里所有内容,然后粘贴如下内容<?xml version="1.0"encoding="UTF-8"?><?xml-stylesheet type="text/xsl"href="configuration.xsl"?><!--
  Licensed under the Apache License, Version 2.0(the "License");
  you may not use this file except in compliance with the License.
  You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License. See accompanying LICENSE file.
--><!-- Put site-specific property overrides in this file. --><configuration><property><name>fs.defaultFS</name><value>hdfs://node1:8020</value><description></description></property><property><name>io.file.buffer.size</name><value>131072</value><description></description></property></configuration>

vi hdfs-site.xml

#先删除文件里所有内容,然后粘贴如下内容<?xml version="1.0"encoding="UTF-8"?><?xml-stylesheet type="text/xsl"href="configuration.xsl"?><!--
  Licensed under the Apache License, Version 2.0(the "License");
  you may not use this file except in compliance with the License.
  You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License. See accompanying LICENSE file.
--><!-- Put site-specific property overrides in this file. --><configuration><property><name>dfs.datanode.data.dir.perm</name><value>700</value></property><property><name>dfs.namenode.name.dir</name><value>/data/nn</value><description>Path on the local filesystem where the NameNode stores the namespace and transactions logs persistently.</description></property><property><name>dfs.namenode.hosts</name><value>node1,node2,node3</value><description>List of permitted DataNodes.</description></property><property><name>dfs.blocksize</name><value>268435456</value><description></description></property><property><name>dfs.namenode.handler.count</name><value>100</value><description></description></property><property><name>dfs.datanode.data.dir</name><value>/data/dn</value></property></configuration>

vi mapred-env.sh

#在文件开始加入以下内容:exportJAVA_HOME=/export/server/jdk
exportHADOOP_JOB_HISTORYSERVER_HEAPSIZE=1000exportHADOOP_MAPRED_ROOT_LOGGER=INFO,RFA

vi mapred-site.xml

#先删除文件里所有内容,然后粘贴如下内容<?xml version="1.0"?><?xml-stylesheet type="text/xsl"href="configuration.xsl"?><!--
  Licensed under the Apache License, Version 2.0(the "License");
  you may not use this file except in compliance with the License.
  You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License. See accompanying LICENSE file.
--><!-- Put site-specific property overrides in this file. --><configuration><property><name>mapreduce.framework.name</name><value>yarn</value><description></description></property><property><name>mapreduce.jobhistory.address</name><value>node1:10020</value><description></description></property><property><name>mapreduce.jobhistory.webapp.address</name><value>node1:19888</value><description></description></property><property><name>mapreduce.jobhistory.intermediate-done-dir</name><value>/data/mr-history/tmp</value><description></description></property><property><name>mapreduce.jobhistory.done-dir</name><value>/data/mr-history/done</value><description></description></property><property><name>yarn.app.mapreduce.am.env</name><value>HADOOP_MAPRED_HOME=$HADOOP_HOME</value></property><property><name>mapreduce.map.env</name><value>HADOOP_MAPRED_HOME=$HADOOP_HOME</value></property><property><name>mapreduce.reduce.env</name><value>HADOOP_MAPRED_HOME=$HADOOP_HOME</value></property></configuration>

vi yarn-env.sh

#在文件开始加入以下内容:exportJAVA_HOME=/export/server/jdk
exportHADOOP_HOME=/export/server/hadoop
exportHADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
exportYARN_CONF_DIR=$HADOOP_HOME/etc/hadoop
exportYARN_LOG_DIR=$HADOOP_HOME/logs/yarn
exportHADOOP_LOG_DIR=$HADOOP_HOME/logs/hdfs

vi yarn-site.xml

#先删除文件里所有内容,然后粘贴如下内容<?xml version="1.0"?><!--
  Licensed under the Apache License, Version 2.0(the "License");
  you may not use this file except in compliance with the License.
  You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License. See accompanying LICENSE file.
--><configuration><!-- Site specific YARN configuration properties --><property><name>yarn.log.server.url</name><value>http://node1:19888/jobhistory/logs</value><description></description></property><property><name>yarn.web-proxy.address</name><value>node1:8089</value><description>proxy server hostname and port</description></property><property><name>yarn.log-aggregation-enable</name><value>true</value><description>Configuration to enable or disable log aggregation</description></property><property><name>yarn.nodemanager.remote-app-log-dir</name><value>/tmp/logs</value><description>Configuration to enable or disable log aggregation</description></property><!-- Site specific YARN configuration properties --><property><name>yarn.resourcemanager.hostname</name><value>node1</value><description></description></property><property><name>yarn.resourcemanager.scheduler.class</name><value>org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.FairScheduler</value><description></description></property><property><name>yarn.nodemanager.local-dirs</name><value>/data/nm-local</value><description>Comma-separated list of paths on the local filesystem where intermediate data is written.</description></property><property><name>yarn.nodemanager.log-dirs</name><value>/data/nm-log</value><description>Comma-separated list of paths on the local filesystem where logs are written.</description></property><property><name>yarn.nodemanager.log.retain-seconds</name><value>10800</value><description>Default time(in seconds) to retain log files on the NodeManager Only applicable if log-aggregation is disabled.</description></property><property><name>yarn.nodemanager.aux-services</name><value>mapreduce_shuffle</value><description>Shuffle service that needs to be setfor Map Reduce applications.</description></property></configuration>

vi workers

#添加所有节点   
node1
node2
node3

**

分发到其他节点

**

#分发,在node1上cd /export/server
#使用scp命令分发到节点2和3上scp-r hadoop-3.3.0 node2:`pwd`/
scp-r hadoop-3.3.0 node3:`pwd`/

#在3个节点上创建软链接ln-s /export/server/hadoop-3.3.0 /export/server/hadoop

**

在node1上创建目录

**

mkdir-p /data/nn
mkdir-p /data/dn
mkdir-p /data/nm-log
mkdir-p /data/nm-local

**

在node2和node3上创建目录

**

mkdir-p /data/dn
mkdir-p /data/nm-log
mkdir-p /data/nm-local

**

配置3个节点环境变量

**

#在3个节点的 /etc/profile 配置文件里加入如下内容exportHADOOP_HOME=/export/server/hadoop
exportPATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

#执行使更改生效source /etc/profile

**

服务启动与验证

**

#node1上执行,格式化NameNode
hadoop namenode -format#node1上启动hadoop的hdfs集群
start-dfs.sh
#停止 stop-dfs.sh#node1上启动hadoop的yarn集群
start-yarn.sh
#停止 stop-yarn.sh#node1上启动历史服务器
mapred --daemon start historyserver
#停止 mapred --daemon start historyserver#node1、node2、node3执行jps
jps
#看到图5所示这些进程,表示启动成功#到浏览器中打开:http://宿主机ip:10101、http://宿主机ip:10102#能打开表示HDFS和YARN服务正常#验证hadoop集群的运行是否正常,在node1上cd ~
#创建测试文件test.txt,随便填入一些内容vi test.txt
#上传文件到HDFS中
hadoop fs -put test.txt /test.txt
#执行命令
hadoop jar /export/server/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.0.jar wordcount -Dmapred.job.queue.name=root.root /test.txt /output
#如能成功执行,计算出文本字数,表示hadoop集群安装部署成功

图5:jps进程

在这里插入图片描述

标签: docker zookeeper hbase

本文转载自: https://blog.csdn.net/weixin_41878387/article/details/127972541
版权归原作者 Axlsss 所有, 如有侵权,请联系我们删除。

“利用docker搭建服务器集群并部署大数据生态软件”的评论:

还没有评论