使用Cloudera部署,管理Hadoop集群



使用Cloudera部署,管理Hadoop集群

[日期:2016-08-02]

  1. Cloudera介绍

  Hadoop是一个开源项目,ClouderaHadoop进行了商业化,简化了安装过程,并对hadoop做了一些封装。

  根据使用的需要,Hadoop集群要安装很多的组件,一个一个安装配置起来比较麻烦,还要考虑HA,监控等。

  使用Cloudera可以很简单的部署集群,安装需要的组件,并且可以监控和管理集群。

  CDHCloudera公司的发行版,包含HadoopSparkHiveHbase和一些工具等。

  Cloudera有两个版本:

  Cloudera Express 版本是免费的Cloudera Enterprise (60天试用期)需要购买注册码

  2. 安装Cloudrea Manager,部署 Hadoop集群

  2.1 安装方法

  先安装Cloudrea Manager,再通过CloudreaManager在节点上安装Cloudrea Manager客户端,CDH,管理工具。

  官方文档:

  https://www.cloudera.com/documentation/manager/5-1-x.html

  环境需求:

  1. 关闭selinux

  2. 各节点可以SSH登陆

  3. /etc/hosts中添加各节点的主机名

  2.2 安装Cloudrea Manager

  可以通过官方的一键安装包,也可以通过yumrpm安装。

  下面介绍用官方的一键安装包安装。

  本次安装环境为CnetOS 7,在3台机器上进行安装

  test165 (clouderamanager server)

  test166 (clouderamanager agent)

  test167 (clouderamanager agent)

  2.2.1 下载一键安装包

  http://archive.cloudera.com/cm5/installer/latest/

  下载最新版: cloudera-manager-installer.bin

  2.2.2 安装cloudera manager

  在test165上安装cloudera manager server,启动安装向导

  # chmod a+x cloudera-manager-installer.bin

  # ./cloudera-manager-installer.bin

  出现下面画面

http://www.thebigdata.cn/upload/2016-02/1602011004668711.png

  一路选择< Next > < Yes>,开始安装。

http://www.thebigdata.cn/upload/2016-02/160201100466872.png

  需要下载JAVACloudrea Manager,共600MB,根据网络情况,会花一些时间。

  出现下面页面,安装完成。

http://www.thebigdata.cn/upload/2016-02/1602011004668720.png

  安装完成后,访问Cloudrea Manager的页面,用户名密码都是admin

  http://IP或主机名:7180/

http://www.thebigdata.cn/upload/2016-02/1602011004668712.png

  2.2.3 安装cloudera manager agent

  登录Cloudrea Manager页面,选择要安装的版本,本次安装的是Cloudera Express

  选择要安装CDH的主机,用主机名或IP搜索,本次是在三个节点上安装CDH

http://www.thebigdata.cn/upload/2016-02/160201100466875.png

  选择使用Parcel安装,选者CDH版本

http://www.thebigdata.cn/upload/2016-02/1602011004668717.png

  选择安装JDK

http://www.thebigdata.cn/upload/2016-02/160201100466878.png

  提供SSH登录信息

http://www.thebigdata.cn/upload/2016-02/1602011004668721.png

  开始安装JDKcloudera manager agent

http://www.thebigdata.cn/upload/2016-02/1602011004668713.png

  如果安装过程中,下载安装jdk cloudera-manager-agent失败,可以在节点上手动安装,然后再在Cloudrea Manager上继续安装

  # yum -y install jdk

  # yum -y install oracle-j2sdk1.7

  # yum -y install cloudera-manager-agent

  下载Parcel并分配Parcel到各节点

http://www.thebigdata.cn/upload/2016-02/1602011004668718.png

  Parcel1.5G左右,需要一段时间,为了提高安装速度,可以先把包下载到Cloudrea Manager本地,配置本地源

  parcel下载地址:

  http://archive.cloudera.com/cdh5/parcels/5.5.1/

  将下面文件拷贝到/opt/cloudera/parcel-repo/文件夹下

  CDH-5.5.1-1.cdh5.5.1.p0.11-el7.parcel

  CDH-5.5.1-1.cdh5.5.1.p0.11-el7.parcel.sha

  manifest.json

  安装完成后,点继续,到检查结果的页面

