构建大可靠hadoop集群之0-hadoop用户向导

正文翻译由:http://hadoop.apache.org/docs/r2.8.0/hadoop-project-dist/hadoop-hdfs/HdfsUserGuide.html

0.规划

基于2.8.0文档

 

1.目的

少单节点:

正文可以视作以下人士的入门指点:使用hdfs的用户,或者只有使用分布式文件系统的用户。尽管hdfs设计的目标是以差不五个条件遭到得用,但关于Hdfs的工作规律如故要命有助于配置与确诊特定集群。

 

2.概述

ip
部署的程序
备注
192.168.56.2/bigdata.lzf
namenode,datanode,NodeManager,hive,presto,mysql,hive-metastore,presto-cli
主节点
192.168.56.3/bigdata.dn1.lzf
secondarynode,resourceManager,NodeManager,hive,presto,presto-cli
资源管理节点

HDFS是Hadoop应用的首要性分布式存储。一个hDFS集群重要含有一个称呼节点(管理文件系统第一数据)和一个大抵单数据节点(存储实际的多少)。HDFS框架指引详细地讲述了HDFS。本带紧要描述有关用户交互与HDFS集群管理。HDFS框架图简要示意了名称节点,数据节点和客户端的竞相。

 

客户端连接名称节点得到文件系统首数据要文件修改,然后与数目节点举办直接的公文i/o。

hive由于匪设有主从的题材,虽然metastore也堪配备多独。

以下部分醒目的表征对可能然许多用户感兴趣:

假设发必不可少resourceManager也得安排多单。

  • hadoop,包含hdfs,很适用于分布式存储,并以普通的设备举办分布式总括。它发生容错,可伸缩,极其容易扩充。mapreduce,以简练和可用于大量分布式应用有名,是hadoop的平等组成部分。
  • HDFS是可观可配,并出一个默认的部署,可以有多之安形式。绝大部分时光,唯有以雅非凡的成团众多被才得调优(译注:应该是因节点多,数据多吧?)。
  • hadoop使用java编写,辅助具备重点的平台
  • hadoop补助类似于shell的命,可以用于互动hdfs目录
  • 名称节点和数量节点都发出内建的web服务器,用户大爱检查集群当前状态
  • HDFS中一些初特点和提高会定期实现,以下几点是一对得力的风味:(译注,这是基于2.8.0编辑的)

  1. 文本权限和授权
  2. 机栈敏感:在调度任务和分红存储的早晚,会考虑一个节点的情理地方。
  3. 安全形式(safemode):用于珍视的只是管理模式(译注:可以经命令设置为这种状态)
  4. fsck:用于诊断文件系统的正常,查找丢失的文书要块。
  5. fetchdt:用户得到委托令牌(?delegationToken),并将让牌存储到地头文件系统
  6. 均衡器(balancer):均衡集群的工具
  7. 提拔和回滚:在软件升级后,有或回滚到提高前的状态(假诺发不足测的问题)
  8. 次称号节点:执行为期的号空间检查点,并协助名称节点受到蕴藏hdfs修改的日志文件保持以一定大小
  9. 检查点节点:执行名称空间定期的检查点,并助名称节点受到带有HDFS变更日志的公文保持以极其小状态。可以替第二称谓节点,尽管当时不是挟持的。只要系统受并未备份节点,那么名称节点允许有六个检查点节点。
  10. 备份节点:是检查点节点的壮大(升级)。除了可以做检查点,它为打名称节点接受编辑日志流,并当投机的内存中维护名称空间,这么些空间是同名称节点的称号空间并的。只可以有一个备份节点。

 

3.前提

1.公共操作

以下文档描述怎么着设置配备一个hadoop集群:

 

http://hadoop.apache.org/docs/r2.8.0/hadoop-project-dist/hadoop-common/SingleCluster.html

1.1 创设用户

http://hadoop.apache.org/docs/r2.8.0/hadoop-project-dist/hadoop-common/ClusterSetup.html

group add hadoop

本文的多余部分都会面如用户能够配备并运行至少有一个数目节点的HDFS。假使名称节点和多少节点运行在单一机器也是可的。

useradd hadoop -G hadoop

4.web界面

 

名称节点和多少节点都发出运行中的web服务器,它们可以来得关于当前集群状态的中坚音信。

1.2 设置ssh互通

基于默认设置,名称节点的主页是http://namenode-name:50070/.它会列出集群中的名称节点和集群的基本统计信息。web界面也可以用于浏览文件系统

使用rsa的互通

译注:

 

足由此8042,8099,50070端口访问,要是不修改默认配置的言语。

   1.2.1 分别以2,3机器上实施如下(hadoop用户下)

例如http://bigdata.lzf:8099可以看集群配置文件

ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa

cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

chmod 0600 ~/.ssh/authorized_keys

     http://bigdata.lzf:50070 可以扣押数据节点和文书

   1.2.2 把3的id_rsa.pub 复制到 2的id_rsa.pub_sl

5.shell命令

       ssh bigdata.dn1.lzf

hadoop包含各类类shell命令,能够就此来互HDFS和hadoop襄助的旁文件系统。

       cd .ssh

命令 bin/hdfs dfs -help列出hadoop shell协理的通令。此外,bin/hdfs -help
命令名称 可以体现更多的细节。

       scp id_rsa.pub
hadoop@bigdata.lzf:~/.ssh/id_rsa.pub_sl

这么些命令协理类似普通文件系统绝大部分的操作,例如复制文件,修改权限,等等。hdfs也会师协助有hdfs特定的操作,诸如修改文件复制。

   1.2.3 把2的 id_rsa.pub_sl 追加都2的authorized_keys

译注:这一个局部的情节与2.8.0全文档中关于文件操作的不尽相同。hdfs
dfs的一声令下即使与hadoop fs 基本一致,但2.8.0底文档基本就介绍hadoop
fs。这可能是文档没有妥善更新的原委。

       cd .ssh

 

       cat id_rsa.pub_sl>> authorized_keys 

6.DFSAdmin 命令

   1.2.4 把2的authorized_keys复制到到3的/home/hadoop/.ssh/下

hdfs dfsadmin命令匡助有hDFS管理。使用hdfs dfsadmin
-help能够省dfsadmin的详实帮忙。

     

译注:更多细节参阅hadoop文档,或者扣帮衬,本文的目标不在于那多少个细节。

   之后举办验证:

7.亚称节点

  chmod 700 ~/.ssh

称节点使用当地文件系统来记录文件系统的修改,那些文件称编辑日志。当称节点启动之早晚,会从印象文件(fsimage-本地文件)获取状态,然后把编辑日志总的事情应用至映像文件被,然后转新的印象文件,而现有的编辑日志被清空。

  chmod 600
~/.ssh/authorized_keys  

由每回节点才于启动之早晚做日志文件及映像文件,随着时光之推迟,日志文件就可能移得挺了不起。巨大文件之一个震慑是,下同样潮名称节点启动的下,会损耗更多日。

  

仲号节点的意图有即是期限统一编辑日志与印象文件,以便日志文件之尺寸保持以一个止下。第二称号节点平常运行于单身的机上,因为它对内存的求以及主名称节点一样。

  在2下执行ssh bigdata.dn1.lzf

老二号节点上检查点进程的开行着五只可配参数的控制:

  在3下执行ssh bigdata.lzf

dfs.namenode.checkpoint.period:默认是1钟头(单位凡秒),设定了片只连检查点之间的最为要命延迟

  成功,则可继续了。

dfs.namenode.checkpoint.txns:默认是1百万(译注:单位是个),设定未检查的事务数,操作是累,就会见沾检查点操作。

  注:

译注:两个规格之一满足就晤面触发检查点操作

  
a.假若有双重多之节点,操作时类似的,就是拿具有的id_rsa.pub合并在一起,然后搭至主机的
authorized_keys ,最终将主机authorized_keys复制到各类节点上即可。

亚称呼节点将新型的检查点存储在该地目录,这多少个目录结构与主名称节点。那样,假使出必要,主名称节点总是好读取检查点影像。(译注:这就是是后说的导入检查点)

   b.至于使用rsa如故dsa看具体情形。

 

 

8.检查点节点

1.3 目录

译注:由于是东西同次称节点的企图类似,所以原文的三头方可大概。

 

hdfs namenode -checkpoint  –启动检查点节点

盖hadoop身份实施

dfs.namenode.backup.address
和dfs.namenode.backup.http-address可以用来配置检查点(或者备份)节点的地址,包括http地址。

mkdir -p  /home/hadoop/data_hadoop/hdfs/name

只要没备份节点,那么可以设定六只检查点节点。

mkdir -p   /home/hadoop/data_hadoop/hdfs/data

9.备卖节点

mkdir -p /home/hadoop/data_hadoop/tmp

备份节点提供除了跟检查点节点一样,可以供检查点功用,还会实时同步一个跟主节点一样的系命名空间(在内存中,并且状态是走)。备份节点打主节点通过流动的措施受主节点上的编制日志,并把这个日记保存于磁盘中,同时那些编辑日志一样会给运用及内存中,这样备份节点内存中的名称空间就和主节点全等同。

 

备份节点不需从主节点下载映像文件及编日志,因为其的内存中出个跟主节点一样的名称空间。备份节点的检查点进程进一步快,因为她就待将称呼空间保存及当地的映像文件,并充值编辑日志。

1.4 安装软件

由于备份几沾维持了一个外存中的名空间备份,所以它于内存的要求及名称节点。

在/home/haoop下安装

名节点才辅助一个备份节点。备份节点和检查点节点是未共存之。前会合支撑以采纳四个备份节点(毫无疑问这是好有必不可少之,apache已经意识及了)
备份节点的配置格局同检查点节点— hdfs namenode -backup.

hadoop-2.8.0

备份节点的职位它的web界面通过dfs.namenode.backup.address
和dfs.namenode.backup.http-address来配置。

 

通过利用备份节点,就可以以在非持久设备及运行名称节点,并将状态的有始有终责任全托给备份节点。为了上这一个目标,可以当开行名称节点的时光带及-importCheckpoint参数,同时dfs.namenode.edits.dir参数中得以设定一个非持久存储目录。
为能完美研讨创造备份节点和检查点节点背后的想法,请参阅
https://issues.apache.org/jira/browse/HADOOP-4539

1.5 环境变量配置

着有关名称节点部分情节。

 

10.导入检查点

export JAVA_HOME=/usr/local/jdk1.8.0_131

若编辑日志与映像文件之兼具其他备份都行不通(或者丢失),那么可以将最新的检查点导入到号节点受到。为了这样做,应当:

export HADOOP_HOME=/home/hadoop/hadoop-2.8.0

  1. 按照参数dfs.namenode.name.dir的设置,创造一个空间的目
  2. 规定dfs.namenode.checkpoint.dir设定的检查点路径
  3. 起步名称节点,大得带来上-importCheckpoint选项。

export HADOOP_CONF_DIR=/home/hadoop/hadoop-2.8.0/etc/hadoop

号节点打检查点路径下充斥元数据及当地的dfs.namenode.name.dir,名称节点会检查印象文件的一致性,但无开另外改动。

export HADOOP_YARN_HOME=$HADOOP_HOME

The NameNode will upload the checkpoint from the
dfs.namenode.checkpoint.dir directory and then save it to the NameNode
directory(s) set in dfs.namenode.name.dir. The NameNode will fail if a
legal image is contained in dfs.namenode.name.dir. The NameNode verifies
that the image in dfs.namenode.checkpoint.dir is consistent, but does
not modify it in any way.

export HADOOP_MAPRED_HOME=$HADOOP_HOME

11.均衡器

export HADOOP_PREFIX=$HADOOP_HOME

HDFS的多少或许并无连续全匀分布在逐个数据节点上。一个常备的原委是新节点的加盟。

export
PATH=$PATH:$HOME/.local/bin:$HOME/bin:$JAVA_HOME/bin:$HADOOP_HOME/bin

当存放新数据块的时节,名称节点考虑多单情景以便采用一个好领多少的多少节点,这些情状包括:

 

  1. 在写入数据块的节点上保存一个复制(译注:理所当然)
  2. 管一部分复制放在不同机栈,制止一切机栈失效的时段,数据不会面丢掉
  3. 起码爆发点儿独复制在跟一个机栈,这样好裁减网络I/O
  4. 在集群数据节点内都匀分布HDFS数据

1.6 修改各样env.sh和日志

由于这些有必然互斥的考虑,数据就可能不能在节点见都匀分布。HDFS给管理员提供了一个家伙,可以分析块的分布,并当逐个数据节点内还均衡数据块。

因单机的部署即可。

hdfs balancer
          [-threshold <threshold>]
          [-policy <policy>]
          [-exclude [-f <hosts-file> | <comma-separated list
of hosts>]]
          [-include [-f <hosts-file> | <comma-separated list
of hosts>]]
          [-source [-f <hosts-file> | <comma-separated list
of hosts>]]
          [-blockpools <comma-separated list of blockpool
ids>]
          [-idleiterations <idleiterations>]

修改 etc/hadoop/log4j.properties 添加如下:

翔参考

log4j.logger.org.apache.hadoop.util.NativeCodeLoader=DEBUG

http://hadoop.apache.org/docs/r2.8.0/hadoop-project-dist/hadoop-hdfs/HdfsUserGuide.html#Balancer

 

12.机栈敏感
一个HDFS集群可以识别机栈拓扑(机栈–节点存放的地方)。为了优化数据的囤积和运,正确配置拓扑依然怪重要之。

2.节点布局

切实参考:http://www.cnblogs.com/lzfhope/p/7000456.html

 

13.康宁情势

2.1 192.168.56.2   配置

名节点启动之时节,首先至于安全情势,目标是检查复制情状,检查期间名称节点可读不可修改,这代表中随意文件还不行修改。

 

调为正常格局下,会将有没有健康复制的数据块重新补充复制下。

core-site.xml

除外启动的时候,自动装也安全情势,也堪显式(手工)把集群设置为安格局–
hdfs dfsadmin -safemode

 

14.fsck-文件检查

<property>

fsck专门检查各样文件的题材。例如块丢失,或者块复制不足。

* <name>fs.defaultFS</name>*

差令人情文件系统的反省器,这多少个令并无修正发现的左。平日名称节点自动修改绝大部分得以还原的题材。

* <value>hdfs://bigdata.lzf:9001</value>*

默认意况下,fsck会忽略打开的文书,但咱得当履是命令的下经过增选项决定是否忽略打开的文件。

* <description>HDFS的URI,文件系统://namenode标识:端口号,默认是9000</description>*

HDFS fsck命令并无是hadoop shell命令。

</property>

15.fetchdt-抱委托令牌

<property>

HDFS协助fetchdet命令,以便得到委托令牌,并将让牌存储于该地文件系统。

* <name>hadoop.tmp.dir</name>*

令牌可以于用户从一个勿安全的客户端访问安全之(secure)服务器(例如名称节点)。

* <value>/home/hadoop/data_hadoop/tmp</value>*

经过rpc或者https(通过kerberos)获取令牌的家伙,它们需提供kerberos票。HDFS的fetchdt命令并非hadoop
shell命令(译注:同fsck一样,尽管说勿是hadoop
shell命令,但我们一般仍然那任务之,只可是命令是为hdfs 开首).

* <description>namenode上本土的hadoop临时文件夹</description>*

当通过工具拿到令牌之后,就得无待kerberos票就好运行hdfs命令,前提是安装HADOOP_TOKEN_FILE_LOCATION环境变量。HADOOP_TOKEN_FILE_LOCATION指向令牌的蕴藏地点。

</property>

16.恢复生机格局

<property>

卓绝地,我们会部署五个探花数据存储地点。然后,倘使一个囤点特别了,那么大家得于另存储点读取。

*  <name>ipc.client.connect.max.retries</name>*

而是,假如只是生一个银行,且颇了,我们能怎么收拾?
在这种状态下,有一个专程的名称节点启动格局,称为复苏情势,这些模式也许于大家回复大部分底多寡。

*  <value>100</value>*

命令: hdfs namenode -recover

*  <description>默认10不好,现在安排100不佳</description>*

当远在苏醒情势的时刻,名称节点以交互形式提示大家输入有信,做出一些摘。

</property>

倘诺不缅怀被唤起,可以让出-force选项。那种意况下,假诺生采取,程序也只有谋面挑首个类型。平时状态下,这恐怕是无与伦比合理之挑三拣四。

<property>

为恢复生机情势可能导致数据丢失,所以应当履行前备份编辑日志与映像文件。

*  <name>ipc.client.connect.retry.interval</name>*

17.调升跟回滚
当升级一个集群的时光,可能会面并发一个新的bug或者有些休匹配现有软件之情事。在旁的正统安装着,肯定是选项敬重数量,所以要还开hdfs。

*  <value>10000</value>*

hdfs允许管理员回退到更早的hadoop版本和升级换代前的状态。hdfs升级的内容在hadoop升级wiki页面有重新详细的辨证。

*  <description>连接间隔1分钟,默认是0.1秒</description>*

HDFS一个时日只可以有一个备份。在升级前,管理员要移除现存的备份,命令是hdfs
dfsadmin -finalizeUpgrade.

</property>

下简要描述典型的升级历程:

*  –为了权限,例如通过beeline之类的通过访*

  1. 假设出备份节点,那么先转移除
  2. 已集群,并部署新本子的hadoop
  3. 运行sbin/start-dfs.sh -upgrade
  4. 绝大多数日子,集群运行非凡。一旦认为新的HDFS运行出色(可能擢升几上未来),截至升级。注意,除非集群认定升级了,否则去升级前的文件未会面真正自由数据节点上的半空中
  5. 如只要回滚到老版本

*  增长以下内容:*

    • 终止集群,并配备早版本的hadoop
    • 每当称呼节点上举办hdfs namenode -rollback
    • 盖回滚格局启动集群 sbin/start-dfs.sh -rollback

<property>

当升级到一个初本子hdfs的时光,有必不可少去在新版hdfs中保存的底门径(也可重新命名).假如名称节点在升级历程碰到一个保留的路线,那么它们会面输入类似如下的错误音讯:

* <name>hadoop.proxyuser.hadoop.hosts</name>*

/.reserved is a reserved path and .snapshot is a reserved path component in this version of HDFS. Please rollback and delete or rename this path, or upgrade with the -renameReserved [key-value pairs] option to automatically rename these paths during upgrade.

* <value>*</value>*

好经设定 -upgrade
-renameReserved来绕了上述问题。例如,倘诺想重新命名所有.snapshot的路线为.my-snapshot,用户可如下操作:

</property>

-upgrade -renameReserved .snapshot=.my-snapshot

<property>

设发差不两个目录,可以如下:

* <name>hadoop.proxyuser.hadoop.groups</name>*

-upgrade -renameReserved .snapshot=.my-snapshot,.reserved=.my-reserved

* <value>*</value>*

于再一次命名经过,有部分告诫。我们指出,如果可能,应该以晋级前保存名称空间(通过
hdfs dfsadmin -saveNamespace).

</property>

眼看是为数量可能未相同,如若编辑日志操作实践一个机动改名的文本。

 

18.数码节点热交流磁盘

hdfs-site.xml 

数量节点扶助热交流磁盘。用户可长或转移磁盘,而无用闭馆数节点。

 

下简要描述热交流磁盘过程:

<property>

  1. 如发新的储存目录,那么用户应格式化和挂载
  2. 修改dfs.datanode.data.dir设置,参加新的途径
  3. 执行dfsadmin -reconfig datanode host:port
    start,以启动重新配置路径。然后,使用dfsadmin -reconfig datanode
    host:port status查询重配置任务的状态
  4. 即使重新配置完成,用户就可高枕无忧之卸载有关目录,并物理移除磁盘

    <name> dfs.namenode.name.dir</name>

译注:这一个小节告诉大家,配置一个单机的时,存储数据的磁盘应该跟操作系统磁盘有或吧,如故分别。即同玉统计机上极其有有限块硬盘,而且太好扶助热拔插。

    <value>/home/hadoop/data_hadoop/hdfs/name</value>

 

    <description>namenode上囤积hdfs名字空间元数据
</description>

19.文书权限和三门峡

</property>

文件系统的权类似linux的。近来,安全就限于简单的公文权限。启动名称节点的用户为当作HDFS的特级用户。

<property>

前几日版的HDFS会匡助网络利用协议,例如用户之kerberos授权和数码传加密。详细的信息加入权力引导
译注:用户的kerberos授权,好像特别早版本就发生矣,是否原文整理的当儿从不正?

    <name> dfs.datanode.data.dir</name>

20.可伸缩

    <value>/home/hadoop/data_hadoop/hdfs/data</value>

hadoop当前可构建一个过多节点的集群。那个页面powerdBy排有了闻名的用户。

   
<description>datanode上数据块的物理存储地点</description>

hdfs有一个名号节点。目前数节点上的可用内存是第一的伸缩限制。在分外酷的集群达,提升平均文件大小会升级集群的轻重缓急。默认的布局或者无适用于良充足集群。FAQ
WIKI
供了大型集群的提出配置。

</property>

译注:hadoop也以频频提拔中。

<property>

访问 https://wiki.apache.org/hadoop/FAQ ,可以博广大恐怕便宜的帮。

    <name>dfs.replication</name>

当hadoop的要旨,领悟hdfs是唯一要的业务。mr于无数袖珍的集群或者hadoop应用中,功能并无是殊酷。在以后之硬件情形下,mr更加没有价值。

    <value>2</value>

   
