分布式集群是由多个节点组成的系统,可以提供高性能、高可用、高扩展的数据处理能力。本文介绍如何启动和关闭一个包含hadoop、zookeeper、hbase和spark的分布式集群。
目录
启动顺序
关闭顺序
启动和关闭hadoop
启动hadoop
关闭hadoop
查看网页
启动和关闭zookeeper
启动zookeeper
关闭zookeeper
查看状态
启动和关闭hbase
启动hbase
关闭hbase
查看网页
验证hbase
启动和关闭spark
启动spark
关闭spark
启动Spark History Server
查看网页
验证spark
启动分布式集群的顺序是:
这样可以保证各个组件之间的依赖关系和协调关系。
关闭分布式集群的顺序是:
这样可以避免数据丢失和服务异常。
hadoop是一个分布式文件系统和计算框架,它提供了存储和处理海量数据的能力。hadoop主要由两个部分组成:HDFS(Hadoop Distributed File System)和YARN(Yet Another Resource Negotiator)。
启动hadoop之前,需要先初始化hadoop的namenode,这是HDFS的主节点,负责管理元数据。只有在第一次启动时才需要执行这一步,以后就不用了。在namenode所在的节点上执行以下命令:
# 初始化namenode
hadoop namenode -format
然后,在namenode所在的节点上执行以下命令,启动HDFS:
# 启动HDFS
start-dfs.sh
接着,在resourcemanager所在的节点上执行以下命令,启动YARN:
# 启动YARN
start-yarn.sh
最后,可以在任意节点上执行以下命令,查看各个进程是否正常运行:
# 查看进程
jps
也可直接快捷启动HDFS和YARN:
start-all.sh
如果输出结果中包含以下进程,则说明启动成功:
关闭hadoop时,只需要在任意节点上执行以下命令即可:
# 关闭hadoop
stop-all.sh
这个命令会自动停止所有的HDFS和YARN进程。
如果想要查看hadoop的运行状态和数据情况,可以通过浏览器访问以下网址:
其中,192.168.1.100是namenode和resourcemanager所在节点的IP地址,如果你的IP地址不同,请自行替换。
zookeeper是一个分布式协调服务,它提供了一致性、可靠性、原子性等特性,可以用于实现分布式锁、配置管理、服务发现等功能。zookeeper由多个服务器组成一个集群,每个服务器都有一个唯一的ID,并且其中一个服务器会被选举为leader,负责处理客户端的请求。
启动zookeeper时,需要在每个服务器上执行以下命令:
# 启动zookeeper
zkServer.sh start
这个命令会在后台运行zookeeper,并输出日志到指定的目录。如果想要在前台运行zookeeper,并查看控制台输出的信息,可以执行以下命令:
# 启动zookeeper并输出日志到控制台
zkServer.sh start-foreground
关闭zookeeper时,需要在每个服务器上执行以下命令:
# 关闭zookeeper
zkServer.sh stop
这个命令会停止zookeeper的进程,并删除相关的文件。
查看zookeeper的状态时,有两种方法:
# 查看本地状态
zkServer.sh status
这个命令会输出本地服务器的ID、角色(leader或follower)、连接数等信息。
# 查看远程状态
nc -v 192.168.1.100 2181
stat
这个命令会连接到指定的服务器(192.168.1.100是服务器的IP地址,2181是zookeeper的默认端口),并发送stat命令,然后输出远程服务器的ID、角色、连接数等信息。
hbase是一个分布式的列式数据库,它基于HDFS和zookeeper,提供了高性能、高可用、高扩展的数据存储和查询能力。hbase主要由两个部分组成:HMaster和HRegionServer。
启动hbase时,需要先确保hadoop和zookeeper已经启动,并且配置文件中指定了正确的HDFS和zookeeper地址。然后,在任意节点上执行以下命令即可:
# 启动hbase
start-hbase.sh
这个命令会自动启动一个HMaster进程和多个HRegionServer进程。HMaster是hbase的主节点,负责管理元数据和协调任务。HRegionServer是hbase的从节点,负责存储和处理数据。启动hbase时,会根据配置文件中指定的master节点来启动HMaster进程,如果没有指定,则随机选择一个节点。
关闭hbase时,需要先确保所有的客户端连接已经断开,并且没有正在运行的任务。然后,在任意节点上执行以下命令即可:
# 关闭hbase
stop-hbase.sh
这个命令会自动停止所有的HMaster和HRegionServer进程。关闭hbase时,要保证HMaster节点没有挂掉,否则可能导致数据丢失或服务异常。
如果想要查看hbase的运行状态和数据情况,可以通过浏览器访问以下网址:
其中,192.168.1.100是HMaster所在节点的IP地址,如果你的IP地址不同,请自行替换。
如果想要验证hbase是否正常工作,可以通过交互式shell来操作hbase。在任意节点上执行以下命令,打开交互式shell:
# 打开交互式shell
hbase shell
然后,在交互式shell中输入各种命令,例如:
# 列出所有表
list
# 创建一个表test,有两个列族cf1和cf2
create 'test', 'cf1', 'cf2'
# 插入一条数据到test表中,行键为row1,列族为cf1,列为c1,值为v1
put 'test', 'row1', 'cf1:c1', 'v1'
# 查询test表中row1行的所有数据
get 'test', 'row1'
# 关闭然后删除test表
disable 'test'
drop 'test'
这些命令可以对hbase进行基本的增删改查操作。如果想要了解更多的命令和用法,可以参考官方文档或者输入help命令。
spark是一个分布式的计算框架,它基于HDFS和YARN,提供了高性能、高可用、高扩展的数据处理能力。spark可以运行在多种模式下,例如standalone、yarn、mesos等。在本文中,我将介绍如何在yarn模式下启动和关闭spark。
启动spark时,只需要在主节点上执行以下命令即可:
# 启动spark
start-all.sh
这个命令会自动启动一个SparkMaster进程和多个SparkWorker进程。SparkMaster是spark的主节点,负责管理资源和调度任务。SparkWorker是spark的从节点,负责执行任务。启动spark时,会根据配置文件中指定的master节点来启动SparkMaster进程,如果没有指定,则随机选择一个节点。
关闭spark时,只需要在主节点上执行以下命令即可:
# 关闭spark
stop-all.sh
这个命令会自动停止所有的SparkMaster和SparkWorker进程。
Spark History Server是一个可选的组件,它可以提供历史任务的监控和分析功能。如果想要启动Spark History Server,需要在主节点上执行以下命令:
# 启动Spark History Server
start-history-server.sh
这个命令会在后台运行Spark History Server,并输出日志到指定的目录。
如果想要查看spark的运行状态和数据情况,可以通过浏览器访问以下网址:
其中,192.168.1.100是主节点的IP地址,如果你的IP地址不同,请自行替换。
如果想要验证spark是否正常工作,可以通过提交一个示例程序来测试spark。在任意节点上的spark根目录执行以下命令,提交一个计算圆周率的程序:
# 提交一个计算圆周率的程序
bin/spark-submit --class org.apache.spark.examples.SparkPi --master yarn --deploy-mode client ./examples/jars/spark-examples_2.12-3.2.3.jar 10
这个命令会在客户端模式下提交一个程序到yarn上,并输出结果到控制台。如果输出结果中包含以下内容,则说明运行成功:
# 输出结果
Pi is roughly 3.1418
如果想要在集群模式下提交一个程序到yarn上,并在yarn上查看结果,可以执行以下命令:
# 提交一个计算圆周率的程序
bin/spark-submit --class org.apache.spark.examples.SparkPi --master yarn --deploy-mode cluster ./examples/jars/spark-examples_2.12-3.2.3.jar 10
这个命令会在集群模式下提交一个程序到yarn上,并输出结果到日志文件中。可以通过yarn的网页界面或者日志目录来查看结果。