Hadoop集群搭建管理(四节点集成)

四台机分别为node1:192.168.23.111;node2:192.168.23.112;node3:192.168.23.113;node4:192.168.23.114

Hadoop的安装与配置

配置好网络、yum源及关闭防火墙和做好主机映射,并ssh免密互通

1、创建hadoop用户。

分别在四台节点机上创建用户hadoop,uid=660,密码都设置为123456
在这里插入图片描述

2、设置Master节点机ssh无密码登录Slave节点机

详细参考同专栏里的《密码学基础及ssh实现多节点间无密码访问》
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3、使用WinSCP上传hadoop-2.7.2.tar.gz软件包到node1节点机的root目录下。

如果hadoop软件包在node1节点机上编译,则把编译好的包拷贝到root目录下即可。
在这里插入图片描述

4、解压文件,安装文件。

[root@node1 ~]# tar xvzf hadoop-2.7.2.tar.gz 
[root@node1 ~]# cd hadoop-2.7.2/
[root@node1 hadoop-2.7.2]# mv * /home/hadoop

5、修改hadoop配置文件(共6个)

Hadoop配置文件主要有:hadoop-env.sh、yarn-env.sh、slaves、core-site.xml、hdfs-site.xml、mapred-site.xml、yarn-site.xml。配置文件在/home/hadoop/etc/hadoop/目录下,进入该目录进行配置。

[root@node1 hadoop-2.7.2]# cd /home/hadoop/etc/hadoop/

1)修改hadoop-env.sh,将文件中的export JAVA_HOME=${JAVA_HOME}
修改为export JAVA_HOME=/usr/lib/jvm/java-1.8.0 。(可以利用java - version查看版本,若没有安装要先安装)

yum -y install java-1.8.0-openjdk*
#node1、node2、node3、node4都需要安装

在这里插入图片描述

在这里插入图片描述
2)修改slaves,该文件登记DataNode节点主机名,本处添加node2,node3,node4三台节点主机名。
在这里插入图片描述
3)修改core-site.xml,将文件中的 <configuration></configuration>修改为如下内容。

<configuration>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://node1:9000</value> #其中node1为集群的NameNode(Master)节点机,node1可以使用IP地址表示。
    </property>
    <property>
        <name>io.file.buffer.size</name>
        <value>131072</value>
    </property>
    <property>
        <name>hadoop.tmp.dir</name>
        <value>file:/home/hadoop/tmp</value>
        <description>Abase for other temporary directories.</description>
    </property>
    <property>
        <name>hadoop.proxyuser.hadoop.hosts</name>
        <value>*</value>
    </property>
    <property>
        <name>hadoop.proxyuser.hadoop.groups</name>
        <value>*</value>
    </property>
</configuration>

4)修改hdfs-site.xml,将文件中的<configuration></configuration>修改为如下内容。

<configuration>
    <property>
        <name>dfs.namenode.secondary.http-address</name>
        <value>node1:9001</value>
    </property>
    <property>
        <name>dfs.namenode.name.dir</name>
        <value>file:/home/hadoop/dfs/name</value>
    </property>
    <property>
        <name>dfs.datanode.data.dir</name>
        <value>file:/home/hadoop/dfs/data</value>
    </property>
    <property>
        <name>dfs.replication</name>
        <value>3</value>
    </property>
    <property>
        <name>dfs.webhdfs.enabled</name>
        <value>true</value>
    </property>
</configuration>

第二个NameNode也使用node1节点机,NameNode产生的数据存放在/home/hadoop/dfs/name目录下,DataNode产生的数据存在/home/hadoop/dfs/data目录下,设置备份数量3份。

5)将文件mapred-site.xml.template改名为mapred-site.xml。

[root@node1 hadoop]# mv mapred-site.xml.template mapred-site.xml

将文件中的<configuration></configuration>修改为如下内容。