<description>副本个数,配置默认是3,应小于datanode机器数量</description>

</property>

<property>

 <name>dfs.namenode.rpc-address</name>

 <value>bigdata.lzf:9001</value>

 <description>RPC address that handles all clients
requests。有人说需要同fs.defaultFS 一样捧口</description>

</property>

 

<property>
 <name>dfs.namenode.http-address</name>
 <value>bigdata.lzf:50070</value>
 <description>
 The address and the base port where the dfs namenode web ui will listen
on.
 If the port is 0 then the server will start on a free port.
 </description>
</property>
<property>
 <name>dfs.namenode.secondary.http-address</name>
 <value>bigdata.dn1.lzf:50090</value>
</property>

 

slaves

#出三三两两独节点

bigdata.lzf

bigdata.dn1.lzf

 

yarn-site.xml

#只是用于nodemanager

<configuration>

<property>

        <name>yarn.nodemanager.aux-services</name>

        <value>mapreduce_shuffle</value>

</property>

 

 

 

2.2 .192.168.56.3  配置

 

core-site.xml

 

<property>

* <name>fs.defaultFS</name>*

* <value>hdfs://bigdata.lzf:9001</value>*

* <description>HDFS的URI,文件系统://namenode标识:端口号,默认是9000</description>*

</property>

<property>

* <name>hadoop.tmp.dir</name>*

* <value>/home/hadoop/data_hadoop/tmp</value>*

* <description>namenode上当地的hadoop临时文件夹</description>*

</property>

<property>

*  <name>ipc.client.connect.max.retries</name>*

*  <value>100</value>*

*  <description>默认10浅,现在配备100浅</description>*

</property>

<property>

*  <name>ipc.client.connect.retry.interval</name>*

*  <value>10000</value>*

*  <description>连接间隔1分钟,默认是0.1秒</description>*

</property>

*  –为了权限,例如通过beeline之类的通过访*

*  增长以下内容:*

<property>

* <name>hadoop.proxyuser.hadoop.hosts</name>*

* <value>*</value>*

</property>

<property>

* <name>hadoop.proxyuser.hadoop.groups</name>*

* <value>*</value>*

</property>

 

hdfs-site.xml 

 

<property>

    <name> dfs.namenode.name.dir</name>

    <value>/home/hadoop/data_hadoop/hdfs/name</value>

    <description>namenode上囤积hdfs名字空间元数据
</description>

</property>

<property>

    <name> dfs.datanode.data.dir</name>

    <value>/home/hadoop/data_hadoop/hdfs/data</value>

   
<description>datanode上数据块的情理存储地点</description>

</property>

<property>

    <name>dfs.replication</name>

    <value>2</value>

   
<description>副本个数,配置默认是3,应小于datanode机器数量</description>

</property>

<property>

 <name>dfs.namenode.rpc-address</name>

 <value>bigdata.lzf:9001</value>

 <description>RPC address that handles all clients
requests。有人说需要跟fs.defaultFS 一样捧口</description>

</property>

<property>
 <name>dfs.namenode.http-address</name>
 <value>bigdata.lzf:50070</value>
 <description>
 The address and the base port where the dfs namenode web ui will listen
on.
 If the port is 0 then the server will start on a free port.
 </description>
</property>
<property>
 <name>dfs.namenode.secondary.http-address</name>
 <value>bigdata.dn1.lzf:50090</value>
</property>

 

slaves

#生些许独节点

bigdata.lzf

bigdata.dn1.lzf

 

yarn-site.xml

#resourceManager,nodemanager

<configuration>

 <property>
   <name>yarn.resourcemanager.address</name>
   <value>bigdata.dn1.lzf:8032</value>
   <description>资源管理器地址</description>
 </property>

<property>

        <name>yarn.resourcemanager.hostname</name>

        <value>bigdata.dn1.lzf</value>

        <description>资源管理器节点名称 </description>

</property>

<property>

        <name>yarn.resourcemanager.scheduler.class</name>

        <value>
org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.CapacityScheduler</value>

        <description>调度器类 </description>

</property>

<property>

        <name>yarn.nodemanager.aux-services</name>

        <value>mapreduce_shuffle</value>

</property>

<property>

        <name>yarn.resourcemanager.webapp.address</name>

        <value>bigdata.dn1.lzf:8099</value>

        <description>用于管理集群的资源,可以通过浏览器访问
</description>

</property>

<property>

        <name>yarn.nodemanager.webapp.address</name>

        <value>bigdata.dn1.lzf:8042</value>

        <description>用于管理节点,可以透过浏览器访问
</description>

</property>

 

</configuration>

 

3.初始化

 

每当2节触及达到推行

hdfs namenode -format 

非欲履行hdfs secondarynamenode -format

 

 

4.启动

 

4.1启动dfs

当主节点2行执行start-dfs.sh即可:

[hadoop@bigdata sbin]$ ./start-dfs.sh

17/07/21 17:28:44 DEBUG util.NativeCodeLoader: Trying to load the
custom-built native-hadoop library…
17/07/21 17:28:44 DEBUG util.NativeCodeLoader: Loaded the native-hadoop
library
Starting namenodes on [bigdata.lzf]
bigdata.lzf: starting namenode, logging to
/home/hadoop/hadoop-2.8.0/logs/hadoop-hadoop-namenode-bigdata.lzf.out
bigdata.dn1.lzf: starting datanode, logging to
/home/hadoop/hadoop-2.8.0/logs/hadoop-hadoop-datanode-bigdata.dn1.lzf.out
bigdata.lzf: starting datanode, logging to
/home/hadoop/hadoop-2.8.0/logs/hadoop-hadoop-datanode-bigdata.lzf.out
Starting secondary namenodes [bigdata.dn1.lzf]
bigdata.dn1.lzf: starting secondarynamenode, logging to
/home/hadoop/hadoop-2.8.0/logs/hadoop-hadoop-secondarynamenode-bigdata.dn1.lzf.out
17/07/21 17:29:05 DEBUG util.NativeCodeLoader: Trying to load the
custom-built native-hadoop library…
17/07/21 17:29:05 DEBUG util.NativeCodeLoader: Loaded the native-hadoop
library

 

接下来可以于2,3直达应用jps,分别可以看以下内容 

5620 Jps
5239 NameNode
5373 DataNode


4069 DataNode
4261 Jps
4167 SecondaryNameNode

 

4.2 启动yarn

下一场在节点3达举办:start-yarn.sh

注意:3节触及才是部署也资源管理器节点的,所以不得不从3起步,而非是由2

译注: 也许下的本不待如此了!

        
如若当2达成推行start-yarn.sh也足以启动yarn集群,但rm就是2,而未是3了。

 

5.测试

 

成立目录

[hadoop@bigdata sbin]$ hadoop fs -mkdir /tmp
17/07/21 17:33:03 DEBUG util.NativeCodeLoader: Trying to load the
custom-built native-hadoop library…
17/07/21 17:33:03 DEBUG util.NativeCodeLoader: Loaded the native-hadoop
library
[hadoop@bigdata sbin]$ hadoop fs -ls /
17/07/21 17:33:16 DEBUG util.NativeCodeLoader: Trying to load the
custom-built native-hadoop library…
17/07/21 17:33:16 DEBUG util.NativeCodeLoader: Loaded the native-hadoop
library
Found 1 items
drwxr-xr-x   – hadoop supergroup          0 2017-07-21 17:33 /tmp


上传文件

[hadoop@bigdata sbin]$ hadoop fs -copyFromLocal -f  start-dfs.sh 
hdfs://bigdata.lzf:9001/tmp
17/07/21 17:35:29 DEBUG util.NativeCodeLoader: Trying to load the
custom-built native-hadoop library…
17/07/21 17:35:29 DEBUG util.NativeCodeLoader: Loaded the native-hadoop
library

 

查看

是是以3达标实施之,前面创制目录和上传是在2尽之。

[hadoop@bigdata ~]$ hadoop fs -tail hdfs://bigdata.lzf:9001/tmp/start-dfs.sh
17/07/21 17:41:18 DEBUG util.NativeCodeLoader: Trying to load the custom-built native-hadoop library...
17/07/21 17:41:18 DEBUG util.NativeCodeLoader: Loaded the native-hadoop library
----------------------------------------
# quorumjournal nodes (if any)

SHARED_EDITS_DIR=$($HADOOP_PREFIX/bin/hdfs getconf -confKey dfs.namenode.shared.edits.dir 2>&-)

case "$SHARED_EDITS_DIR" in
qjournal://*)
  JOURNAL_NODES=$(echo "$SHARED_EDITS_DIR" | sed 's,qjournal://\([^/]*\)/.*,\1,g; s/;/ /g; s/:[0-9]*//g')
  echo "Starting journal nodes [$JOURNAL_NODES]"
  "$HADOOP_PREFIX/sbin/hadoop-daemons.sh" \
      --config "$HADOOP_CONF_DIR" \
      --hostnames "$JOURNAL_NODES" \
      --script "$bin/hdfs" start journalnode ;;
esac

#---------------------------------------------------------
# ZK Failover controllers, if auto-HA is enabled
AUTOHA_ENABLED=$($HADOOP_PREFIX/bin/hdfs getconf -confKey dfs.ha.automatic-failover.enabled)
if [ "$(echo "$AUTOHA_ENABLED" | tr A-Z a-z)" = "true" ]; then
  echo "Starting ZK Failover Controllers on NN hosts [$NAMENODES]"
  "$HADOOP_PREFIX/sbin/hadoop-daemons.sh" \
    --config "$HADOOP_CONF_DIR" \
    --hostnames "$NAMENODES" \
    --script "$bin/hdfs" start zkfc
fi

# eof

 

http访问 

 

50070  默认是造访集众多中之数码节点

http://bigdata.lzf:50070/explorer.html\#/tmp  可以一向看
hdfs://bigdata.lzf:9001/tmp以的文书。

50075 用户访问具体的数据节点

http://bigdata.lzf:50075,http://bigdata.dn1.lzf:50075

 

hadoop 的 wordcount 测试

 

hadoop jar
/home/hadoop/hadoop-2.8.0/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.8.0.jar
grep hdfs://bigdata.lzf:9001/tmp/hadoop-hadoop-namenode-bigdata.lzf.log 
output ‘(lzf)’

17/07/24 11:44:04 INFO mapreduce.Job: Counters: 29
    File System Counters
        FILE: Number of bytes read=604458
        FILE: Number of bytes written=1252547
        FILE: Number of read operations=0
        FILE: Number of large read operations=0
        FILE: Number of write operations=0
        HDFS: Number of bytes read=1519982
        HDFS: Number of bytes written=0
        HDFS: Number of read operations=12
        HDFS: Number of large read operations=0
        HDFS: Number of write operations=5
    Map-Reduce Framework
        Combine input records=0
        Combine output records=0
        Reduce input groups=0
        Reduce shuffle bytes=0
        Reduce input records=0
        Reduce output records=0
        Spilled Records=0
        Shuffled Maps =0
        Failed Shuffles=0
        Merged Map outputs=0
        GC time elapsed (ms)=0
        Total committed heap usage (bytes)=169222144
    Shuffle Errors
        BAD_ID=0
        CONNECTION=0
        IO_ERROR=0
        WRONG_LENGTH=0
        WRONG_MAP=0
        WRONG_REDUCE=0
    File Output Format Counters 
        Bytes Written=0

 依据测试,输出的情会放在/user/hadoop/output目录下,事先不创制为无关联。

 

6.遇题目

6.1 ip地址变更的题目  

出于中的主节点原来是负责了富有的角色,而且ip地址与现有的为殊。

下,重新格式化之后,并不曾删除掉原来的首任数据目录。

故此,只可以手动删除掉

rm -Rf   /home/hadoop/data_hadoop/hdfs/name
rm -Rf   /home/hadoop/data_hadoop/hdfs/data
rm -Rf   /home/hadoop/data_hadoop/hdfs/tmp
mkdir -p  /home/hadoop/data_hadoop/hdfs/name
mkdir -p   /home/hadoop/data_hadoop/hdfs/data
mkdir -p /home/hadoop/data_hadoop/tmp

 

6.2 区分namenode和secondarynamenode 的关键

hdfs-site.xml中改变配置如下

<property>
 <name>dfs.namenode.http-address</name>
 <value>bigdata.lzf:50070</value>
 <description>
 The address and the base port where the dfs namenode web ui will listen
on.
 If the port is 0 then the server will start on a free port.
 </description>
</property>
<property>
 <name>dfs.namenode.secondary.http-address</name>
 <value>bigdata.dn1.lzf:50090</value>
</property> 

透过是极端简便易行的布,了然hadoop中集群的略工作原理。

 

继往开来之钻研,包括:

1.搭数据节点

2.搭建ha-hadoop集群

3.搭建基于yarn的presto集群

发表评论

电子邮件地址不会被公开。 必填项已用*标注