Hadoop集群运行

1. 实验一:hadoop 集群运行

实验任务一:配置 Hadoop 格式化

步骤一:NameNode 格式化
[root@master ~]# su - hadoop
[hadoop@master ~]$ cd /usr/local/src/hadoop/ 

结果:

[hadoop@master ~]$ ./bin/hdfs namenode –format 
-bash: ./bin/hdfs: No such file or directory
[hadoop@master ~]$ cd /usr/local/src/hadoop/
[hadoop@master hadoop]$ ./bin/hdfs namenode –format 
22/03/30 16:46:38 INFO namenode.NameNode: SHUTDOWN_MSG: 
/************************************************************
SHUTDOWN_MSG: Shutting down NameNode at master/192.168.64.128
************************************************************/
......
步骤二:启动 NameNode
[hadoop@master hadoop]$ hadoop-daemon.sh start namenode 
starting namenode, logging to /usr/local/src/hadoop/logs/hadoop-hadoop-namenode-master.out

实验任务二:查看 Java 进程

[hadoop@master hadoop]$ jps
2372 NameNode
2443 Jps
步骤一:slave 启动 DataNode
[hadoop@slave1 hadoop]$ hadoop-daemon.sh start datanode 
starting datanode, logging to /usr/local/src/hadoop/logs/hadoop-hadoop-datanode-slave1.out
[hadoop@slave2 hadoop]$ hadoop-daemon.sh start datanode
starting datanode, logging to /usr/local/src/hadoop/logs/hadoop-hadoop-datanode-slave2.out
[hadoop@slave1 hadoop]$ jps
2588 Jps
2511 DataNode
[hadoop@slave2 hadoop]$ jps
2402 Jps
2325 DataNode
步骤二:启动 SecondaryNameNode
[hadoop@master hadoop]$ hadoop-daemon.sh start secondarynamenode 
starting secondarynamenode, logging to /usr/local/src/hadoop/logs/hadoop-hadoop-secondarynamenode-master.out
[hadoop@master hadoop]$ jps
2372 NameNode
2519 Jps
2474 SecondaryNameNode
步骤三:查看 HDFS 数据存放位置
[hadoop@master hadoop]$ ll dfs/
total 0
drwxr-xr-x 2 hadoop hadoop  6 Mar 30 15:25 data
drwxr-xr-x 3 hadoop hadoop 40 Mar 30 16:48 name

实验任务三:查看 HDFS 的报告

[hadoop@master sbin]$ hdfs dfsadmin -report 
Configured Capacity: 36477861888 (33.97 GB)
Present Capacity: 30106460160 (28.04 GB)
DFS Remaining: 30106451968 (28.04 GB)
DFS Used: 8192 (8 KB)
DFS Used%: 0.00%
Under replicated blocks: 0
Blocks with corrupt replicas: 0
Missing blocks: 0
Missing blocks (with replication factor 1): 0

-------------------------------------------------
Live datanodes (2):

Name: 192.168.64.130:50010 (slave2)
Hostname: slave2
Decommission Status : Normal
Configured Capacity: 18238930944 (16.99 GB)
DFS Used: 4096 (4 KB)
Non DFS Used: 3185790976 (2.97 GB)
DFS Remaining: 15053135872 (14.02 GB)
DFS Used%: 0.00%
DFS Remaining%: 82.53%
Configured Cache Capacity: 0 (0 B)
Cache Used: 0 (0 B)
Cache Remaining: 0 (0 B)
Cache Used%: 100.00%
Cache Remaining%: 0.00%
Xceivers: 1
Last contact: Wed Mar 30 17:00:36 CST 2022


Name: 192.168.64.129:50010 (slave1)
Hostname: slave1
Decommission Status : Normal
Configured Capacity: 18238930944 (16.99 GB)
DFS Used: 4096 (4 KB)
Non DFS Used: 3185610752 (2.97 GB)
DFS Remaining: 15053316096 (14.02 GB)
DFS Used%: 0.00%
DFS Remaining%: 82.53%
Configured Cache Capacity: 0 (0 B)
Cache Used: 0 (0 B)
Cache Remaining: 0 (0 B)
Cache Used%: 100.00%
Cache Remaining%: 0.00%
Xceivers: 1
Last contact: Wed Mar 30 17:00:38 CST 2022

实验任务四:使用浏览器查看节点状态

可以使用 start-dfs.sh 命令启动 HDFS。这时需要配置 SSH 免密码登录,否则在启动过
程中系统将多次要求确认连接和输入 Hadoop 用户密码

[hadoop@master hadoop]$ stop-dfs.sh 
[hadoop@master hadoop]$ start-dfs.sh

步骤一:在 HDFS 文件系统中创建数据输入目录
[hadoop@master hadoop]$ start-yarn.sh

[hadoop@master sbin]$ jps
3425 Jps
3012 NameNode
3159 ResourceManager
2474 SecondaryNameNode

