其他分享
首页 > 其他分享> > Hadoop-全分布模式

Hadoop-全分布模式

作者:互联网

准备工作

操作系统:Linux(以CentOS为例,一台master,三台slvae)
JDK版本:jdk-1.8.1_212
Hadoop版本:hadoop-2.8.3

步骤(使用hadoop用户,各节点同时进行)

1.修改hadoop-env.sh配置文件

参考 hadoop-单机模式

2.设置Hadoop环境变量

sudo vim /etc/profile

添加如下配置

export HADOOP_HOME=/usr/local/hadoop-2.8.3
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export YARN_HOME=$HADOOP_HOME
export JAVA_LIBRARY_PATH=$HADOOP_HOME/lib/native
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
export YARN_CONF_DIR=$HADOOP_HOME/etc/hadoop
export HADOOP_PREFIX=$HADOOP_HOME
export CLASSPATH=$CLASSPATH:.:$HADOOP_HOME/bin

在这里插入图片描述
使配置生效

source /etc/profile

在这里插入图片描述

2.指定slave节点(该步骤只在master节点操作)

vim /usr/local/hadoop-2.8.3/etc/hadoop/slaves

删除localhost,添加

slave1
slave2
slave3

在这里插入代码片

3.修改/etc/hadoop/core-site.xml配置文件

vim /usr/local/hadoop-2.8.3/etc/hadoop/core-site.xml

在标签中添加如下配置

<configuration>
	<property>
		<name>hadoop.tmp.dir</name>
		<value>/usr/local/hadoop/tmp</value>
		<description>Abase for other temporary directories.</description>
	</property>
	<property>
		<name>fs.defaultFS</name>
		<!--master:/etc/hosts 配置的域名 master -->
		<value>hdfs://master:9000/</value>
	</property>
</configuration>

在这里插入图片描述

4.修改/etc/hadoop/hdfs-site.xml配置文件

vim /usr/local/hadoop-2.8.3/etc/hadoop/hdfs-site.xml

在标签中添加如下配置

<configuration>
	<!--指定hdfs中namenode的存储位置-->
	<property>
		<name>dfs.namenode.name.dir</name>
		<!-- value 设置为/usr/local/hadoop/dfs/namenode,启动时会有warn信息-->
		<value>file:///usr/local/hadoop-2.8.3/dfs/namenode</value>
	</property>
	<!--指定hdfs中datanode的存储位置-->
	<property>
		<name>dfs.datanode.data.dir</name>
		<value>file:///usr/local/hadoop-2.8.3/dfs/datanode</value>
	</property>
	<!--指定hdfs保存数据的副本数量-->
	<property>
		<name>dfs.replication</name>
		<value>3</value>
	</property>
	<!--配置namenode.secondary地址,如默认的50070被占用,可以换成50071-->
	<property>
		<name>dfs.namenode.secondary.http-address</name>
		<value>master:50071</value>
	</property>
</configuration>

在这里插入图片描述

5.添加/etc/hadoop/mapraduce-site.xml配置文件

hadoop-2.8.3/etc/hadoop文件夹中没有mapraduce-site.xml文件,需要将mapraduce-site.xml.template文件复制并更名为mapraduce-site.xml,再进行修改,用于指定MapReduce使用的框架。

cp etc/hadoop/mapred-site.xml.template etc/hadoop/mapred-site.xml
vim etc/hadoop/mapred-site.xml

在标签中添加如下配置

<configuration>
	<!--告诉hadoop以后MR(Map/Reduce)运行在YARN上-->
	<property>
		<name>mapreduce.framework.name</name>
		<value>yarn</value>
	</property>
	<!-- 以下两项为启动jobhistory服务设置项,后面用到map reduce 时需要 -->
	<property>
		<name>mapreduce.jobhistory.address</name>
		<value>master:10020</value>
	</property>
	<property>
		<name>mapreduce.jobhistory.webapp.address</name>
		<value>master:19888</value>
	</property>
</configuration>

在这里插入图片描述

6.指定HDFS文件存储位置(默认/tmp)

创建临时目录和文件目录

mkdir -p /usr/local/hadoop-2.8.3/tmp

master节点(只在master节点上操作):

mkdir -p /usr/local/hadoop-2.8.3/tmp/name

