Hadoop----->完全分布式集群环境的搭建

本文详细介绍了如何在Linux环境下搭建Hadoop完全分布式集群,包括关闭防火墙、配置IP与hostname、设置免密登录、配置环境变量、关闭selinux、修改配置文件如core-site.xml、hdfs-site.xml、mapred-site.xml、yarn-site.xml,以及格式化NameNode、启动HDFS和YARN。最后通过WebUI和单词统计验证了集群的正常运行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Hadoop----->完全分布式集群的搭建

在搭建伪分布式集群之前确保以下工作已经完成
1.确保防火墙是关闭的.

[root@hadoop01 ~]# systemctl disable firewalld.service

2.NAT模式和静态IP的确定 (192.168.10.101)

[root@qianfeng01 ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33

IPADDR=192.168.10.101

3.确保/etc/hosts文件里 ip和hostname的映射关系

[root@qianfeng01 ~]# vim /etc/hosts

192.168.10.101 hadoop01
4. 确保免密登陆localhost有效

1. 生成秘钥
[root@qianfeng01 ~]#  ssh-keygen -t rsa    一路回车下去
2. 将公钥拷贝到远程机器上
[root@qianfeng01 ~]#  ssh-copy-id -i qianfeng02
ssh-copy-id的作用:将公钥文件拷贝到远程机器的.ssh隐藏目录下,并更名成authorized_keys文件

检测是否可用

[root@hadoop01 ~]# ssh localhost
Last login: Sat Dec  4 15:24:09 2021 from 192.168.10.1
[root@hadoop01 ~]# ssh 0.0.0.0
Last login: Sat Dec  4 16:16:01 2021 from localhost
[root@hadoop01 ~]# ssh 127.0.0.1
Last login: Sat Dec  4 16:17:53 2021 from 192.168.10.1

成功!!!!
5. jdk和hadoop的环境变量配置

-1. 上传和解压两个软件包
[root@hadoop01 ~]# tar -zxvf jdk-8u221-linux-x64.tar.gz -C /usr/local/
[root@hadoop01 ~]# tar -zxvf hadoop-2.7.6.tar.gz -C /usr/local/

-2. 进入local里,给两个软件更名
[root@hadoop01 ~]# cd /usr/local/
[root@hadoop01 local]# mv 1.8.0_221/  jdk
[root@hadoop01 local]# mv hadoop-2.7.6/ hadoop

-3. 配置环境变量
[hadoop@hadoop01 local]# vi /etc/profile

.....省略...........

#java environment
export JAVA_HOME=/usr/local/jdk
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH

#hadoop environment
export HADOOP_HOME=/usr/local/hadoop
export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH

6.关闭selinux

[root@hadoop01 ~]# vi /etc/selinux/config
.........co
SELINUX=disabled		#改这里	
.........

开始搭建环境

第一步

修改core-site.xml的配置文件

[root@hadoop01 ~]# cd $HADOOP_HOME/etc/hadoop/
[root@hadoop01 hadoop]# vi core-site.xml
<configuration>
     <!-- hdfs的地址名称:schame,ip,port-->
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://hadoop01:8020</value>
    </property>
     <!-- hdfs的基础路径,被其他属性所依赖的一个基础路径 -->
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/usr/local/hadoop/tmp</value>
    </property>
</configuration>

第二步

修改 hdfs-site.xml的配置文件

[root@hadoop01 hadoop]# vi hdfs-site.xml
<configuration>
    <!-- namenode守护进程管理的元数据文件fsimage存储的位置-->
    <property>
        <name>dfs.namenode.name.dir</name>
        <value>file://${hadoop.tmp.dir}/dfs/name</value>
    </property>
    <!-- 确定DFS数据节点应该将其块存储在本地文件系统的何处-->
    <property>
        <name>dfs.datanode.data.dir</name>
        <value>file://${hadoop.tmp.dir}/dfs/data</value>
    </property>
    <!-- 块的副本数-->
    <property>
        <name>dfs.replication</name>
        <value>3</value>
    </property>
    <!-- 块的大小(128M),下面的单位是字节-->
    <property>
        <name>dfs.blocksize</name>
        <value>134217728</value>
    </property>
    <!-- secondarynamenode守护进程的http地址:主机名和端口号。参考守护进程布局-->
    <property>
        <name>dfs.namenode.secondary.http-address</name>
        <value>hadoop02:50090</value>
    </property>
  	<!-- namenode守护进程的http地址:主机名和端口号。参考守护进程布局-->
	<property>
  	  <name>dfs.namenode.http-address</name>
  	  <value>hadoop01:50070</value>
	</property>  
</configuration>

第三步

配置mapred-site.xml文件

[root@hadoop01 hadoop]# cp mapred-site.xml.template  mapred-site.xml
[root@hadoop01 hadoop]# vi mapred-site.xml
<configuration>
    <!-- 指定mapreduce使用yarn资源管理器-->
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
    <!-- 配置作业历史服务器的地址-->
    <property>
        <name>mapreduce.jobhistory.address</name>
        <value>hadoop01:10020</value>
    </property>
    <!-- 配置作业历史服务器的http地址-->
    <property>
        <name>mapreduce.jobhistory.webapp.address</name>
        <value>hadoop01:19888</value>
    </property>
</configuration>

第四步

配置yarn-site.xml文件

[root@qianfeng01 hadoop]# vi yarn-site.xml
<configuration>
    <!-- 指定yarn的shuffle技术-->
    <property>
        <name>yarn.nodemanager.aux-services</name>
       <value>mapreduce_shuffle</value>
    </property>
    <!-- 指定resourcemanager的主机名-->
    <property>
        <name>yarn.resourcemanager.hostname</name>
        <value>hadoop01</value>
    </property> 
    <!--下面的可选-->
    <!--指定shuffle对应的类 -->
	<property> 
	<name>yarn.nodemanager.aux-services.mapreduce_shuffle.class</name>
     <value>org.apache.hadoop.mapred.ShuffleHandler</value> 
	</property>

	<!--配置resourcemanager的内部通讯地址-->
	<property>
	<name>yarn.resourcemanager.address</name>
	<value>hadoop01:8032</value>
	</property>

	<!--配置resourcemanager的scheduler的内部通讯地址-->
	<property>
	<name>yarn.resourcemanager.scheduler.address</name>
	<value>hadoop01:8030</value>
	</property>

	<!--配置resoucemanager的资源调度的内部通讯地址-->
	<property>
	<name>yarn.resourcemanager.resource-tracker.address</name>
	<value>hadoop01:8031</value>
	</property>

	<!--配置resourcemanager的管理员的内部通讯地址-->
	<property>
	<name>yarn.resourcemanager.admin.address</name>
	<value>hadoop01:8033</value>
	</property>

	<!--配置resourcemanager的web ui 的监控页面-->
	<property>
	<name>yarn.resourcemanager.webapp.address</name>
	<value>hadoop01:8088</value>
	</property>
</configuration>

第五步

配置hadoop-env.sh脚本文件

[root@hadoop01 hadoop]# vi hadoop-env.sh
.........
# The java implementation to use.
export JAVA_HOME=/usr/local/jdk
.........

第六步

配置slaves文件
此文件用于指定datanode守护进程所在的机器节点主机名

[root@hadoop01 hadoop]# vi slaves
hadoop01
hadoop02
hadoop03

第七步

配置yarn-env.sh文件
此文件可以不配置,不过,最好还是修改一下yarn的jdk环境比较好

[root@hadoop01 hadoop]# vi yarn-env.sh
.........
# some Java parameters
export JAVA_HOME=/usr/local/jdk
if [ "$JAVA_HOME" != "" ]; then
  #echo "run java in $JAVA_HOME"
  JAVA_HOME=$JAVA_HOME
fi
.........

第八步

克隆两台虚拟机
hadoop01—克隆–>hadoop102 修改IP(第二步)为:192.168.10.102;修改映射关系(第三步):192.168.10.102 hadoop02
hadoop01—克隆–>hadoop103 修改IP(第二步)为:192.168.10.103;修改映射关系(第三步):192.168.10.103 hadoop03
这样hadoop02和hadoop03就有了跟hadoop01一样的配置

第九步
格式化NameNode

[root@hadoop01 hadoop]# hdfs namenode -format

**第十步

启动HDFS**
启动yarn

[root@hadoop01 hadoop]# start-dfs.sh
[root@hadoop01 hadoop]# start-yarn.sh

jps命令查看守护进程


[root@qianfeng01 ~]# jps
2198 NodeManager
1769 DataNode
3417 Jps
2026 ResourceManager
1631 NameNode

验证是否可用

WebUI_50070
可以在浏览器上输入:192.168.10.101:50070 来查看一下伪分布式集群的信息
在这里插入图片描述
WebUI_8088
在这里插入图片描述

单词统计进行验证
在根目录下创建一个目录

[root@hadoop01 ~]# vim ~/data

在创建的目录中创建文件

[root@hadoop01 ~]# cd ~/data
[root@hadoop01 data]# touch test.txt

在文件中写入多个单词

[root@qianfeng01 data]# vim test.txt

在hdfs上创建存储目录/

[root@qianfeng01 hadoop]# hdfs dfs -mkdir /input

将本地文件系统上的上传到hdfs上,并在web上查看一下

[root@qianfeng01 hadoop]$ hdfs dfs -put ~/data/test.txt /input/

运行自带的单词统计程序wordcount

[root@qianfeng01 hadoop]# cd $HADOOP_HOME
[root@qianfeng01 hadoop]# hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.6.jar  wordcount /input /out

查看统计结果


[root@qianfeng01 hadoop]# hdfs dfs -cat /out/part-r-00000
chain   1
colths  1
do      1
heppy   1
is      1
mei     2
new     2
something       1
tang    3
to      2
tom     1
want    1
welcome 1
what    1
year    2
yue     1

over:环境搭建结束

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值