Hadoop3.3.1 集群配置笔记

集群设置文档

单节点集群

https://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-common/SingleCluster.html#Fully-Distributed_Operation

全分部式

https://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-common/ClusterSetup.html#Purpose

Hadoop组成部分

1.HDFS

2.YARN

3.MapReduce

集群文件分发脚本

echo $PATH

环境变量目录下的脚本可全局访问

赋予执行权限命令: chmod 777 $文件名

#!/bin/bash

#1.判断参数个数
if [ $# -lt 1 ]
then
	echo Not Enough Arguement!
	exit;
fi

#2.遍)历集群所有机器
for host in hadoop102 hadoop103 hadoop104
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

SHH免密登录配置

原理
在这里插入图片描述

#创建密钥
进入用户目录
cd /home/用户名/.ssh

#生成公钥和私钥
ssh-keygen -t rsa
然后连续三个回车,生成公钥(id_rsa.pub)和私钥(id_rsa)

#给需要无密登录的服务器发送公钥
ssh-copy-id  $服务器地址
输入密码

集群规划

在这里插入图片描述
环境变量

#JAVA_HOME
export JAVA_HOME=/opt/module/jdk1.8.0_271
export PATH=$PATH:$JAVA_HOME/bin

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

一.HDFS概述

1.NameNode 目录,索引,记录文件块存储位置,存储元数据,文件名,目录结构,属性

2.DataNode 数据具体存放位置,存储文件块数据,和块数据的校验和

3.Secondary NameNode(2NN) NameNode的秘书,辅助NameNode工作,NameNode元数据备份

二.YARN 架构概述(资源管理:CPU,内存等)

1.ResourceManage(RM) 集群资源管理

2.NodeManage(NM) 单节点资源管理

3.ApplicationMaster(AM) 单个任务管理

4.Container:容器,相当于一台独立服务器,里面封装了任务运行所需要的资源,如内存,CPU,磁盘,网络等

在这里插入图片描述

三.集群配置

默认配置文件
在这里插入图片描述

1.核心配置文件

core-size.xml

<configuration>
	<!--nameNode地址-->
	<property>
		<name>fs.defaultFS</name>
		<value>hdfs://hadoop102:8020</value>
	</property>
	<!--hadoop数据存储目录-->
	<property>
		<name>hadoop.tmp.dir</name>
		<value>/opt/module/hadoop-3.3.1/data</value>
	</property>	
	<!--配置HDFS网页登录使用的静态用户,会影响网页上操作文件删除的权限,不配置无删除权限-->
	<property>
		<name>hadoop.http.staticuser.user</name>
		<value>root</value>
	</property>	
</configuration>

2.hdfs配置文件

hdfs-site.xml

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

3.YARN配置文件

yarn-site.xml

<configuration>
	<!--指定MR走shuffle-->
	<property>
		<name>yarn.nodemanager.aux-services</name>
		<value>mapreduce_shuffle</value>
	</property>
	<!--指定resourceManage地址-->
	<property>
		<name>yarn.resourcemanager.hostname</name>
		<value>hadoop103</value>
	</property>	
	<!--环境变量继承,3.2以上的版本不需要 HADOOP_MAPRED_HOME-->
	<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>	
</configuration>

4.MapReduce配置文件

mapred-site.xml

<configuration>
	<!--指定MapReduce 程序运行在yarn上-->
	<property>
		<name>mapreduce.framework.name</name>        	
		<value>yarn</value>
	</property>	
	<property>
        <name>mapreduce.application.classpath</name>
        <value>$HADOOP_MAPRED_HOME/share/hadoop/mapreduce/*:$HADOOP_MAPRED_HOME/share/hadoop/mapreduce/lib/*</value>
    </property>
</configuration>

四.启动集群

1.格式化NameNoded

hdfs namenode -format
如果集群是第一次启动,需要在 hadoop102节点格式化 NameNode 
注意:格式NameNode,会产生新的集群id,导致NameNode,和 DataNode的集群id不一致,集群找到已往数据。如果集群在运行过程中报错,需要重新格式化NameNode的话,一定要先停namenode和 datanode进程,并且要删除所有机器的data和 logs目录,然后再进行格式

2.启动停止hdfs

cd /opt/module/hadoop-3.3.1/sbin
#启动
start-hdfs.sh
#停止
stop-hdfs.sh

3.启动停止yarn

注意在配置ResourceManage的节点(hadoop103) 启动yarn
cd /opt/module/hadoop-3.3.1/sbin
#启动
start-yarn.sh
#停止
stop-yarn.sh

五.集群测试

1.上传文件到集群

上传文件

#创建目录 (根目录仓建 input文件夹)
hadoop fs -mkdir /input

#上传文件
hadoop fs -put $文件 $路径
例
hadoop fs -put word.txt /input

word.txt

liwei zhangsan
zhangsan liwei
lisi 
lisi
wangwu

大文件被分片,分片后的文件进行整合

#恢复文件
[root@hadoop102 subdir0]# cat blk_1073741826 >> tmp.tar.gz
[root@hadoop102 subdir0]# cat blk_1073741827 >> tmp.tar.gz

#解压文件
tar -zxvf tmp.tar.gz

2.执行wordcount程序

计算word.txt名字出现的次数

#命令
hadoop jar $执行程序路径 $程序入口名称 $输入路径 $输出路径
例:
hadoop jar /opt/module/hadoop-3.3.1/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.1.jar wordcount /input/word.txt /output

3.配置历史服务器

  1. 1 配置mapred-site.xml
<configuration>
<!--指定MapReduce 程序运行在yarn上-->
   <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
    <!--MapReduce JobHistory 服务器主机:端口(内部通信)-->
   <property>
        <name>mapreduce.jobhistory.address</name>
        <value>hadoop102:10020</value>
    </property>
    <!--MapReduce JobHistory UI服务器主机:端口(UI访问)-->
    <property>
        <name>mapreduce.jobhistory.webapp.address</name>
        <value>hadoop102:19888</value>
    </property>
</configuration>

3.2 分发配置文件,并重启yarn,启动服务在102上

$HADOOP_HOME/bin/mapred --daemon start historyserver

4.配置日志聚集

在这里插入图片描述

4.1.配置yarn-site.xml

日志聚集服务器(发现3.3.1版本不用配置也可以)

    <!--开启日志聚集功能-->
	<property>
        <name>yarn.log-aggregation-enable</name>
        <value>true</value>
    </property>
    <!--设置日志聚集服务器(发现3.3.1版本不用配置也可以)-->
   <property>
        <name>yarn.log.server.url</name>
        <value>http://hadoop102:19888/jobhistory/logs</value>
    </property>
    <!--设置日志保留时间为7天-->
    <property>
        <name>yarn.log-aggregation.retain-seconds</name>
        <value>604800</value>
    </property>

4.2 同步配置文件,重启historyserver和yarn即可

5.常用端口号

在这里插入图片描述

6.集群时间同步

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

在这里插入图片描述

7.常用脚本

myhadoop.sh stop/start

#!/bin/bash

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

case $1 in
"start")
        echo " =============启动集群================"
        echo " ---------—-----启动hdfs —-—-——--——--——-"
        ssh hadoop102 "/opt/module/hadoop-3.3.1/sbin/start-dfs.sh"
        echo "—————----————-—-启动yarn----------------"
        ssh hadoop103 "/opt/module/hadoop-3.3.1/sbin/start-yarn.sh"
        echo " ------—--——----启动historyserver -———-——--------"
        ssh hadoop102 "/opt/module/hadoop-3.3.1/bin/mapred --daemon start historyserver"
;;
"stop")
        echo "=============关闭集群================"

        echo "——-—------—----关闭historyserver ——-—------—----"
        ssh hadoop102 "/opt/module/hadoop-3.3.1/bin/mapred --daemon stop historyserver"
        echo " ---------------关闭yarn ---------------"
        ssh hadoop103 "/opt/module/hadoop-3.3.1/sbin/stop-yarn.sh"
        echo " ---------------关闭HDFS ---------------"
        ssh hadoop102 "/opt/module/hadoop-3.3.1/sbin/stop-dfs.sh"
;;
*)
        echo " Input Arqs Error. . ."
;;
esac

jpsall.sh

#!/bin/bash

for host in hadoop102 hadoop103 hadoop104
do 
 echo ============= $host =================
 ssh $host jps
done
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
搭建Hadoop集群的步骤如下: 1. 安装Java 首先需要安装Java,Hadoop需要Java环境才能运行。可以使用以下命令安装Java: ``` sudo yum install java-1.8.0-openjdk-devel ``` 2. 下载Hadoop 从官方网站下载Hadoop 3.3.1版本,然后解压到目录中。可以使用以下命令: ``` wget https://downloads.apache.org/hadoop/common/hadoop-3.3.1/hadoop-3.3.1.tar.gz tar -zxvf hadoop-3.3.1.tar.gz sudo mv hadoop-3.3.1 /usr/local/hadoop ``` 3. 配置Hadoop环境变量 编辑`/etc/profile`文件,添加以下内容: ``` export HADOOP_HOME=/usr/local/hadoop export HADOOP_CONF_DIR=${HADOOP_HOME}/etc/hadoop export PATH=${PATH}:${HADOOP_HOME}/bin:${HADOOP_HOME}/sbin ``` 然后执行以下命令使配置生效: ``` source /etc/profile ``` 4. 配置Hadoop集群Hadoop集群中,需要指定一个节点作为NameNode,其他节点作为DataNode。可以在`/usr/local/hadoop/etc/hadoop`目录下找到`core-site.xml`和`hdfs-site.xml`两个配置文件,进行以下修改: 在`core-site.xml`文件中添加以下内容: ``` <configuration> <property> <name>fs.defaultFS</name> <value>hdfs://namenode:9000</value> </property> </configuration> ``` 其中,`namenode`是NameNode节点的主机名或IP地址。 在`hdfs-site.xml`文件中添加以下内容: ``` <configuration> <property> <name>dfs.replication</name> <value>3</value> </property> <property> <name>dfs.namenode.name.dir</name> <value>file:/usr/local/hadoop/hadoop_data/hdfs/namenode</value> </property> <property> <name>dfs.datanode.data.dir</name> <value>file:/usr/local/hadoop/hadoop_data/hdfs/datanode</value> </property> </configuration> ``` 其中,`dfs.replication`指定了数据备份数量,`dfs.namenode.name.dir`和`dfs.datanode.data.dir`指定了NameNode和DataNode的数据存储路径。 5. 配置YARN YARN是Hadoop的资源管理器,需要进行相应的配置。可以在`/usr/local/hadoop/etc/hadoop`目录下找到`yarn-site.xml`文件,进行以下修改: ``` <configuration> <property> <name>yarn.resourcemanager.hostname</name> <value>resourcemanager</value> </property> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> </configuration> ``` 其中,`yarn.resourcemanager.hostname`指定了ResourceManager节点的主机名或IP地址。 6. 启动Hadoop集群 按照以下顺序启动Hadoop集群: ``` start-dfs.sh start-yarn.sh ``` 7. 验证Hadoop集群 可以通过访问以下网址来验证Hadoop集群是否正常运行: ``` http://namenode:9870/dfshealth.html http://resourcemanager:8088/cluster ``` 其中,`namenode`和`resourcemanager`分别是NameNode和ResourceManager节点的主机名或IP地址。 以上就是在CentOS 7上搭建Hadoop 3.3.1集群的步骤。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值