slvae节点(只在slave节点上操作):

mkdir -p /usr/local/hadoop-2.8.3/tmp/data

(-p:确认该目录是否存在,如果不存在则创建)

给/tmp文件夹授权

sudo chmod -R 777 /usr/local/hadoop-2.8.3/tmp

在这里插入图片描述

7.修改/etc/hadoop/yarn-site.xml配置文件

vim /usr/local/hadoop-2.8.3/etc/hadoop/yarn-site.xml

在标签中添加如下配置

<configuration>
	<!-- Site specific YARN configuration properties -->
	<!--nomenodeManager获取数据的方式是shuffle-->
	<property>
		<name>yarn.nodemanager.aux-services</name>
		<value>mapreduce_shuffle</value>
	</property>
	<!--配置shuffle,因为map和reduce之间有个shuffle过程,-->
	<property>
		<name>yarn.nademanager.aux-services.mapreduce.shuffle.class</name>
		<value>org.apache.hadoop.mapred.ShuffleHandler</value>
	</property>
	<!--为每个rm-id设置主机:端口用来提交作业。-->
	<property>
		<name>yarn.resourcemaneger.address</name>
		<value>master:8032</value>
	</property>
	<!--调度器接口的地址。-->
	<property>
		<name>yarn.resourcemanager.scheduler.address</name>
		<value>master:8030</value>
	</property>
	<!--对每个rm-id设置NodeManager连接的host-->
	<property>
		<name>yarn.resourcemanager.resource-tracker.address</name>
		<value>master:8031</value>
	</property>
	<!--对每个rm-id指定管理命令的host-->
	<property>
		<name>yarn.resourcemanager.admin.address</name>
		<value>master:8033</value>
	</property>
	<!--对每个rm-id,指定RM webapp对应的host-->
	<property>
		<name>yarn.resourcemanager.webapp.address</name>
		<value>master:8088</value>
	</property>
	<!-- 关闭虚拟内存检查-->
	<property>
		<name>yarn.nodemanager.vmem-check-enabled</name>
		<value>false</value>
	</property>
</configuration>

在这里插入图片描述

8.修改env环境变量文件

在hadoop-env.sh、mapred-env.sh、yarn-env.sh文件(hadoop-2.8.3/etc/hadoop目录下)添加JAVA_HOME:

export JAVA_HOME=/usr/local/jdk

9.格式化HDFS

在hadoop-2.8.3目录下:

bin/hadoop namenode -format

在这里插入图片描述
格式化成功

10.开启服务(该步骤只在master节点操作)

hadoop-2.8.3目录下:
启动HDFS:

sbin/start-dfs.sh

在这里插入图片描述
启动YARN:

sbin/start-yarn.sh

在这里插入图片描述
启动job history server:

sbin/mr-jobhistory-daemon.sh start historyserver

在这里插入图片描述

11.查看进程

jps

在这里插入图片描述

12.访问NameNode的Web页面,端口号:50070

http:// NameNode IP:50070
例:http://192.168.1.190:50070
在这里插入图片描述

13.访问ResourceManger的Web页面,端口号:8088

http:// NameNode IP:8088
例:http://192.168.1.190:8088
在这里插入图片描述

14.测试(该步骤只在master节点操作)

Hadoop-2.8.3目录下:
创建 HFDS

bin/hdfs dfs -mkdir /user
bin/hdfs dfs -mkdir /user/test
bin/hdfs dfs -mkdir /user/test/input

将input文件拷贝到HFDS目录下

bin/hdfs dfs -put /usr/local/hadoop-2.8.3/etc/hadoop/*.xml /user/test/input

在这里插入图片描述
执行hadoop job

bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.8.3.jar grep /user/test/input output 'dfs[a-z.]+'

在这里插入图片描述
查看执行结果

bin/hdfs dfs -cat output/*

在这里插入图片描述

15.停止服务(该步骤只在master节点操作)

在hadoop-2.8.3目录下:
停止HDFS

sbin/stop-dfs.sh


停止YARN

sbin/stop-yarn.sh

在这里插入图片描述

标签:hadoop,Hadoop,etc,2.8,master,HOME,分布模式,HADOOP
来源: https://blog.csdn.net/weixin_45648723/article/details/101058181