Linnux中搭建HADOOP伪分布式集群环境

时间:2021-09-21 06:08:18

步骤如下:

Linnux中搭建HADOOP伪分布式集群环境

 Linux环境基础配置可参照我上一篇博客http://www.cnblogs.com/whcwkw1314/p/8921352.html

一、准备工作

1.目录规划及软件安装

创建目录:在根目录下的opt文件夹中创建4个文件夹 

datas放测试数据  softwares放软件安装压缩包  modules软件安装目录  tools开发IDE以及工具  

Linnux中搭建HADOOP伪分布式集群环境

查看是否创建成功

Linnux中搭建HADOOP伪分布式集群环境

 

上传软件:

这里我用了linux自带的上传下载软件

$ sudo yum install -y lrzsz
 其中
   rz:  上传文件
   sz:  表示下载

在softwares文件夹下上传hadoop2.x版本的压缩包  jdk在上篇博客中已经安装完毕

Linnux中搭建HADOOP伪分布式集群环境

给该压缩包添加执行权限

Linnux中搭建HADOOP伪分布式集群环境

解压到指定目录modules

Linnux中搭建HADOOP伪分布式集群环境

解压完毕后查看hadoop-2.7.3文件夹属性

Linnux中搭建HADOOP伪分布式集群环境

更改所属用户及用户组为当前用户, 使之后的操作更加安全 ,root用户下的误操作可能会造成很大影响

 Linnux中搭建HADOOP伪分布式集群环境

配置*-env.sh环境变量文件 hadoop-env.sh  yarn-env.sh  mapred-env.sh 

进入解压后的hadoop-2.7.3中的/etc/hadoop  可以看到这三个文件以及后面要配置的一些配置文件

Linnux中搭建HADOOP伪分布式集群环境

这里我用nodepad++连接虚拟机进行更改配置操作 直观方便

首先更改hadoop-env.sh

Linnux中搭建HADOOP伪分布式集群环境

将JAVA_HOME路径更改为之前安装JDK的路径

export JAVA_HOME=/opt/modules/jdk1.8.0_91

然后更改完yarn-env.sh  mapred-env.sh 这2文件

Linnux中搭建HADOOP伪分布式集群环境

Linnux中搭建HADOOP伪分布式集群环境

赋予这三个文件执行权限

Linnux中搭建HADOOP伪分布式集群环境

二、HDFS安装

 首先配置HDFS环境

1.创建临时数据存储目录(在hadoop-2.7.3当前目录下创建data文件夹内含tmpData文件夹)  ./表示在当前目录下

Linnux中搭建HADOOP伪分布式集群环境

2.配置core-site.xml文件

Linnux中搭建HADOOP伪分布式集群环境

 3.配置hdfs-site.xml

Linnux中搭建HADOOP伪分布式集群环境

4.配置slaves文件:指定DataNode运行在哪些机器上

此文件中一行表示一个主机名称,会在此主机上运行DataNode

Linnux中搭建HADOOP伪分布式集群环境

 

下一步启动服务

对于HDFS文件系统来说 第一次要格式化系统

可以在下面的目录中看到 namenode -format命令是用来格式化HDFS文件系统的

Linnux中搭建HADOOP伪分布式集群环境

 若初始化没有报错即成功。

 Linnux中搭建HADOOP伪分布式集群环境

启动HDFS服务  主节点和从节点

Linnux中搭建HADOOP伪分布式集群环境

然后验证是否成功

第一种方式:查看进程  命令行输入jps  出现NameNode DataNode即成功

Linnux中搭建HADOOP伪分布式集群环境

第二种方式:通过web ui界面查看  http://bigdata-hpsk01.huadian.com:50070   这里通过主机名访问确保在本地hosts文件中配置了映射。(我在上篇博客中已经配置好了映射)

 出现如下界面即成功

Linnux中搭建HADOOP伪分布式集群环境

 

测试HDFS

1.查看帮助文档
$ bin/hdfs dfs

可以看到对HDFS操作的命令

Linnux中搭建HADOOP伪分布式集群环境

 

2.创建目录
$ bin/hdfs dfs -mkdir -p /datas/tmp

3.上传文件
$ bin/hdfs dfs -put etc/hadoop/core-site.xml /datas/tmp

4.列举目录文件
$ bin/hdfs dfs -ls /datas/tmp

Linnux中搭建HADOOP伪分布式集群环境

5. 查看文件的内容
$ bin/hdfs dfs -text /datas/tmp/core-site.xml

Linnux中搭建HADOOP伪分布式集群环境

 最后我们去webui界面看看HDFS文件系统里面是否有了这些内容

Linnux中搭建HADOOP伪分布式集群环境

 datas文件夹里面有tmp文件夹

Linnux中搭建HADOOP伪分布式集群环境

然后我们上传了core-site.xml文件

Linnux中搭建HADOOP伪分布式集群环境

测试成功~

 

三、YARN安装

配置YARN集群
对于分布式资源管理和任务调度框架来说:
在YARN上面运行多种应用的程序
- MapReduce
并行数据处理框架
- Spark
基于内存分布式计算框架
- Storm/Flink
实时流式计算框架
- Tez
分析数据,速度MapReduce快
主节点:
ResourceManager
从节点:
NodeManagers

配置yarn-site.xml文件

Linnux中搭建HADOOP伪分布式集群环境

配置slaves文件
指定NodeManager运行的主机名称,由于NodeManager与DataNode同属一台机器,前面已经配置完成。

 

启动服务

RM 主节点:
$ sbin/yarn-daemon.sh start resourcemanager
NM 从节点:
$ sbin/yarn-daemon.sh start nodemanager

Linnux中搭建HADOOP伪分布式集群环境

输入jps可以看到已经启动成功了,也可查看所有与java相关的进程 ps -ef|grep java 

最后通过web ui 界面来验证  出现如下界面OK

Linnux中搭建HADOOP伪分布式集群环境

四、运行MapReduce

MapReduce:  并行计算框架(Hadoop 2.x)
思想:分而治之
核心:
Map: 分
    并行处理数据,将数据分割,一部分一部分的处理
Reduce: 合
    将Map处理的数据结果进行合并,包含一些业务逻辑在里面


大数据计算框架中经典案例(下面我们来运行这个案例):
词频统计(WordCount)
统计某个文件中单词的出现次数


1.配置MapReduce相关属性:
进入hadoop-2.7.3下的etc/hadoop  拷贝该目录下的MapReduce模板配置文件
$ cd etc/hadoop/
$ cp mapred-site.xml.template mapred-site.xml

Linnux中搭建HADOOP伪分布式集群环境

 

然后修改mapred-site.xml文件,指定MapReduce的程序运行在YARN上

Linnux中搭建HADOOP伪分布式集群环境

 

2.提交MapReduce程序,到YARN上运行
- 准备测试数据    在cd到预先创建的/opt/datas文件夹(用来存放测试数据)中创建一个测试数据文件wc.input

Linnux中搭建HADOOP伪分布式集群环境

编辑数据文件并保存:

Linnux中搭建HADOOP伪分布式集群环境

在HDFS文件系统中递归创建/user/huadian/mapreduce/wordcount/input文件夹    bin/hdfs dfs命令要在hadoop-2.7.3目录下操作

$ bin/hdfs dfs -mkdir -p /user/huadian/mapreduce/wordcount/input

把我们的测试数据文件放到input目录下

$ bin/hdfs dfs -put /opt/datas/wc.input /user/huadian/mapreduce/wordcount/input

 Linnux中搭建HADOOP伪分布式集群环境

3.提交运行
这里我们用官方自带MapReduce程序JAR包  路径如下:
${HADOOP_HOME}/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.3.jar

Linnux中搭建HADOOP伪分布式集群环境

$ bin/yarn jar share/hadoop/mapreduce/hadoop-mapreduce-
examples-2.7.3.jar wordcountUsage: wordcount <in> [<in>...] <out>
参数说明:
<in> -> 表示的MapReduce程序要处理的数据所在的位置
<out> -> 表示的MapReduc处理的数据结果存储的位置,此路径不能存在。

命令如下:

$ bin/yarn jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.3.jar wordcount /user/huadian/mapreduce/wordcount/input /user/huadian/mapreduce/wordcount/output678

 

Linnux中搭建HADOOP伪分布式集群环境

查看结果

$ bin/hdfs dfs -text /user/huadian/mapreduce/wordcount/output67/part*

 

Linnux中搭建HADOOP伪分布式集群环境

界面上看到success即成功

Linnux中搭建HADOOP伪分布式集群环境

 

 最后启动一下日志服务

配置mapred-site.xml:

<!-- 配置历史服务器 -->
<property>
<name>mapreduce.jobhistory.address</name>
<value>bigdata-hpsk01.huadian.com:10020</value>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>bigdata-hpsk01.huadian.com:19888</value>
</property>

 

Linnux中搭建HADOOP伪分布式集群环境

启动服务:

$ sbin/mr-jobhistory-daemon.sh start historyserver

 

日志聚集功能:
当MapReduce程序在YARN上运行完成以后,将产生的日志文件上传到HDFS的目录中,以便后续监控查看
配置yarn-site.xml:

<!-- 配置YARN日志聚集功能 -->
<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>
<property>
<name>yarn.log-aggregation.retain-seconds</name>
<value>604800</value>
</property>

重启YARN和JobHistoryServer服务
为了重新读取配置属性

OK~