http://www.thebigdata.cn/upload/2016-02/160201100466879.png

  检查主机正确性时出现Cloudera 建议将/proc/sys/vm/swappiness 设置为 0。当前设置为 30的警告,进行如下设定

  # vi /etc/sysctl.conf

  vm.swappiness = 0

  # sysctl –p

  检查主机正确性时出现已启用透明大页面,它可能会导致重大的性能问题。的警告,进行如下设定

  echo never >/sys/kernel/mm/transparent_hugepage/enabled

  echo never >/sys/kernel/mm/transparent_hugepage/defrag

  # vi /etc/rc.local

  echo never >/sys/kernel/mm/transparent_hugepage/enabled

  echo never >/sys/kernel/mm/transparent_hugepage/defrag

  2.3 安装集群,包括HadoopYARNHive

  检查主机正确性后,点击完成,进入集群配置

  选择要安装的服务,可以选择组合或自定义

http://www.thebigdata.cn/upload/2016-02/160201100466876.png

  配置各节点间如何分配

http://www.thebigdata.cn/upload/2016-02/1602011004668719.png

  注意: HDFSData Node 最少3个。

  测试数据库连接

http://www.thebigdata.cn/upload/2016-02/160201100466873.png

  开始安装

http://www.thebigdata.cn/upload/2016-02/1602011004668710.png

  3. 确认,测试

  确认集群状态正常,动作正常

  1. 在集群页面确认,所有服务状态正常

http://www.thebigdata.cn/upload/2016-02/160201100466877.png

  2. 在主机页面确认,各节点的Heartbeat状态正常,并且时间小于15

http://www.thebigdata.cn/upload/2016-02/1602011004668714.png

  3. 运行任务进行测试

  登陆到集群中任意一台主机,执行下面任务(Hadoop计算PI值,圆周率)

  后面2个数字参数的含义: 10指的是要运行10map任务,100指的是每个map任务,要投掷多少次,2个参数的乘积就是总的投掷次数。

  # sudo -u hdfs hadoop jar /opt/cloudera/parcels/CDH/lib/hadoop-mapreduce/hadoop-mapreduce-examples.jarpi 10 100

http://www.thebigdata.cn/upload/2016-02/1602011004668715.png

  执行结果如下:

http://www.thebigdata.cn/upload/2016-02/160201100466874.png

  任务的执行情况可以在YARN页面上进行确认

  群集 -> Cluster 1 -> YARN -> 应用程序

http://www.thebigdata.cn/upload/2016-02/1602011004668716.png

  4. 其他

  在Cloudrea Manager页面上,可以向集群中添加/删除主机,添加服务到集群等。

  Cloudrea Manager页面开启了google-analytics,因为从国内访问很慢,可以关闭google-analytics

  管理 -> 设置 -> 其他 -> 允许使用情况数据收集 不选

http://www.thebigdata.cn/upload/2016-02/160201100466871.png

  5. 后记

  工欲善其事必先利其器,管理Hadoop 集群,Cloudrea是个不错的选择。

 

 

 

 

 

 

 

 

 

 

 

 

 

Hadoop管理员的十个最佳实践

 

 

作者张月 发布于 2012831 |注意:GTLC全球技术领导力峰会 推动杰出的技术领导者学习和成长!

前言

接触Hadoop有两年的时间了,期间遇到很多的问题,既有经典的NameNodeJobTracker内存溢出故障,也有HDFS存储小文件问题,既有任务调度问题,也有MapReduce性能问题.遇到的这些问题有些是Hadoop自身的缺陷(短板),有些则是使用的不当。