<configuration>
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
    <property>
        <name>mapreduce.jobhistory.address</name>
        <value>node1:10020</value>
    </property>
    <property>
        <name>mapreduce.jobhistory.webapp.address</name>
        <value>node1:19888</value>
    </property>
</configuration>

6)修改yarn-site.xml,将文件中的<configuration></configuration>修改为如下内容。

<configuration>
    <property>
        <name>yarn.resourcemanager.hostname</name>
        <value>192.168.23.111</value>
    </property>
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
    <property>
        <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
        <value>org.apache.hadoop.mapred.ShuffleHandler</value>
    </property>
    <property>
        <name>yarn.resourcemanager.address</name>
        <value>node1:8032</value>
    </property>
    <property>
        <name>yarn.resourcemanager.scheduler.address</name>
        <value>node1:8030</value>
    </property>
    <property>
        <name>yarn.resourcemanager.resource-tracker.address</name>
        <value>node1:8031</value>
    </property>
    <property>
        <name>yarn.resourcemanager.admin.address</name>
        <value>node1:8033</value>
    </property>
    <property>
        <name>yarn.resourcemanager.webapp.address</name>
        <value>node1:8088</value>
    </property>
</configuration>

6、修改“/home/hadoop/”文件用户主/组属性。

[root@node1 hadoop]# chown -R hadoop:hadoop /home/hadoop

7、将配置好的hadoop系统复制到其他节点机上。

[root@node1 hadoop]# scp -r * hadoop@node4:/home/hadoop
[root@node1 hadoop]# scp -r * hadoop@node3:/home/hadoop
[root@node1 hadoop]# scp -r * hadoop@node2:/home/hadoop

8、分别root用户登录node2,node3,node4节点机,修改 “/home/hadoop/”文件用户主/组属性。

chown -R hadoop:hadoop /home/hadoop #node2、node3、node4执行命令

Hadoop的管理

Hadoop系统搭建完成后,需要对NameNode节点进行格式化,启动相关服务,检查运行状态。

1、格式化NameNode。

登录node1节点机,以用户hadoop登录或su – hadoop登录,格式化NameNode。

[hadoop@node1 ~]$ hadoop namenode -format 
#不要多次格式化,如果出现bug,请按照配置文件路径删除缓存

在这里插入图片描述
最后显示有“successfully formatted.”表示格式化成功。

2、启动、停止hadoop服务。

进入/home/hadoop/sbin/,可以看到目录的脚本程序。
在这里插入图片描述
1)运行start-dfs.sh脚本程序。
2)运行yarn脚本程序。
在这里插入图片描述

3)分别检查每台节点机运行情况。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4)停止hadoop服务,停止服务后,后面操作无法进行,这步暂时不操作

stop-yarn.sh
stop-dfs.sh

5)可以使用all来启动关闭所有节点

[hadoop@node1 ~]$ vim .bash_profile 

在这里插入图片描述

[hadoop@node1 ~]$ source .bash_profile

在这里插入图片描述

3、查看集群状态。

