hadoop3.3.0集群搭建(详细教程)

hadoop3.3.0 集群搭建详细教程

在这里插入图片描述
先准备好:
hadoop3.3.0
secureCRT提取码:u3cd
jdk官网
centos7

一、模板机

1、虚拟机的网络适配器选择NAT

在这里插入图片描述

2、关闭centos的防火墙

systemctl stop firewalld
systemctl disable firewalld.service

3、将centos设置为自动连接网络

在设置中,找到网络,把有线设置为自动连接
在这里插入图片描述
在这里插入图片描述

4、让普通(andy)用户具有root权限

sudo vim /etc/sudoers 

sudoers文件中找到##Allow people in group wheel to run all commands,并添加andy ALL=(ALL) NOPASSWD:ALL

在这里插入图片描述
注:andy是我的用户名
如果你没有创建用户,可以使用以下命令:
创建用户useradd 用户名
创建密码passwd 用户名
补充:vim 知识
在这里插入图片描述

5、设置静态ip、主机名和映射host

(1)设置静态ip

先查看IP地址,在终端中输入ifconfig
在这里插入图片描述
IP:192.168.23.10
我们将该ip设为静态的,下次开机ip就不会变了。(如果你想把这个IP地址改变,只需改变它的主机号网络号不需要改变,最后输入service network restart
命令:

sudo vim /etc/sysconfig/network-scripts/ifcfg-ens33

在这里插入图片描述
BOOTPROTO改为static
添加:
IPADDR=192.168.23.10
GATEWAY=192.168.23.2
DNS1=192.168.23.2
在输入重启网络命令:

service network restart
(2)设置主机名
sudo vim /etc/hostname

把里面的内容改成自己的主机名Hadoop01
在这里插入图片描述

(3)将主机名称映射hosts文件中
sudo vim /etc/hosts

添加的内容如下
在这里插入图片描述
根据自己的IP地址,填入连续的IP,后面的是主机名
注意:我们同样也需要把上面的ip地址映射Windowshosts

C:\Windows\System32\drivers\etc

如果不能更改可以把hosts复制出来,修改后再替换即可

6、安装epel-release

sudo yum install -y epel-release

如果安装出现以下情况
在这里插入图片描述
解决:kill -9 进程号,在重新执行命令

7、卸载自带的openjdk,并创建/opt/module//opt/software

(1)卸载openjdk
su root
rpm -qa | grep -i java | xargs -n1 rpm -e --nodeps

如果不用root用户会出现下面错误
在这里插入图片描述

(2)创建/opt/module/opt/software
sudo mkdir /opt/module
sudo mkdir /opt/software

修改/opt/module/opt/software的所有权

sudo chown andy:andy /opt/module /opt/software

注:andy:andy是我的用户名

8、安装hadoop和jdk

补充:SecureCRT的连接
在这里插入图片描述

(1)上传hadoop和jdk

用secureCRT连接linux后,安装yum -y install lrzsz,输入rz,找到hadoop和jdk文件位置。
注:找到文件后,要选择add。我把文件放在了/opt/software
在这里插入图片描述

(2)安装hadoop和jdk,并配置文件

把文件解压到/opt/module

tar -zxvf /opt/software/hadoop-3.3.0.tar.gz -C /opt/module/
tar -zxvf /opt/software/jdk-8u281-linux-x64.tar.gz -C /opt/module/

配置环境

sudo vim  /etc/profile.d/my_env.sh

添加

#JAVA HOME
export JAVA_HOME=/opt/module/jdk1.8.0_281
export PATH=$PATH:$JAVA_HOME/bin

#Hadoop
export HADOOP_HOME=/opt/module/hadoop-3.3.0
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin

注:JAVA_HOME 和HADOOP_HOME是Hadoop和jdk的位置
保存后,输入source /etc/profile,让环境立刻起效
检验:hadoop和jdk是否安装好

hadoop 
java

在这里插入图片描述

在这里插入图片描述

二、克隆模板机

1、克隆centos,克隆其他两台:hadoop02hadoop03

克隆之前,需要先关闭虚拟机。

在这里插入图片描述
在这里插入图片描述
一定选择创建完整克隆
在这里插入图片描述

2、修改克隆机的主机名IP地址,两台都要修改

(1)修改主机名
sudo vim /etc/hostname

它们的主机名分别是hadoop02hadoop03
因为是克隆的第一台,主机名和ip地址都是上一台的

(2)修改IP地址
sudo vim /etc/sysconfig/network-scripts/ifcfg-ens33

修改IPADDRKK
在这里插入图片描述
它们的IP分别是192.168.23.11192.168.23.12
注:它们是我的IP地址,需要修改

(3)重启克隆的虚拟机
reboot

3、检查克隆虚拟机的主机名、IP地址、网络、hadoop和jdk

(1)检查主机名
hostname
(2)检查IP地址
ifconfig

检查是不是自己和设置的一样
在这里插入图片描述

(3)检查网络
ping www.baidu.com

在这里插入图片描述

(4)检查一下jak和hadoop

执行

java
hadoop

三、配置集群

1、创建ssh 无密登录

注:都是在普通用户

(1)生成公钥和私钥
ssh-keygen -t rsa

然后敲三次回车
在这里插入图片描述
然后生成两个文件id_rsa(私钥)、id_rsa.pub(公钥)
位置在:/home/用户名/.ssh
在这里插入图片描述

(2)将公钥发给hadoop01、hadoop02、hadoop03
ssh-copy-id hadoop01
ssh-copy-id hadoop02
ssh-copy-id hadoop03

注意:创建无密登录需要,分别在hadoop01、hadoop02、hadoop03都配置一下。

注:它们都是在普通用户下配置的无密登录,在普通用户创建的只能登陆普通用户的。
都在root用户创建无密登录,就能登录root用户了。
注:hadoop02 的ip地址已经映射到了hosts

2、创建一个分享文件脚本,这样就方便把虚拟机的文件传给其他的虚拟机了

(1)在家目录下创建一个bin文件,并进入bin中
mkdir /home/用户/bin
cd bin   
(2)在bin中创建xsync文件
vim xsync

添加的文件如下:
注意:需要把for host in hadoop01 hadoop02 hadoop03中的hadoop01、hadoop02、hadoop03改为自己的主机名一定要改

#!/bin/bash
#1. 判断参数个数
if [ $# -lt 1 ] 
then
	echo Not Enough Arguement! 
	exit;
fi
#2. 遍历集群所有机器
for host in hadoop01 hadoop02 hadoop03 
do
	echo ====================	$host	====================
	#3. 遍历所有目录,挨个发送
	for file in $@ 
	do
	#4. 判断文件是否存在
	if [ -e $file ] 
	then
	#5. 获取父目录
		pdir=$(cd -P $(dirname $file); pwd)

		#6. 获取当前文件的名称
		fname=$(basename $file)
		 ssh $host "mkdir -p $pdir"
		rsync -av $pdir/$fname $host:$pdir 
	else
			echo $file does not exists!
	fi 
  done
done

该脚本主要是应用:rsync
相关知识:
linux 远程拷贝命令

(3)修改xsync的权限
sudo chmod 777 xsync
(4)将它复制到/bin中,方便在全局中使用
sudo cp xsync /bin/
(5)测试脚本
xsync /home/用户/bin

把bin中的文件分发给其他虚拟机 hadoop01、hadoop02、hadoop03

3、配置hadoop

集群规划
在这里插入图片描述

1)配置集群

提醒:注意value中的内容

(1)核心配置文件——core-site.xml
cd /opt/module/hadoop-3.3.0/etc/hadoop/
vim core-site.xml

<configuration> </configuration>中添加内容:

<!-- 指定 NameNode 的地址 -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://hadoop01:8020</value>
</property>

<!-- 指定 hadoop 数据的存储目录 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/module/hadoop-3.3.0/data</value>
</property>

<!-- 配置 HDFS 网页登录使用的静态用户为 andy -->
<property>
<name>hadoop.http.staticuser.user</name>
<value>andy</value>
</property>

注意:文件中的<value>hdfs://hadoop01:8020</value><value>/opt/module/hadoop-3.3.0/data</value><value>andy</value>中的内容,
第一个要hadoop01,这个是我的主机名
第二个是/opt/module/hadoop-3.3.0/data,这个是data的位置,注意路径是否存在;
第三andy是我的用户名

在这里插入图片描述

(2)HDFS配置文件——hdfs-site.xml
vim hdfs-site.xml

<configuration> </configuration>中添加内容:

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

注意value中内容
<value>hadoop01:9870</value> <value>hadoop03:9868</value>
hadoop01和hadoop03是我的主机名

(3)YARN配置文件——yarn-site.xml
vim yarn-site.xml

<configuration> </configuration>中添加内容:

<!-- 指定 MR 走 shuffle -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>

<!-- 指定 ResourceManager 的地址-->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>hadoop02</value>
</property>

<!-- 环境变量的继承 -->
<property>
<name>yarn.nodemanager.env-whitelist</name>

<value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CO NF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME</value>
</property>
<!-- 开启日志聚集功能 -->
<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>
<!-- 设置日志聚集服务器地址 -->
<property>
<name>yarn.log.server.url</name>
<value>http://hadoop01:19888/jobhistory/logs</value>
</property>
<!-- 设置日志保留时间为 7 天 -->
<property>
<name>yarn.log-aggregation.retain-seconds</name>
<value>604800</value>
</property>

注意:<value>http://hadoop01:19888/jobhistory/logs</value>

(4)MapeRduce配置——mapred-site.xml
vim mapred-site.xml

<configuration> </configuration>中添加内容:

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

<!-- 历史服务器端地址 -->
<property>
<name>mapreduce.jobhistory.address</name>
<value>hadoop01:10020</value>
</property>

<!-- 历史服务器 web 端地址 -->
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>hadoop01:19888</value>
</property>

注意:<value>hadoop102:10020</value> <value>hadoop01:19888</value>
(5)将配置文件发给其他虚拟机

xsync /opt/module/hadoop-3.3.0/etc/hadoop

注意:在hadoop02和hadoop03上查看文件是否存在

 cat /opt/module/hadoop-3.3.0/etc/hadoop/core-site.xml 
(5)配置workers
vim workers

添加主机名,如下:
在这里插入图片描述
同步该文件

 xsync /opt/module/hadoop-3.3.0/etc/hadoop/workers 

注意:查看hadoop02、hadoop03是否接收到文件

 cat /opt/module/hadoop-3.3.0/etc/hadoop/workers 
2)启动集群
(1)第一次启动需要初始化
cd /opt/module/hadoop-3.3.0
bin/hdfs namenode -format

