文档章节

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

o
 osc_z1hvg4cu
发布于 2018/04/25 14:56
字数 1623
阅读 0
收藏 0

步骤如下:

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

一、准备工作

1.目录规划及软件安装

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

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

查看是否创建成功

 

上传软件:

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

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

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

给该压缩包添加执行权限

解压到指定目录modules

解压完毕后查看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文件

赋予这三个文件执行权限

二、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文件

测试成功~

 

三、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

四、运行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~

o
粉丝 0
博文 500
码字总数 0
作品 0
私信 提问
加载中
请先登录后再评论。

暂无文章

在virtualenv中使用Python 3 - Using Python 3 in virtualenv

问题: Using virtualenv , I run my projects with the default version of Python (2.7). 使用virtualenv ,我使用默认版本的Python(2.7)运行项目。 On one project, I need to use Pyth......

富含淀粉
25分钟前
9
0
Python的__init__和self是做什么的? - What __init__ and self do on Python?

问题: I'm learning the Python programming language and I've came across something I don't fully understand. 我正在学习Python编程语言,遇到了一些我不太了解的东西。 In a method ......

javail
55分钟前
15
0
OSChina 周五乱弹 —— 你大妈还是你大妈

Osc乱弹歌单(2020)请戳(这里) 【今日歌曲】 @watergood:是时候分享一波我的这张纯音乐歌单了,过去的五年多时间里,我陆陆续续地把听到的好听的纯音乐添加了进去,目前一共65首,相信总...

小小编辑
今天
25
0
在Objective-C中生成随机数 - Generating random numbers in Objective-C

问题: I'm a Java head mainly, and I want a way to generate a pseudo-random number between 0 and 74. In Java I would use the method: 我主要是Java头,我想要一种生成0到74之间的伪随......

技术盛宴
今天
13
0
ftp-ftps-sftp的关系

Ftp FTP 是File Transfer Protocol(文件传输协议)的英文简称,而中文简称为“文传协议”。用于Internet上的控制文件的双向传输。同时,它也是一个应用程序(Application)。基于不同的操作...

独钓渔
今天
12
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部