在解决问题的过程中,有时需要翻源码,有时会向同事、网友请教,遇到复杂问题则会通过mail list向全球各地Hadoop使用者,包括Hadoop CommitterHadoop开发者)求助。在获得很多人帮助后,自己将遇到问题和心得整理成文,希望本文可以对那些焦头烂额的Hadoop新手们有所帮助,少走笔者的弯路。

PS. 本文基于Cloudera CDH 3u4(同Apache Hadoop 1.0)编写。相关推荐配置为官方推荐值或者笔者经验数值,它不是绝对的,可能会因为不同的应用场景和硬件环境有所出入。

相关厂商内容

GMTC全球移动技术大会2016624-25日,北京,点击了解详情

1. 选择Cloudera CDH部署你的Cluster

动机

大多数管理员都是从Apache Hadoop开始学习。笔者最开始也使用Apache版本Hadoop进行开发和部署工作,但接触到Cloudera CDH后,我发现它可以使管理员的工作更简单,不仅可以获得最新的特性和Bug修复,有时也会带来令人惊喜的性能改善。

CDH为什么更好?笔者罗列了以下几点:

  1. CDH基于稳定版Apache Hadoop,并应用了最新Bug修复或者FeaturePatchCloudera常年坚持季度发行Update版本,年度发行Release版本,更新速度比Apache官方快,而且在实际使用过程中CDH表现无比稳定,并没有引入新的问题。
  2. Cloudera官方网站上安装、升级文档详细,省去Google时间。
  3. CDH支持Yum/Apt包,Tar包,RPM包,Cloudera Manager四种方式安装,总有一款适合您。官方网站推荐Yum/Apt方式安装,笔者体会其好处如下:
    1. 联网安装、升级,非常方便。当然你也可以下载rpm包到本地,使用Local Yum方式安装。
    2. 自动下载依赖软件包,比如要安装Hive,则会级联下载、安装Hadoop
    3. Hadoop生态系统包自动匹配,不需要你寻找与当前Hadoop匹配的HbaseFlumeHive等软件,Yum/Apt会根据当前安装Hadoop版本自动寻找匹配版本的软件包,并保证兼容性。
    4. 自动创建相关目录并软链到合适的地方(如conflogs等目录);自动创建hdfs, mapred用户,hdfs用户是HDFS的最高权限用户,mapred用户则负责mapreduce执行过程中相关目录的权限。

推荐指数:★★★

推荐理由:获取最新特性和最新Bug修复;安装维护方便,节省运维时间。

2. Hadoop集群配置与管理

安装和维护Hadoop集群涉及大量的管理工作,包括软件安装,设备管理(crontabiptables等)、配置分发等。

对于小型集群软件分发和节点管理可以使用PDSH这款软件,它可以通过免密钥的SSH将文件分发到目标服务器,以及为一组目标设备发送命令并获得反馈。如果是大型集群或者硬件配置差别很大的集群,推荐使用puppet这样的工具帮助你维护配置文件,或者通过Cloudera ManagerGUI的方式的管理集群(注意:Clodera Manager不是开源软件,免费版最多支持50个节点)。

推荐指数:★★★

推荐理由:提高运维效率

3. 开启SecondaryNameNode

SecondaryNameNode(下称SNN)的主要功能是工作是帮助NameNode(下称NN)合并编辑日志,然后将合并后的镜像文件copyNN,以减少NN重启时合并编辑日志所需的时间。SNN不是NN的热备,但是通过以下步骤可以实现将SNN切换为NN的目的。首先,SNN节点上导入从NN Copy过来的镜像文件,然后修改SNN机器名和IPNN一致,最后重启集群。

特别注意的是SNN的内存配置要与NN一致,因为合并编辑日志的工作需要将metadata加载到内存完成。另外,不仅仅是SNN,任何保存NN镜像的节点都可以通过上面步骤变为NN,只是SNN更适合罢了。

推荐指数:★★★

推荐理由:减少NN重启导致集群服务中断时间;NN节点故障后,SNN充当NN角色

4. 使用GangliaNagios监控你的集群

当运行一个大型mapreduce 作业时,我们通常非常关心该作业对TaskTracker(下称TTCPU、内存、磁盘,以及整个网络的带宽情况,这时候就需要Ganglia这个工具为我们生成相关图表来诊断、分析问题。

Ganglia可以监控集群状态,但当你的服务器down机或者某个TT挂掉,它却无法通知到你,这时我们可以使用Nagios这款告警软件,它可以配置邮件告警和短息告警。通过编写plugins,可以实现自己的监控功能。我们的集群目前做了如下监控:

  1. NameNodeJobTracker内存
  2. DataNodeTaskTracker运行状态
  3. NFS服务状态
  4. 磁盘使用情况
  5. 服务器负载状态

推荐指数:★★★

推荐理由:Ganglia可以帮你记录集群状态,方便诊断问题;Nagios可以再遇到问题时第一时间通知你。

5. 设置好内存至关重要

Hadoop集群安装完毕后,第一件事就是修改bin/hadoop-evn.sh文件设置内存。主流节点内存配置为32GB,典型场景内存设置如下

NN: 15-25 GB

JT2-4GB

DN1-4 GB

TT1-2 GBChild VM 1-2 GB 

集群的使用场景不同相关设置也有不同,如果集群有大量小文件,则要求NN内存至少要20GBDN内存至少2GB

推荐指数:★★★★★

推荐理由:几个组件中NN对内存最为敏感,它有单点问题,直接影响到集群的可用性;JT同样是单点,如果JT内存溢出则所有MapReduceJob都无法正常执行。

6. 管理员玩转MapReduce

Hadoop原生MapReduce需要Java语言编写,但是不会Java也没问题,通过Hadoop streaming框架管理员可以使用PythonShellPerl等语言进行MapReduce开发,但更简单的办法是安装和使用Hive或者Pig

推荐指数:★★★

推荐理由:减少运维时间,快速响应各种ad-hot需求和故障诊断。

7. NameNode HA

前面已经说过,NN是整个集群可能出现的单点故障。

Hadoop通过在hdfs.site.xml文件的dfs.name.dir属性指定保持的metadata路径,如果希望保持到多个路径,可以使用逗号分割配置多个路径。

<property>
    <name>dfs.name.dir</name>
    <value>/data/cache1/dfs/nn,/data/cache2/dfs/nn</value>
</property>

Hadoop官方推荐配置为metadata配置多个path,其中包含一个NFS的路径。但根据笔者一次集群严重故障经验,即使这样,还是导致了所有镜像文件损坏,包括SNN上的镜像文件,所以定期备份一个可用的副本还是很有必要的。

推荐指数:★★★★★

推荐理由:Cloudera3uXApache1.0NN单点问题是大家最头痛问题之一,多些准备,少许痛苦。

8. 使用firewall阻止坏人进入

Hadoop的安全控制非常简单,只包含简单的权限,即只根据客户端用户名,决定使用权限。它的设计原则是:避免好人做错事,但不阻止坏人做坏事

如果你知道某台NNIP和端口,则可以很轻松获取HDFS目录结构,并通过修改本机机器用户名伪装成HDFS文件所属owner,对该文件进行删除操作。

通过配置kerberos,可以实现身份验证。但很多管理员使用更简单有效的办法——通过防火墙对访问IP进行控制。

推荐指数:★★★★★

推荐理由:安全无小事,防范于未然。

9. 开启垃圾箱(trash)功能

动机

我曾经犯下一个错误,在我加班非常累,大脑稍有混乱的时候,不小心删除执行了一个命令“hadoop fs -rmr /xxx/xxx”,没有删除提示,几TB的数据,一下子就没有了。简直让我崩溃,后悔莫及。这时你多希望有个时间机器可以让HDFS恢复到删除前的状态。

trash功能就是这个时间机器, 它默认是关闭的,开启后,被你删除的数据将会mv到操作用户目录的".Trash"文件夹,可以配置超过多长时间,系统自动删除过期数据。这样一来,当操作失误的时候,可以把数据mv回来。开启垃圾箱步骤如下:

vi core-site.xml ,添加下面配置,value单位为分钟。

<property>  
  <name>fs.trash.interval</name>  
  <value>1440</value>  
</property>  

笔者 在CDH3u4下不用重启Namenode就可以生效。开启垃圾箱后,如果希望文件直接被删除,可以在使用删除命令时添加“–skipTrash” 参数,如下:

hadoop fs –rm –skipTrash /xxxx

推荐指数:★★★★★

推荐理由:想要时间机器吗?

10. 去社区寻找帮助

Hadoop是一个非常优秀的开源项目,但它仍存有很多尚未解决的问题,诸如,NN,JT单点问题,JT挂死问题,Block在小文件下汇报效率低下等问题。此时可以通过如下渠道找到可以帮助你的人,笔者几次集群严重故障都是通过Cloudera公司的google user group直接获得几位 committer的帮助。通常前一天提问,第二天就会有反馈。下面是两个能够帮助的你的社区,当然你也可以帮助其他人:

Apache hadoopmail list :

http://hadoop.apache.org/mailing_lists.html

Cloudera CDH google group:

https://groups.google.com/a/cloudera.org/forum/#!forum/cdh-user

推荐指数:★★★★★

推荐理由:没有人比软件作者更熟悉Hadoop本身,去社区求助,帮你解决很多自己无法跨越的问题。

Cloudera简介:

公司是一家Hadoop软件服务公司,提供免费软件CDHCloudera Manager Free Edition,同时提供Hadoop相关资讯、培训、技术支持等服务。Hadoop创始人Dong Cutting在该公司任架构师,同时该公司拥有多名ApacheCommitter

作者介绍:

张月, Java程序员,7年工作经验,2007年加入蓝汛chinacache至今,目前从事Hadoop相关工作,关注敏捷和海量数据领域,关注软件开发过程。 他拥有Cloudera Certified Administrator forApache Hadoop CCAH)和Cloudera CertifiedDeveloper for Apache Hadoop CCDH)证书,博客:heipark.iteye.com

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
安装Cloudera Manager Web需要先完成Cloudera Manager的安装。以下是在Hadoop集群上安装Cloudera Manager Web的步骤: 1. 首先,按照之前提到的步骤安装Cloudera Manager Server和Agent。 2. 在Cloudera Manager Server所在的节点上,使用以下命令启动Cloudera Manager Server: ``` sudo service cloudera-scm-server start ``` 3. 确保Cloudera Manager Server已成功启动后,打开浏览器并输入以下地址: ``` http://<hostname>:7180 ``` 其中,`<hostname>`是您的Cloudera Manager Server所在节点的主机名或IP地址。 4. 您将看到Cloudera Manager的欢迎页面。按照提示,选择适当的语言和许可证类型,然后单击"Continue"按钮。 5. 在接下来的页面上,提供必要的信息,例如数据库类型、数据库连接信息和管理员凭据。对于数据库类型,您可以选择使用内置的SQLite数据库或外部MySQL数据库。根据您的选择,填写相应的数据库连接信息。 6. 完成数据库相关信息的填写后,单击"Continue"按钮。 7. Cloudera Manager将验证数据库连接并执行一些初始化步骤。这可能需要一些时间,请耐心等待。 8. 在验证和初始化完成后,您将被要求设置Cloudera Manager管理员账号的凭据。填写所需的信息并单击"Continue"按钮。 9. Cloudera Manager将继续进行配置和部署步骤。这可能需要一些时间,请耐心等待。 10. 完成配置和部署后,您将看到一个"Success"页面。单击"Continue to login"按钮以登录Cloudera Manager Web界面。 11. 使用之前设置的管理员账号凭据登录Cloudera Manager Web界面。 安装完成后,您将能够使用Cloudera Manager Web界面来管理和监控您的Hadoop集群。注意,安装Cloudera Manager Web时确保您的节点满足硬件和软件要求,并按照官方文档提供的指导进行操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值