会在 /opt/module/hadoop-3.3.0/下生成datalogs 文件
如果一会儿在运行集群中出现问题,需要把data和logs删除,在进行初始化
集群出现问题注意配置文件是否有问题

(2)启动HDFS
sbin/start-dfs.sh
(3)启动YARN,需要去hadoop02中启动
cd /opt/module/hadoop-3.3.0
sbin/start-yarn.sh
(4)用jps分别查看hadoop01、hadoop02、hadoop03启动情况

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3)创建集群启动的脚本和查看启动清楚的
(1)创建集群启动的脚本
vim /home/用户/bin/myhadoop.sh 

输入内容:

#!/bin/bash

if [ $# -lt 1 ] 
then
        echo "No Args Input..."
        exit ;
fi

case $1 in 
"start")
        echo " =================== 启动 hadoop 集群 ==================="

        echo " --------------- 启动 hdfs ---------------"
        ssh hadoop01 "/opt/module/hadoop-3.3.0/sbin/start-dfs.sh" 
        echo " --------------- 启动 yarn ---------------"
        ssh hadoop02 "/opt/module/hadoop-3.3.0/sbin/start-yarn.sh" 
        echo " --------------- 启动 historyserver ---------------"
        ssh hadoop01 "/opt/module/hadoop-3.3.0/bin/mapred --daemon start historyserver"
