hadoop峰会速记1:Hadoop on Docker规模部署第一次实现一键配置

vim /etc/hosts,host音讯如下:

著作转自:2015 hadoop技术峰会演说速记1:Hadoop on
Docker规模部署第一次实现一键布置

时下系统状态

眼前在Hadoop技术的腾飞中,咋样把Docker技术应用于Hadoop平台的确立,尤其是对此Hadoop
on
Docker规模部署问题的化解,一贯是一个饱受关注的技能难点。由此,本次的中国Hadoop技术峰会中,第一次实现一键范围部署的Hadoop
on Docker及其DEMO演示,也变成了大会中的一大热点话题。
傍晚两点,星环首席工程师吕侣在Hadoop系统架构分论坛公布了题为《Hadoop on
Docker-from development to
production》的讲演,显示了星环科技自主研发的成品Transwarp operating
system(TOS)在Hadoop on Docker领域做出的优化与突破。
在过去,Hadoop on
Docker大数据平台的布局,只在单机处境下实现过,而且经过繁琐,耗时很长。即使看似Pivotal方案也落实过一键部署,然则单机的小框框部署对于Hadoop这样的大数据平台并不富有实际意义。(如下图所示)往日,具有真正使用意义的多机部署也一贯不真正贯彻过。那么,如何借助Docker作为优化手段,在周边多机器的情景下举办一键部署,是当前Hadoop系统架构方面最受关注的技巧热点之一。

Hadoop单机形式验证

所谓的当地格局:在运作程序的时候,比如wordcount是在本土磁盘运行的

到这一步时,单机格局已经配备完毕,大家可以跑一个小程序验证下。

  • 大家先切换来Hadoop目录,创设一个input文件夹,并拷贝一些文本到该公文夹中。

