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.trackerJobTracker的主机(或者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 如下:

export JAVA_HOME=/usr/lib/jvm/java-8-oracle
export HADOOP_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 this script to execute hdfs command is deprecated.
Instead use the hdfs command for it.
 
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 []
[email protected]‘s password:
localhost: starting namenode, logging to /usr/local/hadoop/logs/hadoop-hadoop-namenode-G470.out
[email protected]‘s password:
localhost: starting datanode, logging to /usr/local/hadoop/logs/hadoop-hadoop-datanode-G470.out
localhost: OpenJDK 64-Bit Server VM warning: You have loaded library /usr/local/hadoop/lib/native/libhadoop.so.1.0.0 which might have disabled stack guard. The VM will try to fix the stack guard now.
localhost: It‘s highly recommended that you fix the library with ‘execstack -c <libfile>‘, or link it with ‘-z noexecstack‘.
Starting secondary namenodes [0.0.0.0]
[email protected]0.0.0.0‘s password:
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

原文地址:https://www.cnblogs.com/AndyWong/p/9201645.html

时间: 2024-10-27 10:42:49

3-2 Hadoop伪分布模式配置部署的相关文章

Hadoop伪分布模式配置部署

二.Hadoop伪分布式模式配置 本实验需要按照上一节单机模式部署后继续进行操作 1. 配置core-site.xml, hdfs-site.xml,mapred-site.xml及yarn-site.xml 1).修改core-site.xml: $ sudo gvim /usr/local/hadoop/etc/core-site.xml <?xml version="1.0"?> <?xml-stylesheet type="text/xsl"

Spark教程-构建Spark集群-配置Hadoop伪分布模式并运行Wordcount示例(1)

第四步:配置Hadoop伪分布模式并运行Wordcount示例 伪分布模式主要涉及一下的配置信息: 修改Hadoop的核心配置文件core-site.xml,主要是配置HDFS的地址和端口号: 修改Hadoop中HDFS的配置文件hdfs-site.xml,主要是配置replication; 修改Hadoop的MapReduce的配置文件mapred-site.xml,主要是配置JobTracker的地址和端口: 在具体操作前我们先在Hadoop目录下创建几个文件夹: 下面开始构建具体的伪分布式

hadoop伪分布模式搭建(下)

搭建伪分布式是在一台机器上模拟分布式部署,方便学习和调试. 1.解压hadoop文件 下载好的hadoop ,我们可以通过使用WinSCP 把压缩包软件把它 从宿主机复制移动到linux 的/usr/local 目录下. 解压缩文件,并重命名为hadoop,方便使用.重命名后这时,hadoop 目录的完整路径是"/usr/local/hadoop" 设置环境变量HADOOP_HOME,修改文件"/etc/profile" 修改环境变量后,执行source 命令,使配

Hadoop伪分布模式操作

http://blog.csdn.net/wangloveall/article/details/20195813 摘要:本文介绍Hadoop伪分布模式操作,适合于Hadoop学习.开发和调试. 关键词:Hadoop    伪分布式   文件配置 启动Hadoop支持三种模式操作,分别是单机模式操作.伪分布模式操作和全分布模式操作. 单机模式操作是Hadoop的默认操作模式,当首次解压Hadoop的源码包时,Hadoop无法了解硬件安装环境,会保守地选择最小配置,即单机模式.该模式主要用于开发调

Hadoop伪分布模式的安装

Hadoop伪分布模式的安装 [环境参数] (1)Host OS:Win7 64bit (2)IDE:Eclipse Version: Luna Service Release 2 (4.4.2) (3)虚拟机:VMware 10 (4)Client OS:CentOS 6.4 32bit. 注意: 若是CentOS 64bit,则在启动hadoop时,会报出警告. 原因:Hadoop的本地库($HADOOP_HOME/lib/native/libhadoop.so.1.0.0)是在32 bit

Hadoop伪分布式的部署

一.部署前的准备 (1)软件 一个空白的CentOS映像文件 Xshell(用于传输文件) (2)虚拟机配置 网络配置:网络适配器选择桥接 ip地址.子网掩码.网关.DNS服务器地址 =>可以在安装时的图形界面完成配置 =>也可以 vim /etc/sysconfig/network-script/ifcfg-ens33 修改 具体如下: IPADDR="192.168.124.x" (和网关在同一网段) NETMASK="255.255.255.0"

Spark教程-构建Spark集群-配置Hadoop伪分布模式并运行Wordcount(2)

执行文件拷贝操作 拷贝后的“input”文件夹的内容如下所示: 和我们的hadoop安装目录下的“conf”文件的内容是一样的. 现在,在我们刚刚构建的伪分布式模式下运行wordcount程序: 运行完成后我们查看一下输出的结果: 部分统计结果如下: 此时我们到达Hadoop的web控制台会发现我们提交并成功的运行了任务: 最后在Hadoop执行完任务后,可以关闭Hadoop后台服务: 至此,Hadoop伪分布式环境的搭建和测试你完全成功! 至此,我们彻底完成了实验.

2018-08-13期 Hbase伪分布模式安装部署

说明: Hbase部署模式有以下三种 (1)本地模式:本地模式不依赖于HDFS存储,将文件存储到操作系统本地目录,好处是我们不需要搭建HDFS集群,即可学些HBase相关命令及客户端操作. (2)伪分布模式:一台机器完成Hbase所有组件的配置,需要依赖HDFS分布式存储 (3)全分布模式:多机部署,一般情况下Hmaster和HregionServer分布在不同的服务器,需要依赖底层HDFS分布式存储. 一.安装介质 hbase-0.96.2-hadoop2-bin.tar.gz 二.安装JDK

Hadoop伪分布模式环境搭建

最近开始研究学习hadoop,想把自己的一些知识点写在这里作为自己的学习记录.同时,如果能够为有需要的朋友带来帮助也是一件快乐的事.这篇文章基本上都是参考网上的资料,我按照自己的理解和实践经验将其组织起来.网上大多教程没有具体介绍操作的背后原因,我按照我的理解以及将一些分布于网上比较散乱的细碎知识点进行了组织.因为时间以及个人能力原因,本安装文档会存在很多不足,后期我也会努力去学习提高自己.我的博客园之旅就以此hadoop安装开始.因为时间原因,我第一次发博客,图片没有加上,不过文章基本描述清楚