;;
"stop")
        echo " =================== 关闭 hadoop 集群 ==================="

        echo " --------------- 关闭 historyserver ---------------"
        ssh hadoop01 "/opt/module/hadoop-3.3.0/bin/mapred --daemon stop historyserver"
        echo " --------------- 关闭 yarn ---------------"
        ssh hadoop02 "/opt/module/hadoop-3.3.0/sbin/stop-yarn.sh" 
        echo " --------------- 关闭 hdfs ---------------"
        ssh hadoop01 "/opt/module/hadoop-3.3.0/sbin/stop-dfs.sh"
;;
*)
        echo "Input Args Error..."
;;
esac

注意:/opt/module/hadoop-3.3.0是安装hadoop的路径,这里需要修改
修改权限并复制到/bin

chmod 777 myhadoop.sh
sudo cp myhadoop.sh /bin/

使用:
启动:myhadoop.sh start
停止:myhadoop.sh stop

(2)查看启动进程的脚本
vim /home/用户/bin/jpsall

输入内容如下:

#!/bin/bash

for host in hadoop01 hadoop02 hadoop03 
do
echo =============== $host ===============
ssh $host jps
done

修改权限并复制到/bin

chmod 777 jpsall
sudo cp jpsall /bin/
(3)将/home/用户/bin分发给其他机器
xsync /home/andy/bin/