[hadoop@node1 ~]$ hdfs dfsadmin -report #执行此条命令,显示内容如下,注意Live datanodes(3) 如果没有3则集成失败的
Configured Capacity: 54716792832 (50.96 GB)
Present Capacity: 48293249024 (44.98 GB)
DFS Remaining: 48293236736 (44.98 GB)
DFS Used: 12288 (12 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 (3):

Name: 192.168.23.112:50010 (node2) Hostname: node2 Decommission Status
Normal Configured Capacity: 18238930944 (16.99 GB) DFS Used: 4096 (4
KB) Non DFS Used: 2141077504 (1.99 GB) DFS Remaining: 16097849344
(14.99 GB) DFS Used%: 0.00% DFS Remaining%: 88.26% 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: Thu
Jul 29 18:09:15 CST 2021
Name: 192.168.23.113:50010 (node3) Hostname: node3 Decommission Status
Normal Configured Capacity: 18238930944 (16.99 GB) DFS Used: 4096 (4
KB) Non DFS Used: 2141249536 (1.99 GB) DFS Remaining: 16097677312
(14.99 GB) DFS Used%: 0.00% DFS Remaining%: 88.26% 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: Thu
Jul 29 18:09:15 CST 2021
Name: 192.168.23.114:50010 (node4) Hostname: node4 Decommission Status
Normal Configured Capacity: 18238930944 (16.99 GB) DFS Used: 4096 (4
KB) Non DFS Used: 2141216768 (1.99 GB) DFS Remaining: 16097710080
(14.99 GB) DFS Used%: 0.00% DFS Remaining%: 88.26% 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: Thu
Jul 29 18:09:18 CST 2021

4、查看文件块组成。

在这里插入图片描述

5、使用浏览器浏览Master节点机 http://192.168.23.111:50070,查看NameNode节点状态。

注意:这个网址ip必须是你主节点的ip
在这里插入图片描述

6、浏览Datanodes数据节点。

在这里插入图片描述

7、使用浏览器浏览Master节点机 http://192.168.23.111:8088查看所有应用。

在这里插入图片描述

8、浏览Nodes。

在这里插入图片描述

Hadoop Shell命令

为方便对hdfs文件系统和作业提交的操作,hadoop提供了一些基本的shell操作,这些基本操作与linux下的操作有很多相似性。shell操作的基本命令格式为:hdfs dfs -cmd 其中,-cmd为为具体的操作命令如-cp(复制命令)。

1、在hdfs创建gdu目录

[hadoop@node1 ~]$ hdfs dfs -mkdir /gdu

2、在hdfs查看当前目录。

在这里插入图片描述

3、在本地系统编辑文件jie.txt。

[hadoop@node1 ~]$ vim jie.txt

在这里插入图片描述

[hadoop@node1 ~]$ hdfs dfs -put jie.txt /gdu

4、从hdfs中下载文件。

[hadoop@node1 ~]$ hdfs dfs -get /gdu/jie.txt

5、查看hdfs中/swvtc/jie.txt的内容。

在这里插入图片描述

6、Hadoop常用的一些命令

命令介绍如下:

> hdfs dfs -ls  <path>                #查看指定目录下文件
hdfs dfs -cat <path-file>           #查看文件内容
hdfs dfs -put <local-file/path> <hdoop-path>  #将本地文件或目录存储至hadoop
hdfs dfs -get <hadoop-path> <local> #将hadoop文件下载至本地
hdfs dfs -rm  <hadoop-file>         #删除hadoop文件
hdfs dfs -rmr <hadoop-path>         #删除hadoop上指定文件夹(包含子目录等)
hdfs dfs -mkdir <hadoop-path>       #在hadoop创建新目录
hdfs dfs -touchz <hadoop-path-file> #在hadoop新建一个空文件
hdfs dfs -mv  <old-path-file> <new-path-file> #将hadoop文件重命名
hdfs dfs -getmerge <hadoop-path> <local-path-file> #将hadoop指定目录下所有内容
                                    #保存为一个文件,同时下载至本地
hadoop job -kill  <job-id>          #将正在运行的hadoop作业杀掉
hadoop jar  <jar> <mainClass] args... #运行jar文件
hadoop distcp <srcurl> <desturl>      #递归地拷贝文件或目录

7、Hadoop其他一些命令

命令介绍如下:

1)运行HDFS文件系统检查工具(fsck tools)
用法:

hadoop fsck [GENERIC_OPTIONS] <path> [-move | -delete | -openforwrite] [-files [-blocks [-locations | -racks]]]
选项:

<path>        检查的起始目录。
-move         移动受损文件到/lost+found
-delete       删除受损文件。
-openforwrite 打印写打开的文件。
-files        打印正被检查的文件。
-blocks       打印块信息。
-locations    打印出每个块的位置信息。
-racks        打印出data-node的网络拓扑结构。

2)用于和Map Reduce作业交互的命令(jar)
用法:

hadoop job [GENERIC_OPTIONS] [-submit <job-file>] | [-status <job-id>] | [-counter <job-id><group-name><counter-name>] | [-kill <job-id>] | [-events <job-id><from-event-#><#-of-events>] | [-history [all] <jobOutputDir>] | [-list [all]] | [-kill-task <task-id>] | [-fail-task <task-id>]
选项:
-submit <job-file>      提交作业
-status <job-id>        打印map和reduce完成百分比和所有计数器。
-counter <job-id><group-name><counter-name> 打印计数器的值。
-kill <job-id>          杀死指定作业。
-events <job-id><from-event-#><#-of-events> 打印给定范围内jobtracker                      
                                            接收到的事件细节。
-history [all] <jobOutputDir> -history <jobOutputDir> 打印作业的细节、失败
                  及被杀死原因的细节。更多的关于一个作业的细节比如成功的
                  任务,做过的任务尝试等信息可以通过指定[all]选项查看。
-list [all] -list all   显示所有作业。-list只显示将要完成的作业。
-kill-task <task-id>    杀死任务。被杀死的任务不会不利于失败尝试。
-fail-task <task-id>    使任务失败。被失败的任务会对失败尝试不利。

3)运行pipes作业
用法:

hadoop pipes [-conf<path>] [-jobconf<key=value>, <key=value>, ...] [-input <path>] [-output <path>] [-jar <jar file>] [-inputformat<class>] [-map <class>] [-partitioner<class>] [-reduce <class>] [-writer <class>] [-program <executable>] [-reduces <num>]
选项:
-conf<path>               作业的配置
-jobconf<key=value>, <key=value>, ... 增加/覆盖作业的配置项
-input <path>             输入目录
-output <path>            输出目录
-jar <jar file>           Jar文件名
-inputformat<class>       InputFormat类
-map <class>              Java Map类
-partitioner<class>       Java Partitioner
-reduce <class>           Java Reduce类
-writer <class>           Java RecordWriter
-program <executable>     可执行程序的URI
-reduces <num>            reduce个数

4)运行一个HDFS的dfsadmin客户端
用法:

hadoop dfsadmin [GENERIC_OPTIONS] [-report] [-safemode enter | leave | get | wait] [-refreshNodes] [-finalizeUpgrade] [-upgradeProgress status | details | force] [-metasave filename] [-setQuota<quota><dirname>...<dirname>] [-clrQuota<dirname>...<dirname>] [-help [cmd]]
选项:
-report            报告文件系统的基本信息和统计信息。
-safemode enter | leave | get | wait   安全模式维护命令。
-refreshNodes      重新读取hosts和exclude文件,更新允许连到Namenode的
                   或那些需要退出或入编的Datanode的集合。
-finalizeUpgrade   终结HDFS的升级操作。
-upgradeProgress status | details | force 请求当前系统的升级状态,
                   状态的细节,或者强制升级操作进行。
-metasave filename 保存Namenode的主要数据结构到hadoop.log.dir属性指定
                   的目录下的<filename>文件。
-setQuota<quota><dirname>...<dirname> 为每个目录 <dirname>设定配额<quota>。
                   目录配额是一个长整型整数,强制限定了目录树下的名字个数。
-clrQuota<dirname>...<dirname> 为每一个目录<dirname>清除配额设定。
-help [cmd]        显示给定命令的帮助信息。

5)运行namenode。
用法:

hadoop namenode [-format] | [-upgrade] | [-rollback] | [-finalize] | [-importCheckpoint]
选项:
-format            格式化namenode。
-upgrade           分发新版本的hadoop后,namenode应以upgrade选项启动。
-rollback          将namenode回滚到前一版本。
-finalize finalize 会删除文件系统的前一状态。
-importCheckpoint  从检查点目录装载镜像并保存到当前检查点目录,
                   检查点目录由fs.checkpoint.dir指定。
  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

侬本多情。

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值