3-2 Hadoop集群伪分布模式配置部署
Hadoop伪分布模式配置部署
一、实验介绍
1.1 实验内容
- hadoop配置文件介绍及修改
- hdfs格式化
- 启动hadoop进程,验证安装
1.2 实验知识点
- hadoop核心配置文件
- 文件系统的格式化
- 测试WordCount程序
1.3 实验环境
- hadoop2.7.6
- CentOS6终端
1.4 适合人群
本课程难度为一般,属于初级级别课程,适合具有hadoop基础的用户。
1.5 相关文件
https://pan.baidu.com/s/1a_Pjl8uJ2d_-r1hbN05fWA
二、Hadoop伪分布式模式配置
注意:本实验需要按照上一节单机模式部署后继续进行操作,因此您必须先完成上一节实验。
2.1 相关配置文件修改
(若文件中没有添加的配置项,则系统为默认值,不会对该实验产生影响)
1).修改.bashrc
:
由于平台环境与该实验hadoop版本不匹配问题,需要对.bashr
文件中末尾处的环境变量做修改
$ vim /home/hadoop/.bashrc
修改为:
export HADOOP_HOME=
/home/hadoop/hdfs
export PATH=
/usr/local
/sbin:/usr
/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/home/hadoop
/hdfs/bin:/home/hadoop
/hdfs/sbin
由于本实验不会用到hbase和hive,所以相关环境变量删除。
提醒
:修改了配置文件后,如何使变量生效?上一节我们有使用到过,大家自行回顾一下。
2).修改core-site.xml
:
$ vim
/home/hadoop
/hdfs/etc
/hadoop/core-site.xml
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!-- Put site-specific property overrides in this file. -->
<configuration>
<property>
<name>
fs.defaultFS
</name>
<value>
hdfs://localhost:9000
</value>
</property>
<property>
<name>
hadoop.tmp.dir
</name>
<value>
/home/hadoop/tmp
</value>
</property>
</configuration>
常用配置项说明:
fs.defaultFS
这是默认的HDFS路径。当有多个HDFS集群同时工作时,用户在这里指定默认HDFS集群,该值来自于hdfs-site.xml中的配置。fs.default.name
这是一个描述集群中NameNode结点的URI(包括协议、主机名称、端口号),集群里面的每一台机器都需要知道NameNode的地址。DataNode结点会先在NameNode上注册,这样它们的数据才可以被使用。独立的客户端程序通过这个URI跟DataNode交互,以取得文件的块列表。
hadoop.tmp.dir
是hadoop文件系统依赖的基础配置,很多路径都依赖它。如果hdfs-site.xml中不配置namenode和datanode的存放位置,默认就放在/tmp/hadoop-${user.name}
这个路径中。
更多说明请参考core-default.xml,包含配置文件所有配置项的说明和默认值。
3).修改hdfs-site.xml
:
$ vim
/home/hadoop
/hdfs/etc
/hadoop/hdfs-site.xml
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!-- Put site-specific property overrides in this file. -->
<configuration>
<property>
<name>
dfs.replication
</name>
<value>
1
</value>
</property>
</configuration>
常用配置项说明:
dfs.replication
它决定着系统里面的文件块的数据备份个数。对于一个实际的应用,它应该被设为3(这个数字并没有上限,但更多的备份可能并没有作用,而且会占用更多的空间)。少于三个的备份,可能会影响到数据的可靠性(系统故障时,也许会造成数据丢失)dfs.data.dir
这是DataNode结点被指定要存储数据的本地文件系统路径。DataNode结点上的这个路径没有必要完全相同,因为每台机器的环境很可能是不一样的。但如果每台机器上的这个路径都是统一配置的话,会使工作变得简单一些。默认的情况下,它的值为file://${hadoop.tmp.dir}/dfs/data
这个路径只能用于测试的目的,因为它很可能会丢失掉一些数据。所以这个值最好还是被覆盖。dfs.name.dir
这是NameNode结点存储hadoop文件系统信息的本地系统路径。这个值只对NameNode有效,DataNode并不需要使用到它。上面对于/temp类型的警告,同样也适用于这里。在实际应用中,它最好被覆盖掉。
更多说明请参考hdfs-default.xml,包含配置文件所有配置项的说明和默认值。
4).修改mapred-site.xml
:
$ cp
/home/hadoop
/hdfs/etc
/hadoop/mapred-site.xml.template
/home/hadoop
/hdfs/etc
/hadoop/mapred-site.xml
$ vim
/home/hadoop
/hdfs/etc
/hadoop/mapred-site.xml
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!-- Put site-specific property overrides in this file. -->
<configuration>
<property>
<name>
mapreduce.framework.name
</name>
<value>
yarn
</value>
</property>
</configuration>
常用配置项说明:
mapred.job.tracker
JobTracker的主机(或者IP)和端口。
更多说明请参考mapred-default.xml,包含配置文件所有配置项的说明和默认值
5).修改yarn-site.xml
:
$ vim
/home/hadoop
/hdfs/etc
/hadoop/yarn-site.xml
<configuration>
<property>
<name>
yarn.nodemanager.aux-services
</name>
<value>
mapreduce_shuffle
</value>
</property>
</configuration>
常用配置项说明:
yarn.nodemanager.aux-services
通过该配置,用户可以自定义一些服务
更多说明请参考yarn-default.xml,包含配置文件所有配置项的说明和默认值
6). 修改 hadoop-env.sh
:
$ sudo vim
/home/hadoop
/hdfs/etc
/hadoop/hadoop-env.sh
修改 JAVA_HOME 如下:
exportJAVA_HOME
=/usr/lib/jvm/java-8-oracle
exportHADOOP_CONF_DIR
=/home/hadoop/hdfs/etc/hadoop
这样简单的伪分布式模式就配置好了。
三、格式化HDFS文件系统
在使用hadoop前,必须格式化一个全新的HDFS安装,通过创建存储目录和NameNode持久化数据结构的初始版本,格式化过程创建了一个空的文件系统。由于NameNode管理文件系统的元数据,而DataNode可以动态的加入或离开集群,因此这个格式化过程并不涉及DataNode。同理,用户也无需关注文件系统的规模。集群中DataNode的数量决定着文件系统的规模。DataNode可以在文件系统格式化之后的很长一段时间内按需增加。
3.1 格式化HDFS文件系统
$ hadoop namenode -format
会输出如下信息,则表格式化HDFS成功:
DEPRECATED: Use of
thisscript to execute hdfs command
isdeprecated.
Instead use the hdfs command
forit.
INFO namenode.NameNode: STARTUP_MSG:
/************************************************************
STARTUP_MSG: Starting NameNode
STARTUP_MSG: host = [你的主机名]/[你的ip]
STARTUP_MSG: args = [-format]
STARTUP_MSG: version = 2.7.6
...
...
INFO util.GSet: Computing capacity for map NameNodeRetryCache
INFO util.GSet: VM type = 64-bit
INFO util.GSet: 0.029999999329447746% max memory 889 MB = 273.1 KB
INFO util.GSet: capacity = 2^15 = 32768 entries
INFO namenode.NNConf: ACLs enabled? false
INFO namenode.NNConf: XAttrs enabled? true
INFO namenode.NNConf: Maximum size of an xattr: 16384
INFO namenode.FSImage: Allocated new BlockPoolId: BP-549895748-192.168.42.3-1489569976471
INFO common.Storage: Storage directory /home/hadoop/hadop2.6-tmp/dfs/name has been successfully formatted.
INFO namenode.NNStorageRetentionManager: Going to retain 1 images with txid >= 0
NFO util.ExitUtil: Exiting with status 0
INFO namenode.NameNode: SHUTDOWN_MSG:
/************************************************************
SHUTDOWN_MSG: Shutting down NameNode at [你的主机名]//[你的ip]
************************************************************/
hadoop
@c81af9a07ade:/opt/hadoop
-2.7.6/bin$ jps
四、Hadoop集群启动
4.1 启动hdfs守护进程,分别启动NameNode和DataNode
$ start-dfs.sh
输出如下(可以看出分别启动了namenode, datanode, secondarynamenode,因为我们没有配置secondarynamenode,所以地址为0.0.0.0):
Starting namenodes
on[]
hadoop@localhost
'spassword:
localhost: starting namenode, logging
to/usr/local/hadoop/logs/hadoop-hadoop-namenode-G470.
out
hadoop@localhost
'spassword:
localhost: starting datanode, logging
to/usr/local/hadoop/logs/hadoop-hadoop-datanode-G470.
out
localhost: OpenJDK
64-
BitServer VM
warning: You have loaded
library/usr/local/hadoop/lib/native/libhadoop.so.
1.0.
0which might have disabled stack guard. The VM will try
tofix the stack guard now.
localhost: It
'shighly recommended that you fix the
librarywith
'execstack
-c <libfile>',
orlink it
with'-z noexecstack'.
Starting secondary namenodes [
0.0.
0.0]
hadoop@
0.0.
0.0'spassword:
0.0.
0.0: starting secondarynamenode, logging
to/usr/local/hadoop/logs/hadoop-hadoop-secondarynamenode-G470.
out
4.2 启动yarn,使用如下命令启ResourceManager和NodeManager:
$ start-yarn.sh
4.3 检查是否运行成功
打开浏览器
- 输入:
http://localhost:8088
进入ResourceManager管理页面 - 输入:
http://localhost:50070
进入HDFS页面
可能出现的问题及调试方法:
启动伪分布后,如果活跃节点显示为零,说明伪分布没有真正的启动。原因是有的时候数据结构出现问题会造成无法启动datanode。如果使用hadoop namenode -format
重新格式化仍然无法正常启动,原因是/tmp
中的文件没有清除,则需要先清除/tmp/hadoop/*
再执行格式化,即可解决hadoop datanode无法启动的问题。具体步骤如下所示:
# 删除hadoop:/tmp
$ hadoop fs -rmr /tmp
# 停止hadoop
$ stop-all.sh
# 删除/tmp/hadoop*
$ rm -rf /tmp/hadoop*
# 格式化
$ hadoop namenode -format
# 启动hadoop
$ start-all.sh
五、测试验证
测试验证还是使用上一节的 WordCount。
不同的是,这次是伪分布模式,使用到了 hdfs,因此我们需要把文件拷贝到 hdfs 上去。
首先创建相关文件夹(要一步一步的创建):
$ hadoop dfs -mkdir
/user
$ hadoop dfs -mkdir /user/hadoop
$ hadoop dfs -mkdir /user/hadoop/input
创建多层目录的简便方法:
$ hadoop dfs -
mkdir-p /user/hadoop/
input
5.1 创建输入的数据,采用/etc/protocols文件作为测试
先将文件拷贝到 hdfs 上:
$ hadoop dfs -put
/etc/protocols
/user/hadoop
/input
5.2 执行Hadoop WordCount应用(词频统计)
# 如果存在上一次测试生成的output,由于hadoop的安全机制,直接运行可能会报错,所以请手动删除上一次生成的output文件夹
$ hadoop jar
/home/hadoop
/hdfs/share
/hadoop/mapreduce
/sources/hadoop-mapreduce-examples-
2.7.6-sources.jar wordcount
/user/hadoop
/input output
执行过程截图(部分):
5.3 查看生成的单词统计数据
$ hadoop dfs -cat
/user/hadoop
/output/*
六、关闭服务
$ stop-dfs.sh
$ stop-yarn.sh
七、小结
本实验讲解如何在单机模式下继续部署Hadoop为伪分布模式。
八、思考题
伪分布模式和单机模式配置上的区别主要是哪些?是否可以推论出如何部署真实的分布式Hadoop环境?
九、参考文档
本实验参考下列文档内容制作:
实验楼练习平台:http://www.shiyanlou.com/register?inviter=NTY0MzE5NjA1NjM3
3-2 Hadoop集群伪分布模式配置部署的更多相关文章
- Spark新手入门——2.Hadoop集群(伪分布模式)安装
主要包括以下三部分,本文为第二部分: 一. Scala环境准备 查看 二. Hadoop集群(伪分布模式)安装 三. Spark集群(standalone模式)安装 查看 Hadoop集群(伪分布模式 ...
- 3-3 Hadoop集群完全分布式配置部署
Hadoop集群完全分布式配置部署 下面的部署步骤,除非说明是在哪个服务器上操作,否则默认为在所有服务器上都要操作.为了方便,使用root用户. 1.准备工作 1.1 centOS6服务器3台 手动指 ...
- Hadoop伪分布模式配置部署
.实验环境说明 注意:本实验需要按照上一节单机模式部署后继续进行操作 1. 环境登录 无需密码自动登录,系统用户名 shiyanlou,密码 shiyanlou 2. 环境介绍 本实验环境采用带桌面的 ...
- 使用Docker搭建Hadoop集群(伪分布式与完全分布式)
之前用虚拟机搭建Hadoop集群(包括伪分布式和完全分布式:Hadoop之伪分布式安装),但是这样太消耗资源了,自学了Docker也来操练一把,用Docker来构建Hadoop集群,这里搭建的Hado ...
- 一脸懵逼学习基于CentOs的Hadoop集群安装与配置
1:Hadoop分布式计算平台是由Apache软件基金会开发的一个开源分布式计算平台.以Hadoop分布式文件系统(HDFS)和MapReduce(Google MapReduce的开源实现)为核心的 ...
- 一脸懵逼学习基于CentOs的Hadoop集群安装与配置(三台机器跑集群)
1:Hadoop分布式计算平台是由Apache软件基金会开发的一个开源分布式计算平台.以Hadoop分布式文件系统(HDFS)和MapReduce(Google MapReduce的开源实现)为核心的 ...
- 大数据中Hadoop集群搭建与配置
前提环境是之前搭建的4台Linux虚拟机,详情参见 Linux集群搭建 该环境对应4台服务器,192.168.1.60.61.62.63,其中60为主机,其余为从机 软件版本选择: Java:JDK1 ...
- Hadoop集群_Hadoop安装配置
1.集群部署介绍 1.1 Hadoop简介 Hadoop是Apache软件基金会旗下的一个开源分布式计算平台.以Hadoop分布式文件系统(HDFS,Hadoop Distributed Filesy ...
- Spark在Hadoop集群上的配置(spark-1.1.0-bin-hadoop2.4)
运行Spark服务,需要在每个节点上部署Spark. 可以先从主节点上将配置修改好,然后把Spark直接scp到其他目录. 关键配置 修改conf/spark-env.sh文件: export JAV ...
随机推荐
- scikit-learn中机器学习模型比较(逻辑回归与KNN)
本文源自于Kevin Markham 的模型评估:https://github.com/justmarkham/scikit-learn-videos/blob/master/05_model_eva ...
- adi i2s 提供的axi_lite接口说明
总共定义了4个寄存器,位宽32位,也就是 偏移地址*4以下是PS写数据when 0 => I2S_RESET_REG <= wr_data; when 1 => I2S_CONTRO ...
- GraphQL ---02 GraphQL和C#结合的实战项目
本文章是介绍和记录如何创建GraphQL项目,以及如何使用GraphQL进行数据的相关操作.项目参照GraphQL .Net 的官方文档进行实践 一.项目结构: 为了更好的和原有的项目结合在一起,尽可 ...
- 《剑指offer》左旋转字符串
本题来自<剑指offer> 反转链表 题目: 思路: C++ Code: Python Code: 总结:
- 终极版:Mybatis整合Spring配置
第一部分:配置 Spring 框架 配置 SpringMVC 的步骤: 配置流程图: SpringMVC 配置 1. 导入包(那些包,基本包 5 个,1 个日志依赖包,2 个 webmvc 支持包) ...
- 烽火2640路由器命令行手册-11-IP语音配置命令
IP语音配置命令 目 录 第1章 配置拨号对命令... 1 1.1 配置拨号对命令... 1 1.1.1 dial-peer voice. 1 1.1.2 application. 2 1.1.3 ...
- Unity引擎相关知识UnityKnowledgeHyperlink
请简述Unity中的四种坐标系 http://liuqingwen.me/blog/2017/07/31/understanding-coordinate-system-in-unity3d/
- javafx由浅到深的 认识(一)
javafx是一款比较新兴的语言框架,随着javafx越来越实用,估计许多程序员也会慢慢接触它,故我在这里对它由浅到深进行介绍一下. 首先,要了解javafx,就应该先知道.xml文件的布局软件,以往 ...
- windows10下面部署nginx(解决文件名中文乱码问题)
由于开发需要,我们总是需要先在windows环境下面部署项目进行测试,通过之后才会移植到linux系统进行测试部署. 本篇文章会介绍一下windows终端下面部署nginx WEB服务的一些步骤流程, ...
- String.length()和String.getBytes().length
1.字符与字节 抛出如下代码: public static void main(String[] args) { String str = "活出自己范儿"; System.out ...