如果是第一次运行 MapReduce 程序,需要先在 HDFS 文件系统中创建数据输入目录,存
放输入数据。这里指定/input 目录为输入数据的存放目录

[hadoop@master hadoop]$ hdfs dfs -mkdir /input
[hadoop@master hadoop]$ hdfs dfs -ls / 
Found 1 items
drwxr-xr-x   - hadoop supergroup          0 2022-03-30 17:11 /input

此处创建的/input 目录是在 HDFS 文件系统中,只能用 HDFS 命令查看和操作。

步骤二:将输入数据文件复制到 HDFS 的/input 目录中

测试用数据文件仍然是上一节所用的测试数据文件~/input/data.txt,内容如下所示。

[hadoop@master ~]$ mkdir input
[hadoop@master ~]$ ls
input
[hadoop@master ~]$ vi input/data.txt
[hadoop@master ~]$ cat ~/input/data.txt
hello world
hello hadoop
hello huasan

执行如下命令,将输入数据文件复制到 HDFS 的/input 目录中:

[hadoop@master ~]$ hdfs dfs -put ~/input/data.txt /input 

确认文件已复制到 HDFS 的/input 目录:

[hadoop@master ~]$ hdfs dfs -ls /input
Found 1 items
-rw-r--r--   2 hadoop supergroup         38 2022-03-30 17:30 /input/data.txt

步骤三:运行 WordCount 案例,计算数据文件中各单词的频度。

运行 MapReduce 命令需要指定数据输出目录,该目录为 HDFS 文件系统中的目录,会自
动生成。如果在执行 MapReduce 命令前,该目录已经存在,则执行 MapReduce 命令会出错。
例如 MapReduce 命令指定数据输出目录为/output,/output 目录在 HDFS 文件系统中已经存
在,则执行相应的 MapReduce 命令就会出错。所以如果不是第一次运行 MapReduce,就要先
查看HDFS中的文件,是否存在/output目录。如果已经存在/output目录,就要先删除/output
目录,再执行上述命令。

自动创建的/output 目录在 HDFS 文件系统中,使用 HDFS 命令查看和操作。

[hadoop@master ~]$ hdfs dfs -mkdir /output 

先执行如下命令查看 HDFS 中的文件:

[hadoop@master ~]$ hdfs dfs -ls  /
Found 2 items
drwxr-xr-x   - hadoop supergroup          0 2022-03-30 17:30 /input
drwxr-xr-x   - hadoop supergroup          0 2022-03-30 17:31 /output

上述目录中/input 目录是输入数据存放的目录,/output 目录是输出数据存放的目录。
执行如下命令,删除/output 目录。

[hadoop@master ~]$ hdfs dfs -rm -r -f /output
22/03/30 17:32:45 INFO fs.TrashPolicyDefault: Namenode trash configuration: Deletion interval = 0 minutes, Emptier interval = 0 minutes.
Deleted /output

执行如下命令运行 WordCount 案例:

[hadoop@master hadoop]$ hadoop jar share/hadoop/mapreduce/hadoopmapreduce-examples-2.7.1.jar  wordcount /input/data.txt /output 

MapReduce 程序运行过程中的输出信息如下所示

22/03/30 17:35:41 INFO client.RMProxy: Connecting to ResourceManager at localhost/192.168.64.128:8032 22/03/30 17:35:43 INFO input.FileInputFormat: Total input paths to process : 1 22/03/30 17:36:47 INFO mapreduce.JobSubmitter: number of splits:1 22/03/30 17:37:44 INFO mapreduce.JobSubmitter: Submitting tokens for job: job_1588469277215_0001 
......

查看 output 目录,如图 5-6 所示,发现有两个文件。文件_SUCCESS 表示处理成功,处
理的结果存放在 part-r-00000 文件中。在页面上不能直接查看文件内容,需要下载到本地
系统才行。

可以使用 HDFS 命令直接查看 part-r-00000 文件内容,结果如下所示:

[hadoop@master hadoop]$ hdfs dfs -cat /output/part-r-00000 
Hadoop 1 
Hello 3 
Huasan 1 
World 1

可以看出统计结果正确,说明 Hadoop 运行正常

实验任务五:停止 Hadoop

步骤一:停止 yarn
[hadoop@master hadoop]$ stop-yarn.sh

步骤二:停止 DataNode
[hadoop@slave1 hadoop]$ hadoop-daemon.sh stop datanode 
stopping namenode
[hadoop@slave2 hadoop]$ hadoop-daemon.sh stop datanode 
stopping namenode

步骤二:停止 NameNode
[hadoop@master hadoop]$ hadoop-daemon.sh stop namenode 
stopping namenode 

步骤三:停止 SecondaryNameNode
[hadoop@master hadoop]$ hadoop-daemon.sh stop secondarynamenode 
stopping secondarynamenode 

步骤四:查看 JAVA 进程,确认 HDFS 进程已全部关闭
[hadoop@master hadoop]$ jps  
3012 Jps 
30438 RunJar

posted @   LGAEY  阅读(44)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示