cd $HADOOP_HOME
mkdir input
cp etc/hadoop/*.xml input
  • 施行下hadoop自带的wordcound小程序验证

hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.0.jar wordcount input output
  • 翻开执行结果

cat output/*

此地就不演示运算结果了,一般也不会出哪些问题,我们继承部署伪分布模式。

Hadoop on Docker一键部署DEMO
这是境内第一次到位基于Docker实现的Hadoop平台大规模一键部署,也是首先次到位可以选择于落地方案的、具有实际意义的配备简化。在此之上,大规模部署的时间也在TOS的辅助下达到了八分钟之内,能够说是简洁与高速并存的优化与技术突破。Transwarp
Operation System
(TOS)统一调度系列容器和用户容器,分配所有节点包括CPU/内存/磁盘在内的各个资源。应用可以由此点名TOS调度策略来影响最后的调度结果。
享有TDH组件都独立通过自动化CI生成,内部的二进制代码和环境变量在运作时不可改。镜像附带默认配置,也可以由此环境变量或者挂载配置卷定制。
镜像数据分离。将数据保持在数额卷中,当需要更新镜像时,可以一向杀掉老容器,将数据卷挂载在新容器中復苏服务。
联合提供集群级此外DNS、日志收集和监督模块,并维持那几个模块的HA。
调度统计节点时收获有关数据的职位,尽量使用当地资源。容器和容器知晓相对的地点关系(如在平等主机上),以便利用当地读写特性。
和事先的三种配备情势对待,星环的安排通过引入TOS,将资源虚拟化、平台化,不但解决了Hadoop本身的部署,并且还足以在同一个集群中,同时安排其他非Hadoop的施用,比如MySQL和Redis。并且在保安和提高历程中,可以透过简单替换镜像来成功,并且经过引入灰度升级,能够将线上系统的更换风险降到最低。
可以看来,TOS帮助个体集群与公有云,实现一键安排联合流程,在对Docker的襄助上尤为系数,减小性能损耗。是笔者在现有IT市场合来看的最周密的Hadoop
on Docker解决方案。

Hadoop安装

+ 解压并活动文件到hadoop文件夹

su root
cd /
tar -zxvf hadoop-2.6.0.tar.gz
mkdir hadoop
mv hadoop-2.6.0 hadoop
  • 系统环境变量

export HADOOP_HOME=/hadoop/hadoop-2.6.0
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
  • Hadoop环境变量

cd /hadoop/hadoop-2.6.0/etc/hadoop
vi hadoop-env.sh

修改:

export JAVA_HOME=/usr/jdk1.7.0_80

千古,几百台规模集群的Hadoop on
Docker的部署,从未有人实现过,这也是Hadoop on
Docker难以落地应用的根本原因之一。而一键规模化部署则更加绕过了Hadoop on
Docker在市场的适应期,降低了设置和接纳的资本,使集团用户可以更早更快地应用该技术,是在Hadoop技术提升和放大中重要的一个技术突破。
在促成规模化部署的前提之下,吕侣首先将Hadoop on
Docker的研发目的一定于简化部署、帮忙大数据选择与一般应用以及收缩性能损耗等几方面,在显然了研发方向之后提议了过去有的方案的毛病在于单机化。随即他来得了星环科技产品TOS的新星演示,可以看出TOS在支撑广大部署的前提下促成了“一键部署”流程,平均部署时间如若七分半。同时,吕侣也提议了TOS替代YARN的必要性在于裸机部署和资源隔离问题两下面。(下图为****TDH一键部署界面)

题材求证:

WARN util.NativeCodeLoader: Unable to load native-hadoop library for
your platform… using builtin-java classes where applicable

网上查了查,很多解释算得hadoop-2.6.0.tar.gz安装包是在32位机器上编译的,64位的机器加载本地库.so文件时出错。可自己找了下,发现官网上下载的安装包实际上就是64位的。预计有可能是某些系统不帮助地点库吧,**
那么些不影响使用 **,我们可以无视。

yarn配置

或者切换路径到/hadoop/hadoop-2.6.0/etc/hadoop

  • vi mapred-site.xml
    此地需要专注,2.6.0并不曾提供mapred-site.xml文件,而是提供了一个mapred-site.xml.template文件,那里大家需要将扩展名中的.template去掉

mv mapred-site.xml.template mapred-site.xml

随后修改文件内容

<configuration>

<!--
<property>
<name>mapred.job.tracker</name>
<value>master:9001</value>
</property>
-->

<property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>

</configuration>

此处还要注意下,假若不想程序运行在yarn上,还需要将template后缀加上,要不会运行失利。

  • vi yarn-site.xml

<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>

<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>

下边如故印证运行wordcount验证下:

  • 先停止集群

stop-all.sh
  • 开行集群

start-dfs.sh
start-yarn.sh
  • 查看hadoop运行情形

hdfs dfsadmin -report

运作报告

启航成功后也得以在hadoop进程管理页面中查看,浏览器输入localhost:8088

hadoop进程管理页面

在此处我们得以看到hadoop运行的次序详细音信,由于如今还一贯不实施其它程序,所以那边怎么都没突显。

  • 在hdfs上创建input文件夹

hdfs dfs -mkdir -p input
  • 拷贝一些地面文件到hdfs的input文件夹中,执行路径切换来/hadoop/hadoop-2.6.0

hdfs dfs -put etc/hadoop input
  • 执行wordcount程序

hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.0.jar wordcount input output

执行过程如图:

施行进程

实施成功后,控制Charlotte会展现 Job job_1452520008224_0001 completed
successfully。

  • 查阅结果

hdfs dfs -cat output/*

词频总计结果,部分截图(这多少个结果和你input文件夹内容有关)

wordcount结果展现

您可以将结果从hdfs内拷贝到当前路线中

hdfs dfs -get output output

hdfs常用命令,可以详细本人另一篇作品
《常用HDFS命令》

到此,Hadoop单机形式和伪分布式形式已经介绍完。

Hadoop伪分布形式

切换路径到/hadoop/hadoop-2.6.0/etc/hadoop

  • vi core-site.xml

<configuration>

<property>
<name>hadoop.tmp.dir</name>
<value>/hadoop/tmp</value>
</property>

<!--
  接收Client连接的RPC端口,用于获取文件系统metadata信息。
-->
<property>
<name>fs.default.name</name>
<value>hdfs://master:9000</value>
</property>

</configuration>
  • vi hfs-site.xml

<configuration>
<!--
  备份只有一份。
-->
<property>
<name>dfs.replication</name>
<value>1</value>
</property>

<property>
<name>dfs.namenode.name.dir</name>
<value>/hadoop/dfs/name</value>
</property>

<property>
<name>dfs.datannode.data.dir</name>
<value>/hadoop/dfs/data</value>
</property>
</configuration>

一旦不想让程序运行在yarn上,到此截止配置已经完成,大家得以表明下。
首先我们需要成立hadoop临时文件夹和hdfs文件夹

cd /hadoop
mkdir tmp
mkdir dfs/{name,data}
  • 格式化namenode

hdfs namenode -format
  • 启动集群

start-dfs.sh

开行后大家可以通过管制页面上看出相应的音讯,显示如下页面注明启动成功。
浏览器输入:localhost:50070

NameNode Information

自然,我们得以运作下wordcount验证下(方法同yarn部分)

127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
10.211.55.150 master
系统环境:
操作系统:CentOS 6.5
Hadoop:2.6.0

为了有利于起见,打印当前系统状态

准备干活

  1. 安装idk 1.7
  2. 配备su命令免密码,详见我的另一篇随笔《免密码使用sudo和su》
    以下流程有些步骤必须需要切换来root权限履行,为了有利于描述,后续所有手续都在root权限下操作
  3. 安排ssh免密码登录

ssh-keygen -t rsa -P ""  //然后一直回车即可
cat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys

部署完成后得以采纳ssh localhost测试下是否配备成功

  1. 下载hadoop2.6.0
    apache官网下载地址

发表评论

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