5. Hadoop集群操作

5.1 启动Hadoop集群

5.1.1 格式化文件系统

如果集群是第一次启动,需要在hadoop102节点格式化NameNode。 注意:格式化NameNode,会产生新的集群id,导致NameNode和DataNode的集群id不一致,集群找不到已往数据。如果集群在运行过程中报错,需要重新格式化NameNode的话,一定要先停止namenode和datanode进程,并且要删除所有机器的data和logs目录,然后再进行格式化。

[li@hadoop102 ~]$ hdfs namenode -format

# 或者

[li@hadoop102 ~]$ hadoop namenode -format

执行上述任意一条命令均可以进行Hadoop集群格式化。执行格式化指令之后,出现: has been successfully formatted.信息,表明HDFS文件系统成功格式化,即可正式启动集群;否则,需要查看命令是否正确,或者安装配置是否正确。

5.1.2 启动Hadoop进程

Hadoop集群的启动,需要启动其内部的两个集群框架,HDFS集群和YARN集群。启动方式有单节点逐个启动和使用脚本一键启动两种。

启动HDFS

[li@hadoop102 sbin]$ start-dfs.sh

Starting namenodes on [hadoop102]

Starting datanodes

hadoop104: WARNING: /opt/module/hadoop-3.1.3/logs does not exist. Creating.

hadoop103: WARNING: /opt/module/hadoop-3.1.3/logs does not exist. Creating.

Starting secondary namenodes [hadoop104]

启动YARN

在配置了ResourceManager的节点(hadoop103)启动YARN

[li@hadoop103 sbin]$ start-yarn.sh

Starting resourcemanager

Starting nodemanagers

5.2 监控Hadoop集群

Hadoop集群有相关的服务监控端口,方便用户对Hadoop集群的资源、任务运行状态等信息有更直观的了解,具体如下表:

服务Web接口默认端口NameNodehttp://namenode_host:port/9870ResourceManagerhttp://resourcemanager_host:port/8088MapReduce JobHistoryServerhttp://jobhistroyserver_host:port/19888

5.2.1 HDFS监控

Web端查看HDFS的NameNode: (a)浏览器中输入:http://hadoop102:9870

Overview

记录了NameNode的启动时间、版本号、编译版本等一些基本信息。 Summary

记录集群信息。提供了当前集群环境的一些有用信息,同时还标注了当前集群环境中DataNode的信息,对活动状态的DataNode也专门进行了记录。 NameNode Storage

提供了NameNode的信息,最后的State标示此节点为活动节点,可正常提供服务。

依次选择“Utilities”→“Browse the file system”命令可以查看HDFS上的文件信息。

(b)查看HDFS上存储的数据信息

(c)查看Hadoop进程

[li@hadoop102 hadoop-3.1.3]$ jps

2384 NameNode

3153 Jps

2889 NodeManager

2555 DataNode

5.2.2 YARN监控

Web端查看YARN的ResourceManager: (a)浏览器中输入:http://hadoop103:8088

(b)查看YARN上运行的Job信息

[li@hadoop103 hadoop-3.1.3]$ jps

3024 Jps

2528 NodeManager

2388 ResourceManager

2184 DataNode

5.2.3 日志监控

Web端查看Hadoop的日志监控界面即JobHistroy: (a)在浏览器中地址栏中输入http://hadoop102:19888

5.3 Hadoop集群基本测试

5.3.1 上传文件到集群

创建input目录,上传小文件

[li@hadoop102 hadoop-3.1.3]$ hadoop fs -mkdir /input

[li@hadoop102 hadoop-3.1.3]$ hadoop fs -put $HADOOP_HOME/wcinput/word.txt /input

2022-08-24 15:09:10,390 INFO sasl.SaslDataTransferClient: SASL encryption trust check: localHostTrusted = false, remoteHostTrusted = false

上传完成后可以在浏览器中查看内容:

上传大文件到/目录

[li@hadoop102 hadoop-3.1.3]$ hadoop fs -put /opt/software/jdk-8u212-linux-x64.tar.gz /

2022-08-24 15:16:02,641 INFO sasl.SaslDataTransferClient: SASL encryption trust check: localHostTrusted = false, remoteHostTrusted = false

2022-08-24 15:16:03,912 INFO sasl.SaslDataTransferClient: SASL encryption trust check: localHostTrusted = false, remoteHostTrusted = false

5.3.2 查看文件

查看HDFS文件存储路径

[li@hadoop102 subdir0]$ pwd

/opt/module/hadoop-3.1.3/data/dfs/data/current/BP-1775777091-192.168.10.132-1661323073082/current/finalized/subdir0/subdir0

查看HDFS在磁盘存储文件内容

[li@hadoop102 subdir0]$ cat blk_1073741825

hadoop yarn

hadoop mapreduce

atguigu

atguigu

拼接其他两个数据包

[li@hadoop102 subdir0]$ cat blk_1073741826>>tmp.tar.gz

[li@hadoop102 subdir0]$ cat blk_1073741827>>tmp.tar.gz

[li@hadoop102 subdir0]$ tar -zxvf tmp.tar.gz

jdk1.8.0_212/

jdk1.8.0_212/README.html

jdk1.8.0_212/LICENSE

jdk1.8.0_212/include/

