Hadoop集群搭建教程(hadoop-3.1.3手把手教学)超详细!!!


前言

本文是基于hadoop-3.1.3搭建的集群,集群规模是5台机器,下面讲详细讲述每一步的操作流程,如果按照本文搭建过程中出现问题可以留言。

一、集群机器的准备

1、关闭防火墙

#查看防火墙状态
systemctl status firewalld 
#永久关闭防火墙
systemctl disbale firewalld

2、配置静态 IP

vim /etc/sysconfig/network-scripts/ifcfg-ens33
#加上以下内容
IPADDR="192.168.29.151"		#ip
NETMASK="255.255.255.0"		#子网掩码
GATEWAY="192.168.29.2"		#网关
DNS1="8.8.8.8"				#DNS1
DNS2="114.114.114.114"		#DNS2
#修改下面的配置
BOOTPROTO="static"			#将ip由动态改成静态

3、主机名称

修改主机名并将ip和主机名建立映射关系

#查看主机名
hostname
#修改主机名
hostnamectl set-hostname cluster01 #我的主机名为cluster01
vim /etc/hosts #加上以下内容
192.168.29.151 cluster01	#第一台机器的ip和主机名
192.168.29.152 cluster02	#第二台机器的ip和主机名
192.168.29.153 cluster03	#第三台机器的ip和主机名
192.168.29.154 cluster04	#第四台机器的ip和主机名
192.168.29.155 cluster05	#第五台机器的ip和主机名

以上操作5台机器都需要做,像我这里,其他四台机器只需要修改上述步骤的ip号和主机名即可,其他都是一样的操作

二、配置SSH无密登录

1、以192.168.29.151为例

cd ~ #进入根目录
cd .ssh 
ssh-keygen -t rsa #然后敲(三个回车),就会生成两个文件 id_rs(私钥)、id_rsa.pub(公钥)
#将公钥拷贝到要免密登录的目标机器上(其他机器需要启动,因为需要输入密码)
ssh-copy-id cluster02  
ssh-copy-id cluster03  
ssh-copy-id cluster04  
ssh-copy-id cluster05 
##注意:上面操作仅仅是cluster01无密登录到cluster02,cluster03,cluster04,cluster05上
##如果需要5台机器相互免密登录,还需要到其他四台上重复操作以上操作
##例如:进入cluster02机器上将cluster02的公钥拷贝到cluster01,cluster03,cluster04,cluster05

2、安装配置jdk和hadoop

#将下载好的jdk安装包和hadoop安装包解压到指定文件夹中(文件夹根据需要自己建)
mkdir -p /opt/software
#解压
tar -zxvf jdk-8u171-linux-x64.tar.gz -C /opt/software
tar -zxvf hadoop-3.1.3.tar.gz -C /opt/software
#修改解压文件默认名字(名字过于长,所以建议修改一下)
cd /opt/software/java 		    #我放jdk的目录
mv jdk-8u171-linux-x64/ jdk180	#将jdk改为jdk180
cd /opt/software				#我放hadoop的目录
mv  hadoop-3.1.3/ hadoop313		#将hadoop改为hadoop313
#配置环境变量
vim /etc/profile.d/myenv.sh
# jdk
export JAVA_HOME=/opt/software/java/jdk180	#自己的jdk路径
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

# hadoop
export HADOOP_HOME=/opt/software/hadoop313	#自己的hadoop路径
export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
export HDFS_NAMENODE_USER=root
export HDFS_DATANODE_USER=root
export HDFS_SECONDARYNAMENODE_USER=root
export YARN_RESOURCEMANAGER_USER=root
export YARN_NODEMANAGER_USER=root

保存退出,通过命令 source /etc/profile 激活
输入 java -version 如果实现jdk的版本信息就是激活成功了

3、文件复制

将jdk、hadoop、环境配置文件复制到其他四个机器上 ,四台机上必须创建所需的文件夹

