Hadoop框架基础(一)

发布时间:2018-09-12  栏目:w88优德官网电脑版  评论:0 Comments

** Hadoop框架基础(一)

上学一个初的东西,传统而言也,总好漫无目的的扯来扯去,比如扯扯发展史,扯扯作者是何许人也,而我当这些事物对刚刚起接触,并因支付为目的学者是没有什么帮助的,反而为人分了心头,比如你玩LOL的当儿,去玩某个英雄之时光,一般你是免会见先行押无畏之故事背景介绍的,而是读读技能介绍(技能介绍类似于付出文档),直接上线就是关联,扔几独技术,发现,嘿?这大胆小意思,用之多矣,才见面生出或失掉探望英雄之背景故事。(不破你是一个纯粹的完善情怀主义者)

好,那么下面我就是被大家简单的下结论一下业内之开场内容。

读书内容:Hadoop框架

框架源码:Java

框架的大:Doug Cutting

时下保障:Apache基金会

主干用途:HDFS和MapReduce。HDFS为海量的多寡提供了仓储,MapReduce为海量的数量提供了算。

(不足够严谨的简便说明下:把坏文件数据分布存储在多个电脑及(因为若同一大微机抱不下),然后于多宝电脑及进行数据解析(因为你同样贵电脑计量的迟滞),最终整并发结果)

Hadoop产生根源Google的片舆论(大陆请用VPN代理查阅):

GoogleCluster: http://research.google.com/archive/googlecluster.html

Chubby:http://labs.google.com/papers/chubby.html

GFS:http://labs.google.com/papers/gfs.html

BigTable:http://labs.google.com/papers/bigtable.html

MapReduce:http://labs.google.com/papers/mapreduce.html

乘机提高,Apache上虽涌出了一个好像之化解方案,分别对应:

Chubby–>ZooKeeper

GFS–>HDFS

BigTable–>Hbase

MapReduce–>Hadoop

如上内容主导就是是介绍框架时扯来扯去的中坚,作者是十分了得的(这不丢话么)。在攻读过程中,如果您渐渐对这些进步历史,作者,故事背景感兴趣了,你可重翻有关材料,毕竟学无止境。

** 准备干活

有关下载:

JDK:链接:http://pan.baidu.com/s/1skOjRE9 密码:2s0p

Hadoop:链接:http://pan.baidu.com/s/1mhB2Rv6 密码:6qxi

Eclipse:链接:http://pan.baidu.com/s/1nvc5izR 密码:ezy8

上述下载你啊得自动下载,通过产品所对应之官网。

创建连锁目录:

当root用户下,进入/opt/目录,在拖欠目录下创办两独文本夹

mkdir softwares/:该目录用于存放各种软件设置包

mkdir modules/:该目录用于存放软件之安装目录

改目录所属:

因softwares和modules这半单目录也root用户所创建,所以所有者/组都为root,而我辈一般采取的操作用户是普通用户,所以这时候我们用修改该少个目录的所有者/组,使用命令:

chown 所有者:所属组 /opt/modules/

chown 所有者:所属组 /opt/softwares/

例如,我这里:

chown z:z /opt/modules/

传送下载后的文本及虚拟机系统

成功上述步骤后,使用FileZilla
Client工具(如果忘记怎么连接,请查看前几乎节省文化),连接成后,如图:

此刻双击红框部分,如达到图所示,找到opt目录,之后您就可以看到零星独你创造的目:

然后,把软件上传到softwares下,直接由windows中拖入即可直达污染,完成后使图:

本人这边上传的发其他软件,其实这才待框中部分的3单即可

现在拿这3独片各自解压到modules中,如图(只需要小心红框内之情节)

解压命令:

tar -zxf hadoop-2.5.0.tar.gz -C /opt/modules/

tar -zxf hadoop-2.5.0.tar.gz -C /opt/modules/

即3个目录就解压

配备环境变量

配备JDK的环境变量,hadoop的环境变量暂时未欲配了

编辑profile文件,使用命令:

vi /etc/profile,添加如图所示内容:

$意为援,冒号为分隔符

** Hadoop宏观认知

Hadoop项目要包括以下四独模块

Hadoop Common:

啊其它的Hadoop模块提供基础设备

Hadoop HDFS:

分布式文件系统

Hadoop MapReduce:

分布式离线并行计算框架

Hadoop YARN:

任务调度与资源管理框架

此处因篇幅问题,我们不得不开有基础理解,更深刻之开掘需要读者自行钻研(因为向下深究所需篇幅,可以独自再次起一个专题)

** HDFS架构

总结:

1、一个Namenode节点和多单Datanode节点组成

2、Namenode是一个主导服务器,负责管理文件系统的namespace和客户端对文件的看。Datanode在联谊众多中貌似是一个节点一个,负责管理节点上她附带的积存。通俗来讲,datanode就是用来存储某个大文件被拆分后底一个一个底有些文件。

3、一个文书分为一个或多只block(数据块,数据块默认大小128M),这些block存储于Datanode集合里。

4、一般而言,一宝机械跑一个独门的Namenode节点,集众多被之任何机器各走一个Datanode实例(当然为生一个玉机械跑多单Datanode)。

5、Namenode中存放的产生头数据(Metadata),比如:映射关系表(哪些数据块block存储在了哪些datanode节点中)

** YARN架构

总结:

yarn主要承担任务调度和资源管理的,比如,集众多中,哪些机器还剩余多少CPU多少内存可用,集众多被,还有哪些机器可以就此来拍卖新的任务等等。

1、ResourceManager(RM):主要吸收客户端任务要,接收和监督NodeManager(NM)的资源情况汇报,负责资源的分红与调度,启动暨监控ApplicationMaster(AM)。

2、NodeManager:主要是节点上之资源管理,启动Container运行task计算,上报资源、负责把container情况为ResourceManager,把任务处理状态于ApplicationMaster。

3、ApplicationMaster:主要是单科Application(Job)的task管理暨调度,向ResourceManager进行资源的报名,向NodeManager发出launch
Container指令,接收NodeManager的task处理状态信息。

yarn工作流程:

1、client
submit提交一个Job到ResourceManager,进入ResourceManager中的Scheduler队列供调度

2、ResourceManager根据NodeManager汇报的资源状况(NodeManager会定时报告资源及container使用情况),请求一个老少咸宜的NodeManager
launch container,在该NodeManager所在机器开动运行ApplicationMaster

3、ApplicationMaster启动后,注册及ResourceManager上,以便client可以查到ApplicationMaster的信息,便于client直接与ApplicationMaster通信

4、ApplicationMaster启动后,根据Job相关情况,会和ResourceManager协商申请container资源

5、ResourceManager分配给ApplicationMaster
container资源后,根据container的信息,向对应的NodeManager请求launch
container

6、NodeManager启动container运行task,运行过程中向ApplicationMaster汇报进度状态信息,同时NodeManager也会定时的向ResourceManager汇报container的使状况。

7、在application(job)执行过程中,client可以同ApplicationMaster通信,获取application相关的快和状态信息。

8、在application(job)完成后,ApplicationMaster通知ResourceManager清除自己之相干信息(即AM自己关闭自己),并关闭,释放自己占据的container。

尖叫提示:Container为何物?

Container:

1、Container是yarn框架中对此资源的空洞描述,它包裹了有节点上点滴的资源(CPU与内存),你可清楚呢Container是一个Java类,里面封装了对资源的一致系列描述,还包裹了目前Job任务运行的一些代码。

2、Container由ApplicationMaster向ResourceManager申请的,由ResouceManager中之资源调度器异步分配给ApplicationMaster

3、Container的运作是由于ApplicationMaster向资源随处的NodeManager发起的(即运行任务)

Container分类:

1、运行用户指定任务(ApplicationMaster)的Container:

立即是由ResourceManager(向内的资源调度器)申请以及开行之,用户提交应用程序时,可指定唯一的ApplicationMaster所需的资源;

2、运行各任务之Container:

当时是由于ApplicationMaster向ResourceManager申请的,并由ApplicationMaster与NodeManager通信为启用该Container

如上两接近Container可能在随意节点上,它们的职一般而言是随意的,即ApplicationMaster可能与它们管理的职责运行于一个节点上。

有关术语知识点:

(本地松弛:是靠如果某台NodeManager所能提供的Container不足,则于本台机架寻找另外一样雅机器是否可供,如果本台机架所有机器还非可知提供所急需Container,则易一令机架找寻)

(机架感知:有趣味之同桌请查阅相关博客:http://www.cnblogs.com/ggjucheng/archive/2013/01/03/2843015.html,此处不再赘述)

** Hadoop基础配置

当展开Hadoop配置的早晚,我们有时候用借助官方文档,毕竟那基本上的配备属性,不是会通笔记下来的

官文档链接:http://hadoop.apache.org/docs/r2.5.2/

每当咱们的案例被,Hadoop的布置文档位于:

/opt/modules/hadoop-2.5.0/etc/hadoop

上该目录,查看该目录文件结构要图:

咱们安排Hadoop就是布这其中的xml文件与sh脚本文件,如果采用vi编辑器配置来说,可能无极端习惯?那么连下去我们聊怎么使用Notepad++来配置(没有该软件之请自行下载)

打开Notepad++,如图:

如图所示3单地方要留意:

1、红框:是否打开NppFTP视图,即右侧边的视图

2、蓝框:点击后,选择“Profile Settings”弹来绿框内容

3、绿框:点击Add
new,我立马边添加了一个z01,hostname主机名吧z01,port端口号为:22,Username登录系统的用户为z,Password密码也而设置的欠用户的密码

安排好后,如下图,点击框内按钮,连接登录:

登录成功使图:

登到/opt/modules/hadoop-2.5.0/etc/hadoop目录,即可使Notepad++来编辑文本内容了,方便多矣~

部署标准启幕

1、首先修改3个.sh文件中的JDK路径

拖欠3只公文分别是:

hadoop-env.sh

mapred-env.sh

yarn-env.sh

修改内容吧:

export JAVA_HOME=/opt/modules/jdk1.8.0_111,如图:

改后记得保存

2、hdfs配置

* core-site.xml

法定文档说明:http://hadoop.apache.org/docs/r2.5.2/hadoop-project-dist/hadoop-common/core-default.xml

修改后记得保存

性解释:

fs.defaultFS:HDFS集群访问入口地址,其中z01也得变换成时Linux的本机ip,如果这时候您还并未于Linux中设置主机名映射,请参见之前Linux中之知识点进行安装即可。

hadoop.tmp.dir:数据存放路径

* hdfs-site.xml

官文档说明:http://hadoop.apache.org/docs/r2.5.2/hadoop-project-dist/hadoop-hdfs/hdfs-default.xml

改后记忆保存

特性解释:

dfs.replication:数据块副本数,默认为3。

* slaves

宣示哪些服务器是datanode,每行一个主机名即可。

本案例我们只有设置1个,即眼前虚拟机机器

3、yarn配置

* yarn-site.xml

合法文档:http://hadoop.apache.org/docs/r2.5.2/hadoop-yarn/hadoop-yarn-common/yarn-default.xml

属性解释:

yarn.nodemanager.aux-services:NodeManager上运行的隶属服务。需配置成mapreduce_shuffle,才可运行MapReduce程序

yarn.resourcemanager.hostname:resourcemanager的主机名,即哪一样尊主机当做ResourceManager

yarn.log-aggregation-enable:是否打开日志聚合功能

yarn.log-aggregation.retain-seconds:在HDFS上聚集之日记最多保留多长时间,单位:秒,86400一定给24时

其他属性:

yarn.nodemanager.resource.memory-mb:表示该节点上yarn可运的物理内存总量,默认是8192MB,如果该节点机器的内存不足8G,则用调小这个价值,yarn不见面智能的探测节点的物理内存总量。

yarn.nodemanager.vmem-pmem-ratio:任务每使用1MB物理内存,最多只是使的虚拟内存量,默认为2.1。

yarn.nodemanager.pmem-check-enabled:是否启动一个邑检查每个任务正用的物理内存量,如果任务超出分配值,则直接用其杀掉,默认值为true。

yarn.nodemanager.vmem-check-enabled:是否启动一个线程检查每个任务在以的虚拟内存量,如果任务超出分配值,则一直以那个杀掉,默认值为true。

yarn.scheduler.minimum-allocation-mb:单个任务而报名的最少物理内存量,默认是1024MB,如果一个职责申请之大体内存量少于该值,则对应的价改呢这累。

yarn.scheduler.maximum-allocation-mb:单个任务而报名的极度多物理内存量,默认是8192MB。

4、map-reduce配置

* mapred-site.xml

官文档:http://hadoop.apache.org/docs/r2.5.2/hadoop-mapreduce-client/hadoop-mapreduce-client-core/mapred-default.xml

性能解释:

mapreduce.framework.name:设置运行MapReduce任务的框架

mapreduce.jobhistory.address:自带了一个历史服务器,可以透过历史服务器查看已经运行了的Mapreduce作业记录,比如用了聊只Map、用了不怎么个Reduce、作业提交时、作业启动时、作业完成时相当消息。默认情况下,Hadoop历史服务器是尚未启动的。配置该地址后,启动服务就是可以通过Web
UI来查阅具体用详情了。

mapreduce.jobhistory.webapp.address:web app客户端的拜访入口

** 启动服务

开行过程分成如下几单过程:

* 格式化hdfs

由当下主机第一不行下hdfs系统,所以采取前用先格式化

进入到/opt/modules/hadoop-2.5.0目录下

使用命令(#表示root用户下输入,$代表普通用户下输入,输入指令时注意不苟加以#或$,此处写上单吗注明)

$ bin/hdfs namenode -format,成功格式化后如若图:

* 启动hdfs相关服务

下命令:

$ sbin/hadoop-daemon.sh start namenode:开启nodenode节点服务

$ sbin/hadoop-daemon.sh start datanode:开启datanode节点服务

末段通过jps命令来查看过程是否启动成功

如图:

此刻可以透过浏览器成访问hdfs管理平台:http://z01:50070,如图:

* 启动yarn相关服务

运命令:

$ sbin/yarn-daemon.sh start resourcemanager:开启resourcemanager

$ sbin/yarn-daemon.sh start nodemanager:开启nodemanager

就后用jps检查是否启动成功,如图:

此刻得以通过浏览器成访问yarn管理平台:http://z01:8088,如图:

$ sbin/mr-jobhistory-daemon.sh start
historyserver:开启historyserver服务,如图:

OK,所有的劳务都曾准备得了,下面我们来开一个粗测试。

** 测试

经文案例:官方Demo单词统计

我们下要举行的一个案例是法定的demo,用于统计单词出现的效率,首先我们需要创造一个文档,里面来多英文单词,然后把这个文档上传到hdfs系统中,等待mapreduce计算,最后查看结果。

1、创建包含几独词之words.txt文档,注意单词用空格或tab分割,创建位置为:/opt/modules/hadoop-2.5.0,如图:

2、在hdfs系统中开创/input/目录

动命令:

$ bin/hdfs dfs -mkdir /input,如图:

3、w88优德官网电脑版上传words.txt文档到该目录下

采取命令:

$ bin/hdfs dfs -put words.txt /input,如图:

4、查看已上传的文书内容

利用命令:

$ bin/hdfs dfs -cat /input/words.txt,如图:

尖叫提示:当然bin/hdfs dfs惨遭还有部分另命令,读者可经输入$
bin/hdfs dfs来查下方法,如图:

5、运行任务

以命令:

$ bin/yarn jar
share/hadoop/mapreduce/hadoop-mapreduce-examples-2.5.0.jar wordcount
/input/ /output/

解释:

/input/:hdfs中之门路,表示输入路径

/output/:hdfs中的途径,表示输出路径(统计结果会当是目录下)

运行后,会并发如下内容:

专注红框中内容之变更

此时,任务就施行了,下面我们来拘禁一样圈行之结果

采取命令:

$ bin/hdfs dfs -cat /output/par*
:查看output这个输出目录下的保有坐par开头的公文内容(为何是par开头,稍后解释)

如图:

假若图,单词出现频率都出了,下面我们来拘禁一下web app中的变通。

6、查看web app:

hdfs(http://z01:50070):

点击红框内容,选择“Browse the file
system”,在摸框中输入:/,点击GO,如图:

在这个公可视而的hdfs系统中的目录结构,分别点开input和output,我们来瞟一眼:

只顾此时output中红框内容,这就算说了胡我们刚查看结果的时候,要翻的是par开头的文件,因为出口结果的默认文件称就是是此。

yarn(http://z01:8088):

脚我们还来瞧yarn平台的情节变更,刷新yarn平台后,你会意识差不多矣扳平修内容:

点击history,我们进入瞟一眼?如图:

里头展示了职责的一对表征,比如开时,map和reduce数量,耗时,状态等等。

** 总结

旋即即是hadoop平台的核心搭建,望对而具备援~掌声~(收!)

私家微博:http://weibo.com/seal13

QQ大数量技术交流群(广告勿入):476966007

下一节:Hadoop框架基础(二)

留下评论