补充知识:
在这里插入图片描述

  • 7
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
Hadoop是一个分布式计算框架,可用于处理大规模数据集。以下是Hadoop3.3.0集群配置步骤。 1. 安装Java 确保在所有节点上安装了Java。对于Hadoop3.3.0,建议使用Java 8。 2. 下载Hadoop 从官方网站下载最新版本Hadoop,并将其解压到所有节点的相同目录中。建议将Hadoop安装在/opt/hadoop/目录下。 3. 配置Hadoop环境变量 在每个节点上编辑/etc/profile文件,并添加以下行: ``` export HADOOP_HOME=/opt/hadoop/hadoop-3.3.0 export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin ``` 然后运行source /etc/profile以使更改生效。 4. 配置Hadoop集群 在所有节点上编辑/opt/hadoop/hadoop-3.3.0/etc/hadoop目录中的core-site.xml文件,并添加以下内容: ``` <configuration> <property> <name>fs.default.name</name> <value>hdfs://master:9000</value> </property> </configuration> ``` 其中,master是Hadoop集群中的主节点。 接下来,在每个节点上编辑/opt/hadoop/hadoop-3.3.0/etc/hadoop目录中的hdfs-site.xml文件,并添加以下内容: ``` <configuration> <property> <name>dfs.replication</name> <value>3</value> </property> <property> <name>dfs.namenode.name.dir</name> <value>/opt/hadoop/hadoop-3.3.0/hdfs/namenode</value> </property> <property> <name>dfs.datanode.data.dir</name> <value>/opt/hadoop/hadoop-3.3.0/hdfs/datanode</value> </property> </configuration> ``` 其中,dfs.replication设置为3以确保数据有三个副本,dfs.namenode.name.dir定义了主节点上的名称节点数据目录,dfs.datanode.data.dir定义了数据节点上的数据目录。 最后,在/opt/hadoop/hadoop-3.3.0/etc/hadoop目录中的mapred-site.xml.template文件中创建一个新的mapred-site.xml文件,并添加以下内容: ``` <configuration> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> </configuration> ``` 5. 启动Hadoop集群 在主节点上,运行以下命令启动Hadoop集群: ``` $ start-dfs.sh $ start-yarn.sh ``` 然后,在主节点上运行以下命令格式化HDFS文件系统: ``` $ hdfs namenode -format ``` 现在,Hadoop集群已经配置完成。可以使用Hadoop命令行工具或Web界面来管理集群

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值