scp   -r    $pdir/$fname            $user@$host:$pdir/$fname
命令 递归    要拷贝的文件路径/名称   目的地用户@主机:目的地路径/名称
#下面是我将jdk、环境变量配置文件、hadoop 拷贝到cluster02上,同样的方式复制到其他机器上 
#注:拷贝到其他机器的环境变量配置文件需要激活一下 source /etc/profile 再通过 java -version 来验证是否激活
scp -r /opt/software/java/ root@cluster02:/opt/software/
scp -r /etc/profile.d/myenv.sh root@cluster02:/etc/profile.d/
scp -r /opt/software/hadoop313/ root@cluster02:/opt/software/

三、hadoop的集群配置

以上步骤配置完成,就需要进行集群配置了

1、集群的配置介绍

NameNode 和 SecondaryNameNode 不要安装在同一台服务器
ResourceManager 也很消耗内存,不要和 NameNode、SecondaryNameNode 配置在同一台机器上

cluster01cluster02cluster03cluster04cluster05
HDFSNameNodeSecondaryNameNode
DataNodeDataNodeDataNodeDataNodeDataNode
YARNResourceManager
NodeManagerNodeManagerNodeManagerNodeManagerNodeManager

2、4个xml文件的配置

1、core-site.xml

<!-- 指定 NameNode 的地址 -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://192.168.29.151:8020</value>
</property>
<!-- 指定 hadoop 数据的存储目录 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/software/hadoop313/data</value>
</property>
<!-- 配置 HDFS 网页登录使用的静态用户为 root -->
<property>
<name>hadoop.http.staticuser.user</name>
<value>root</value>
</property>

2、hdfs-site.xml

<!-- nn web 端访问地址-->
<property>
<name>dfs.namenode.http-address</name>
<value>cluster01:9870</value>
</property>
<!-- 2nn web 端访问地址-->
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>cluster03:9868</value>
</property>

3、yarn-site.xml

<!-- 指定 MR 走 shuffle -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<!-- 指定 ResourceManager 的地址-->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>cluster02</value>
</property>
<!-- 环境变量的继承 -->
<property>
<name>yarn.nodemanager.env-whitelist</name>
<value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME</value>
</property>

4、mapred-site.xml

<!-- 指定 MapReduce 程序运行在 Yarn 上 -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>

3、配置workers

配置workers,增加五个主机名
注意:该文件中添加的内容结尾不允许有空格,文件中不允许有空行

vim /opt/software/hadoop313/etc/hadoop/workers
cluster01
cluster02
cluster03
cluster04
cluster05

将配置好的4个xml文件和workers文件覆盖到其他4个机器上去(同文件替换)

四、启动集群

1、NameNode初始化

#如果集群是第一次启动,需要在cluster01节点格式化 NameNode
[root@cluster01 hadoop313]# hdfs namenode -format

2、启动 HDFS、YARN

#启动 HDFS
[root@cluster01 hadoop313]# sbin/start-dfs.sh
#在配置了 ResourceManager 的节点(cluster02)启动 YARN
[root@cluster02 hadoop313]# sbin/start-yarn.sh

3、验证是否成功启动

Web 端查看 HDFS 的 NameNode
浏览器中输入:http://192.168.29.151:9870
查看 HDFS 上存储的数据信息

Web 端查看 YARN 的 ResourceManager
浏览器中输入:http://192.168.29.152:8088
查看 YARN 上运行的 Job 信息

以上界面如果能正常打开,恭喜你!集群搭建成功了!

4、有可能的出错

报错信息:
Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password).
解决步骤:

#1、修改sshd_config文件
# vi /etc/ssh/sshd_config    //开启以下内容
HostKey /etc/ssh/ssh_host_rsa_key
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile      .ssh/authorized_keys

#2、更改命令:
cd ~/.ssh
cat id_rsa.pub >> authorized_keys
	

总结

本文仅仅是搭建一个hadoop集群,简单的配置了部分信息,关于hadoop配置其实还是有很多细节需要配置,本文就不在累述,如果需要,会写入后面的文章。

  • 2
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值