jdk1.8.0_212/include/jawt.h

jdk1.8.0_212/include/linux/

jdk1.8.0_212/include/linux/jawt_md.h

jdk1.8.0_212/include/linux/jni_md.h

jdk1.8.0_212/include/classfile_constants.h

jdk1.8.0_212/include/jvmticmlr.h

jdk1.8.0_212/include/jni.h

...

发现文件就是上传的jdk。

5.3.3 下载文件

[li@hadoop102 ~]$ hadoop fs -get /jdk-8u212-linux-x64.tar.gz ./

2022-08-24 15:29:50,243 INFO sasl.SaslDataTransferClient: SASL encryption trust check: localHostTrusted = false, remoteHostTrusted = false

查看文件

[li@hadoop102 ~]$ ll

总用量 190480

drwxrwxr-x. 2 li li 4096 8月 23 16:49 bin

-rw-r--r--. 1 li li 195013152 8月 24 15:29 jdk-8u212-linux-x64.tar.gz # 下载成功

drwxr-xr-x. 2 li li 4096 8月 22 17:08 公共

drwxr-xr-x. 2 li li 4096 8月 22 17:08 模板

drwxr-xr-x. 2 li li 4096 8月 22 17:08 视频

drwxr-xr-x. 2 li li 4096 8月 22 17:08 图片

drwxr-xr-x. 2 li li 4096 8月 22 17:08 文档

drwxr-xr-x. 2 li li 4096 8月 22 17:08 下载

drwxr-xr-x. 2 li li 4096 8月 22 17:08 音乐

drwxr-xr-x. 2 li li 4096 8月 22 17:08 桌面

执行wordcount程序

[li@hadoop102 hadoop-3.1.3]$ hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.3.jar wordcount /input /output

5.4 停止Hadoop集群

5.4.1 各模块分开启动/停止

在配置ssh的前提下

整体启动/停止HDFS

start-dfs.sh/stop-dfs.sh

整体启动/停止YARN

start-yarn.sh/stop-yarn.sh

5.4.2 各服务组件逐一启动/停止

分别启动/停止HDFS组件

hdfs --daemon start/stop namenode/datanode/secondarynamenode

启动/停止YARN

yarn --daemon start/stop resourcemanager/nodemanager

5.5 Hadoop集群常用脚本

5.5.1 Hadoop集群启停脚本

包含HDFS,Yarn,Historyserver:myhadoop.sh

[li@hadoop102 hadoop-3.1.3]$ cd /home/li/bin

[li@hadoop102 bin]$ vim myhadoop.sh

输入如下内容:

#!/bin/bash

if [ $# -lt 1 ]

then

echo "No Args Input..."

exit ;

fi

case $1 in

"start")

echo " =================== 启动 hadoop集群 ==================="

echo " --------------- 启动 hdfs ---------------"

ssh hadoop102 "/opt/module/hadoop-3.1.3/sbin/start-dfs.sh"

echo " --------------- 启动 yarn ---------------"

ssh hadoop103 "/opt/module/hadoop-3.1.3/sbin/start-yarn.sh"

echo " --------------- 启动 historyserver ---------------"

ssh hadoop102 "/opt/module/hadoop-3.1.3/bin/mapred --daemon start historyserver"

;;

"stop")

echo " =================== 关闭 hadoop集群 ==================="

echo " --------------- 关闭 historyserver ---------------"

ssh hadoop102 "/opt/module/hadoop-3.1.3/bin/mapred --daemon stop historyserver"

echo " --------------- 关闭 yarn ---------------"

ssh hadoop103 "/opt/module/hadoop-3.1.3/sbin/stop-yarn.sh"

echo " --------------- 关闭 hdfs ---------------"

ssh hadoop102 "/opt/module/hadoop-3.1.3/sbin/stop-dfs.sh"

;;

*)

echo "Input Args Error..."

;;

esac

:wq保存退出。 修改脚本执行权限:

[li@hadoop102 bin]$ chmod +x myhadoop.sh

[li@hadoop102 bin]$ myhadoop.sh stop #停止集群

5.5.2 查看进程脚本

查看三台服务器Java进程脚本:jpsall

[li@hadoop102 bin]$ vim jpsall

输入如下内容:

#!/bin/bash

for host in hadoop102 hadoop103 hadoop104

do

echo =============== $host ===============

ssh $host jps

done

:wq保存后退出,然后赋予脚本执行权限

[li@hadoop102 bin]$ chmod +x jpsall

5.5.3 脚本分发

分发/home/li/bin目录,保证自定义脚本在三台机器上都可以使用

[li@hadoop102 bin]$ xsync /home/li/bin/

==================== hadoop102 ====================

sending incremental file list

sent 129 bytes received 17 bytes 292.00 bytes/sec

total size is 2,007 speedup is 13.75

==================== hadoop103 ====================

sending incremental file list

bin/

bin/jpsall

bin/myhadoop.sh

sent 1,490 bytes received 58 bytes 1,032.00 bytes/sec

total size is 2,007 speedup is 1.30

==================== hadoop104 ====================

sending incremental file list

bin/

bin/jpsall

bin/myhadoop.sh

sent 1,490 bytes received 58 bytes 3,096.00 bytes/sec

total size is 2,007 speedup is 1.30

精彩内容

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: