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

步骤以下:html

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

1、准备工做

1.目录规划及软件安装

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

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

查看是否建立成功web

 

上传软件:安全

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

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

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

给该压缩包添加执行权限框架

解压到指定目录moduleswebapp

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

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

 

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

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

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

首先更改hadoop-env.sh

将JAVA_HOME路径更改成以前安装JDK的路径

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

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

赋予这三个文件执行权限

2、HDFS安装

 首先配置HDFS环境

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

2.配置core-site.xml文件

<configuration>
	<!--指定文件系统为HDFS及NameNode主节点运行的机器端口和ip地址-->
	<property>
		<name>fs.defaultFS</name>
		<value>hdfs://bigdata-hpsk01.huadian.com:8020</value>
	</property>
	<!--本地临时存储目录-->
	<property>
		<name>hadoop.tmp.dir</name>
		<value>/opt/cdh5.7.6/hadoop-2.6.0-cdh5.7.6/data/tmpData</value>
	</property>
</configuration>

 3.配置hdfs-site.xml

<configuration>
	<property>
		<name>dfs.replication</name>
		<value>1</value>
	</property>
</configuration>

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

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

 

下一步启动服务

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

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

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

 

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

而后验证是否成功

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

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

 出现以下界面即成功

 

测试HDFS

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

能够看到对HDFS操做的命令

 

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

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

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

 datas文件夹里面有tmp文件夹

而后咱们上传了core-site.xml文件

测试成功~

 

3、YARN安装

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

配置yarn-site.xml文件

<configuration>
	<property>
		<name>yarn.resourcemanager.hostname</name>
		<value>bigdata-hpsk01.huadian.com</value>
	</property>
	<property>
		<name>yarn.nodemanager.aux-services</name>
		<value>mapreduce_shuffle</value>
	</property>
</configuration>

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

 

启动服务

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

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

最后经过web ui 界面来验证  出现以下界面OK

4、运行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

 

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

 

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

编辑数据文件并保存:

在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

 

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

$ 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

 

查看结果

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

 

界面上看到success即成功

 

 最后启动一下日志服务

配置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>

 

启动服务:

$ 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~

相关文章
相关标签/搜索