集群使用手册

30 篇文章 0 订阅

0、使用须知

0.1、说明

0.2、环境变量配置

大多数我都是配了环境变量的,但是上面的详情文章里面是没有配全的,因此再在这里贴一下:

0.2.1、centos01
export JAVA_HOME=/opt/modules/jdk1.8.0_161
export PATH=$PATH:$JAVA_HOME/bin

export HADOOP_HOME=/opt/modules/hadoop-2.8.2
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

export ZOOKEEPER_HOME=/opt/modules/zookeeper-3.4.10
export PATH=$PATH:$ZOOKEEPER_HOME/bin

export HBASE_HOME=/opt/modules/hbase-1.2.6.1
export PATH=$PATH:$HBASE_HOME/bin:$HBASE_HOME/sbin

export HIVE_HOME=/opt/modules/apache-hive-2.3.8-bin
export PATH=$PATH:$HIVE_HOME/bin

export SQOOP_HOME=/opt/modules/sqoop-1.4.7
export PATH=$PATH:$SQOOP_HOME/bin

export FLUME_HOME=/opt/modules/apache-flume-1.8.0-bin
export PATH=$PATH:$FLUME_HOME/bin

export KAFKA_HOME=/opt/modules/kafka_2.11-2.0.0
export PATH=$PATH:$KAFKA_HOME/bin

export KAFKA_CONFIG_HOME=/opt/modules/kafka_2.11-2.0.0/config
export PATH=$PATH:$KAFKA_CONFIG_HOME/bin

export STORM_HOME=/opt/modules/apache-storm-1.1.0
export PATH=$PATH:$STORM_HOME/bin

export ELASTICSEARCH_HOME=/opt/modules/elasticsearch-7.12.0
export PATH=$PATH:$ELASTICSEARCH_HOME/bin

export KIBANA_HOME=/opt/modules/kibana-7.12.0-linux-x86_64
export PATH=$PATH:$KIBANA_HOME/bin

export ELASTICSEARCH_HEAD__HOME=/opt/modules/node-v10.9.0-linux-x64
export PATH=$PATH:$ELASTICSEARCH_HEAD__HOME/bin
0.2.2、centos02
export JAVA_HOME=/opt/modules/jdk1.8.0_161
export PATH=$PATH:$JAVA_HOME/bin

export HADOOP_HOME=/opt/modules/hadoop-2.8.2
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

export ZOOKEEPER_HOME=/opt/modules/zookeeper-3.4.10
export PATH=$PATH:$ZOOKEEPER_HOME/bin

export HIVE_HOME=/opt/modules/apache-hive-2.3.8-bin
export PATH=$PATH:$HIVE_HOME/bin

export STORM_HOME=/opt/modules/apache-storm-1.1.0
export PATH=$PATH:$STORM_HOME/bin

export ELASTICSEARCH_HOME=/opt/modules/elasticsearch-7.12.0
export PATH=$PATH:$ELASTICSEARCH_HOME/bin
0.2.3、centos03
export JAVA_HOME=/opt/modules/jdk1.8.0_161
export PATH=$PATH:$JAVA_HOME/bin

export ZOOKEEPER_HOME=/opt/modules/zookeeper-3.4.10
export PATH=$PATH:$ZOOKEEPER_HOME/bin

export STORM_HOME=/opt/modules/apache-storm-1.1.0
export PATH=$PATH:$STORM_HOME/bin

export ELASTICSEARCH_HOME=/opt/modules/elasticsearch-7.12.0
export PATH=$PATH:$ELASTICSEARCH_HOME/bin

1、三台服务器分别启动ZooKeeper

zkServer.sh start

启动后jps查看三台服务器的进程:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

三台服务器都多了名为QuorumPeerMain的ZooKeeper进程;

查看各个节点的zk状态:

zkServer.sh status

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

三个节点必有一个节点为leader,(大概率是centos02

2、启动HDFS HA

2.1、启动HDFS

centos01

start-dfs.sh

启动后jps查看三台服务器的进程:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

centos01centos02都多了名为NameNodeDataNodeJournalNode的ZooKeeper进程,centos03多了名为DataNodeJournalNode的进程,配置了两个NameNode就是为了HA

NameNode主要负责管理HDFS文件系统,DataNode主要存储HSDFS文件,JournalNode主要负责两个NameNode之间的通信,即保证两个NameNode之间的数据一致

2.2、测试HDFS

在集群中随便哪个节点输入任意HDFS命令:

hadoop fs -ls /

结果是报错:
在这里插入图片描述

因为没有启动ZKFC守护进程

2.3、启动ZKFC守护进程

centos01centos02

hadoop-daemon.sh start zkfc

访问centos01:50070centos02:50070
在这里插入图片描述
在这里插入图片描述

可以发现一个是avtive,一个是standby(哪个节点先启动的ZKFC守护进程,哪个节点就为active)

jps查看三台服务器的进程:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

centos01centos02都多了名为DFSZKFailoverController的ZKFC守护进程,centos03没变化

2.4、再次测试HDFS

再次测试,在集群中随便哪个节点输入任意HDFS命令:

hadoop fs -ls /

没有报错:
在这里插入图片描述

(这里什么都没有是因为我的HDFS文件系统里什么都没有)

4、测试HDFS HA(自动故障转移)

在节点centos01中杀掉NameNode的进程,然后执行hdfs命令。若能成功,说明自动故障转移成功
在这里插入图片描述

此时centos01节点的NameNode已失效,centos02节点的NameNode自动激活为active(说明自动故障转移成功)
在这里插入图片描述
在这里插入图片描述

再测试hdfs命令,虽然有报错,但是的确还是可以成功执行:

(这里我创建了一个文件夹并又查看了一下)
在这里插入图片描述

接下来我们再在节点centos01重启NameNode:

hadoop-daemon.sh start namenode

在这里插入图片描述

此时centos01节点复活自动变为standby状态,centos02节点依旧为active:
在这里插入图片描述
在这里插入图片描述

再次测试hdfs命令,成功,没有报错:
在这里插入图片描述

5、启动YARN HA

centos01

start-yarn.sh

centos02

yarn-daemon.sh start resourcemanager

启动后jps查看三台服务器的进程:
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

centos01centos02都多了名为ResourceManagerNodeManager的进程,centos03多了名为NodeManager的进程

**ResourceManager负责跟踪集群中的资源以及调度应用程序(例如MapReduce程序),NodeManager负责管理YARN集群中的节点以及监视资源使用情况( CPU、内存、硬盘、网络等)、 跟踪节点健康等 **

访问centos01:8088centos02:8088
在这里插入图片描述

如果访问备用ResourceManager地址centos02:8088,会发现自动跳转到centos01:8088。因为此时活动状态的ResourceManager在centos01节点上,访问备用ResourceManager会自动跳转到活动ResourceManager

6、测试YARN HA(自动故障转移)

centos01节点上执行MapReduce默认的WordCount程序,当正在执行Map任务时,新开一个SSH Shell窗口,杀掉centos01的ResourceManager进程,观察程序执行过程。若程序仍能流畅执行,说明自动故障转移生效,ResourceManager遇到故障后,自动切换到centos02节点上继续执行。此时访问备用ResourceManager的Web页面地址centos02:8088,发现可以成功访问

准备数据:
在这里插入图片描述

运行MapReduce之WordCount单词计数程序:

hadoop jar /opt/modules/hadoop-2.8.2/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.8.2.jar wordcount /yarn_ha_mr_test.txt /yarn_ha_mr_test_output

在程序执行到map任务时在centos02通过ssh登录centos01杀掉centos01的ResourceManager:
在这里插入图片描述

此时再在浏览器中查看YARN的状态,发现centos01:8088已经无法访问,但是centos02:8088可以访问并且可以看到MapReduce任务:
在这里插入图片描述
在这里插入图片描述
查看MapReduce结果:

hadoop fs -cat /yarn_ha_mr_test_output/*

在这里插入图片描述

发现MapReduce仍然成功执行了,说明YARN HA搭建成功并且可以进行故障转移

再把centos01的ResourceManager启动回来:

yarn-daemon.sh start resourcemanager

此时访问centos01:8088会跳转到centos02:8088

7、启动HBase HA

centos01节点:

start-hbase.sh

访问centos01:16010
在这里插入图片描述
在这里插入图片描述

centos01为Master,centos02为备用Backup Master

启动后jps查看三台服务器的进程:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

centos01centos02多了名为HMasterHRegionServer的进程,centos03多了名为HRegionServer的进程

HMaster节点负责管理HRegionServer节点,这里我配置了HDFS HA,因此HMaster也和NameNode一样,有两个,在centos01centos02上(HBase将底层数据存储在HDFS中,因此通常HMaster和NameNode出现在同一节点,HRegionServer和DataNode出现在同一节点)

打开HBase Shell,随便测试一下:

hbase shell
list

在这里插入图片描述

HBase Shell可用

8、测试HBase HA (自动故障转移)

centos01中杀掉hbase的HMaster进程后再测试HBase Shell是否可用,若可用则说明HBase HA搭建成功
在这里插入图片描述

杀掉centos01的HMaster后,centos02自动转变为Master:
在这里插入图片描述
在这里插入图片描述

此时测试HBase Shell,依然可以使用,说明HBase HA可用:
在这里插入图片描述

再次启动centos01的HBase的Master:

hbase-daemon.sh start master

在这里插入图片描述

centos01变成了Backup Master,Master依旧为centos02centos02下的Backup Masters多了一个centos01

在这里插入图片描述
在这里插入图片描述

9、关闭HBase HA

stop-hbase.sh

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

10、启动Spark HA

centos01centos02节点:

cd /opt/modules/spark-2.4.0-bin-hadoop2.7/
sbin/start-all.sh

访问centos01:8080centos02:8080centos01问ALIVE状态,centos02为STANDBY状态:
在这里插入图片描述
在这里插入图片描述

启动后jps查看三台服务器的进程:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

centos01多了名为Master的进程,centos02多了名为MasterWorker的进程,centos03多了名为Worker的进程

进入Spark Shell:

bin/spark-shell --master spark://centos01:7077

在这里插入图片描述

11、测试Spark HA

使用 kill -9 命令杀掉centos01节点的Master进程,稍等几秒后多次刷centos02节点的Web界面,发现Master的状态由STANDBY状态变为RECOVERING(恢复,该状态持续的时间非常短暂),最后变为ALIVE
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

此时,若需要连接Spark集群执行操作,--master参数的连接地址需要改为spark://centos02:7077

bin/spark-shell --master spark://centos02:7077

在这里插入图片描述

此时再重新启动centos01的Spqrk Master:

sbin/start-master.sh

在这里插入图片描述

此时centos01的状态为STANDBY,centos02为ALIVE:
在这里插入图片描述
在这里插入图片描述

Spark HA测试成功

12、关闭Spark HA

centos01centos02节点:

cd /opt/modules/spark-2.4.0-bin-hadoop2.7/
sbin/stop-all.sh

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

10、启动并测试Hive

启动MetaStore Service:

hive --service metastore &

此时通过jps命令查看进程,会发现多了一个名为“RunJar”的进程,它就是Metastore Server的独立进程:
在这里插入图片描述

centos01centos02两个节点中分别通过hive命令启动Hive CLI并测试,在centos01中创建一张表,在centos02中可以看到
在这里插入图片描述

在这里插入图片描述

11、关闭Hive

使用kill -9命令杀掉RunJar进程
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

12、测试Sqoop

sqoop list-databases --connect jdbc:mysql://10.0.116.102:3306/hive_db?serverTimezone=Hongkong --username hive --P

在这里插入图片描述
在这里插入图片描述

Sqoop查询出来的结果与本机MySql查询出来的结果一致

13、启动Kafka

分别在三台服务器上启动Kafka:

cd /opt/modules/kafka_2.11-2.0.0
bin/kafka-server-start.sh -daemon config/server.properties

启动后jps查看三台服务器的进程:
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

三台服务器都多了名为Kafka的进程

14、测试Kafka( Producer & Consumer 通信)

14.1、创建主题(Topic)

bin/kafka-topics.sh --create --zookeeper centos01:2181,centos02:2181,centos03:2181 --replication-factor 2 --partitions 2 --topic topictest

在这里插入图片描述

14.2、查看主题列表

bin/kafka-topics.sh --list --zookeeper centos01:2181

在这里插入图片描述

14.3、创建生产者(Producer)

bin/kafka-console-producer.sh --broker-list centos01:9092,centos02:9092,centos03:9092 --topic topictest

创建完成后,控制台进入等待键盘输入消息的状态:
在这里插入图片描述

14.4、创建消费者(Consumer)

bin/kafka-console-consumer.sh --bootstrap-server centos01:9092,centos02:9092,centos03:9092 --topic topictest

消费者创建成功后,就等待生产者发送消息:

在这里插入图片描述

14.5、测试 Producer & Consumer 通信

生产者发送消息:
在这里插入图片描述

消费者接收消息:
在这里插入图片描述

14.6、删除主题

bin/kafka-topics.sh --delete --zookeeper centos01:2181,centos02:2181,centos03:2181 --topic topictest

在这里插入图片描述

15、关闭Kafka

cd /opt/modules/kafka_2.11-2.0.0
bin/kafka-server-stop.sh -daemon config/server.properties

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

16、启动Flume

flume-ng agent --conf c0nf --conf-file $FLUME_HOME/conf/flume-conf.properties --name a1 -Dflume.root.logger=INFO,console

17、测试Flume

新开一个SSH窗口,执行以下命令,连接本地44444端口:

telnet localhost 44444

此时在新开的SSH窗口输入内容,在之前的SSH窗口就可以看到内容:
在这里插入图片描述
在这里插入图片描述

18、启动Storm

18.1、centos01启动Nimbus和UI服务

storm nimbus >/dev/null 2>&1 &
storm ui >/dev/null 2>&1 &

jps查看进程:

在这里插入图片描述

centos01多了名为corenimbus的进程

centos01://8080查看Storm UI:
在这里插入图片描述

18.2、在centos02centos03启动Supervisor服务:

storm supervisor >/dev/null 2>&1 &

在这里插入图片描述

在这里插入图片描述

centos02centos03都多了名为Supervisor的进程

centos01://8080再次查看Storm UI:
在这里插入图片描述

19、关闭Storm

使用kill -9命令在centos01中杀掉corenimbus进程,在centos02中杀掉Supervisor进程
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

20、关闭HDFS HA

centos01

stop-dfs.sh

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

21、关闭YARN HA

centos01

stop-yarn.sh

centos02

yarn-daemon.sh stop resourcemanager

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

22、关闭ZKFC守护进程:

centos01centos02

hadoop-daemon.sh stop zkfc

在这里插入图片描述
在这里插入图片描述

23、关闭ZooKeeper

zkServer.sh stop

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

24、启动ElasticSearch

在三个节点分别启动ElasticSearch并通过jps命令查看进程:

elasticsearch -d
jps

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

三台服务器都多了名为Elasticsearch的进程

25、测试ElasticSearch

在任意一个节点上执行以下命令,访问centos01节点的9200端口:

curl centos01:9200 

成功输出以下信息则说明Elasticsearch集群搭建成功:
在这里插入图片描述
在这里插入图片描述

26、启动Kibana

centos01

kibana &

访问centos01:5601
在这里插入图片描述
在这里插入图片描述

27、启动ElasticSearch Head

centos01

cd /opt/modules/elasticsearch-head-master
grunt server &

在这里插入图片描述

访问centos01:9100
在这里插入图片描述

28、测试ElasticSearch Head

向Elasticsearch中添加一个名为customer的索引并添加三条数据:

curl -H "Content-Type: application/json" -X POST 'centos01:9200/customer/_doc/_bulk?pretty' -d '
{"index":{"_id":"1"}}
{"name":"zhangsan","age":20,"score":98}
{"index":{"_id":"2"}}
{"name":"lisi","age":22,"score":68}
{"index":{"_id":"3"}}
{"name":"wangwu","age":22,"score":88}
'

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

29、测试Kibana

在这里插入图片描述
在这里插入图片描述

30、关闭Kibana

ps -ef | grep node
# 或
ss -lntp | grep 5601 

获得Kibana的进程PID,然后kill -9杀掉该PID即可:
在这里插入图片描述
在这里插入图片描述

31、关闭ElasticSearch Head

ps -aux|grep grunt找到ElasticSearch Head的进程,然后用kill -9命令杀死即可
在这里插入图片描述
在这里插入图片描述

32、关闭ElasticSearch

分别在三台服务器上用jps查看ElasticSearch的进程,然后用kill -9命令杀死即可
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

33、其他备注

集群在运行过程中掉进程是常事,所以需要多注意一下,发现哪个进程掉了就再把他起来,起单独的进程的常用命令:

ZooKeeper:zkServer.sh

# 启动zookeeper
zkServer.sh start
# 停止zookeeper
zkServer.sh stop

HDFS:hadoop-daemon.sh

# 启动NameNode
hadoop-daemon.sh start namenode
# 停止NameNode
hadoop-daemon.sh stop namenode
# 启动DataNode
hadoop-daemon.sh start datanode
# 停止DataNode
hadoop-daemon.sh stop datanode
# 启动JournalNode
hadoop-daemon.sh start journalnode
# 停止JournalNode
hadoop-daemon.sh stop journalnode
# 启动ZKFC守护进程
hadoop-daemon.sh start zkfc
# 停止ZKFC守护进程
hadoop-daemon.sh stop zkfc

YARN:yarn-daemon.sh

# 启动ResourceManager
yarn-daemon.sh start resourcemanager
# 停止ResourceManager
yarn-daemon.sh stop resourcemanager
# 启动NodeManager
yarn-daemon.sh start nodemanager
# 停止NodeManager
yarn-daemon.sh stop nodemanager

HBase:hbase-daemon.sh

# 启动HMaster
hbase-daemon.sh start master
# 停止HMaster
hbase-daemon.sh stop master
# 启动HRegionserver
hbase-daemon.sh start regionserver
# 停止HRegionserver
hbase-daemon.sh stop regionserver

Spark:spark-daemon.sh

# 启动Master
spark-daemon.sh start master
# 停止Master
spark-daemon.sh stop master
# 启动Worker
spark-daemon.sh start worker
# 停止Worker
spark-daemon.sh stop worker
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值