cdh在客户端部署的时候出现下面的情况。yum 安装cdh客户端了很多次没有解决,同样的错误。

2335人阅读
cloudera(12)
由于在CM5.7.0中执行HUE的hive workflow有问题,网上说是oozie仅支持0.13.1版本的hive,故搭建的集群暂时用不上,需要重新搭建一个伪分布式的cm,网上找到一篇,在下载下面的组件的时候,确实是有些版本限制,按下文走一遭试试!
帮的上忙的链接:/blog/2012926!!!
本文介绍如何在centOS6.4环境下安装hue环境!
一、安装环境列表
hue-3.7.0-cdh5.3.6
jdk1.7.0_67
hadoop2.5.0
hive-0.13.1-cdh5.3.6
oozie-4.0.0-cdh5.3.6
下载地址:
二、安装编译
& &&2.1 解压hue-3.7.0-cdh5.3.6
将上一步下载好的hue-3.7.0-cdh5.3.6解压到某一目录(如:/home/xusy/share/cdh5.3.6)
2.2 安装依赖包
sudo yum install ant asciidoc cyrus-sasl-devel cyrus-sasl-gssapi gcc gcc-c++ krb5-devel libtidy libxml2-devel libxslt-devel
make mvn mysql mysql-devel openldap-devel python-devel sqlite-devel openssl-devel gmp-devel
PS:安装依赖包之前,最好使用国内仓库,下载速度快些,而且也相对稳定。
& & &可以参考文章:
2.3 编译hue
编译完成后,如果多了以下两个文件,就证明已经编译成功,如果编译失败了,请检查上一步安装的依赖包有没 & & &有失败的。
3、配置文件
在目录/home/xusy/share/cdh5.3.6/hue-3.7.0-cdh5.3.6/desktop/conf下有个hue.ini文件
修改如下地方:
#&Set&this&to&a&random&string,&the&longer&the&better.&&#&This&is&used&for&secure&hashing&in&the&session&store.&&secret_key=jFE93j;2maomaosi22943d['d;/.q[eIW^y#e=+Iei*@&&&&#&Webserver&listens&on&this&address&and&port&&http_host=xuxudede.com&&http_port=8888&&&&#&Time&zone&name&&time_zone=Asia/Shanghai&&
注意:secret_key随便填写一个30-60个长度的字符串即可,如果不填写的话Hue会提示错误信息,这个secret_key主要是出于安全考虑用来存储在session store中进行安全验证的。时区修改成亚洲时区。
4、启动hue
build/env/bin/supervisor
注意:这个进程不能关掉,可以在后台启动。
& & &启动成功后,查看:8888/网页显示
输入用户名密码后
至此,hue已经安装成功,就可以在上面集成hadoop、hive等了。
======================================================================================================
修改/hue/desktop/conf/hue.ini
hadoop_home等信息
注意端口号是否与hadoop上一致
例如默认hdfs_port=8020, 实际上hadoop上配置的为9000
/usr/share/hue/build/env/bin/superviser
[root@localhost&lib]#&/usr/share/hue/build/env/bin/supervisor&&Traceback&(most&recent&call&last):&&&&File&&/usr/share/hue/build/env/bin/supervisor&,&line&8,&in&&module&&&&&&&load_entry_point('desktop==3.5.0',&'console_scripts',&'supervisor')()&&&&File&&/usr/share/hue/desktop/core/src/desktop/supervisor.py&,&line&319,&in&main&&&&&&setup_user_info()&&&&File&&/usr/share/hue/desktop/core/src/desktop/supervisor.py&,&line&257,&in&setup_user_info&&&&&&desktop.lib.daemon_utils.get_uid_gid(SETUID_USER,&SETGID_GROUP)&&&&File&&/usr/share/hue/desktop/core/src/desktop/lib/daemon_utils.py&,&line&45,&in&get_uid_gid&&&&&&raise&KeyError(&Couldn't&get&user&id&for&user&%s&&%&(username,))&&KeyError:&&Couldn't&get&user&id&for&user&hue&&&
adduser hue
[root@localhost&lib]#&adduser&hue&&[root@localhost&lib]#&/usr/share/hue/build/env/bin/supervisor&又报错&&/usr/share/hue/build/env/lib/python2.6/site-packages/Django-1.4.5-py2.6.egg/django/conf/__init__.py:110:&DeprecationWarning:&The&SECRET_KEY&setting&must&not&be&empty.&&&&warnings.warn(&The&SECRET_KEY&setting&must&not&be&empty.&,&DeprecationWarning)&&/usr/share/hue/build/env/lib/python2.6/site-packages/Django-1.4.5-py2.6.egg/django/conf/__init__.py:110:&DeprecationWarning:&The&SECRET_KEY&setting&must&not&be&empty.&&&&warnings.warn(&The&SECRET_KEY&setting&must&not&be&empty.&,&DeprecationWarning)&&/usr/share/hue/build/env/lib/python2.6/site-packages/Django-1.4.5-py2.6.egg/django/conf/__init__.py:110:&DeprecationWarning:&The&SECRET_KEY&setting&must&not&be&empty.&&&&warnings.warn(&The&SECRET_KEY&setting&must&not&be&empty.&,&DeprecationWarning)&&starting&server&with&options&{'ssl_certificate':&None,&'workdir':&None,&'server_name':&'localhost',&'host':&'0.0.0.0',&'daemonize':&False,&'threads':&10,&'pidfile':&None,&'ssl_private_key':&None,&'server_group':&'hue',&'ssl_cipher_list':&'DEFAULT:!aNULL:!eNULL:!LOW:!EXPORT:!SSLv2',&'port':&8888,&'server_user':&'hue'}&&
The SECRET_KEY setting must not be empty
Specifying the Secret Key
For security, you should also specify the secret key that is used for secure hashing in the session store. Enter a long series of random characters (30 to 60 characters is recommended).
secret_key=jFE93j;2[290-eiw.KEiwN2s3['d;/.q[eIW^y#e=+Iei*@Mn&qW5o
If you don’t specify a secret key, your session cookies will not be secure. Hue will run but it will also display error messages telling you to set the secret key.
完善各种配置
在core-site.xml 配置
&property&
& &name&hadoop.tmp.dir&/name&
& &value&/tmp/hadoop-${user.name}${hue.suffix}&/value&
&/property&
由于已经安装hive需在hue.ini中指定变量
& # Hive configuration directory, where hive-site.xml is located
& ## hive_conf_dir=/etc/hive/conf
hive_conf_dir=/opt/hadoop/hive-0.10.0-bin/conf
启动&/usr/share/hue/build/env/bin/supervisor
command line里显示正常
[root@localhost&desktop]#&/usr/share/hue/build/env/bin/supervisor&&starting&server&with&options&{'ssl_certificate':&None,&'workdir':&None,&'server_name':&'localhost',&'host':&'127.0.0.1',&'daemonize':&False,&'threads':&10,&'pidfile':&None,&'ssl_private_key':&None,&'server_group':&'hue',&'ssl_cipher_list':&'DEFAULT:!aNULL:!eNULL:!LOW:!EXPORT:!SSLv2',&'port':&8888,&'server_user':&'hue'}&&/usr/share/hue/build/env/lib/python2.6/site-packages/Django-1.4.5-py2.6.egg/django/views/generic/simple.py:8:&DeprecationWarning:&Function-based&generic&views&have&been&&use&class-based&views&instead.&&&&DeprecationWarning&&
但是http://localhost:8888/accounts/login/?next=/ 进入出现报错信息
[25/Feb/:08&+0000]&middleware&&&INFO&&&&&Redirecting&to&login&page:&/&&[25/Feb/:08&+0000]&access&&&&&&&INFO&&&&&127.0.0.1&-anon-&-&&GET&/&HTTP/1.1&&--&login&redirection&&[25/Feb/:09&+0000]&base&&&&&&&&&ERROR&&&&Internal&Server&Error:&/accounts/login/&&Traceback&(most&recent&call&last):&&&&File&&/usr/share/hue/build/env/lib/python2.6/site-packages/Django-1.4.5-py2.6.egg/django/core/handlers/base.py&,&line&188,&in&get_response&&&&&&response&=&middleware_method(request,&response)&&&&File&&/usr/share/hue/build/env/lib/python2.6/site-packages/Django-1.4.5-py2.6.egg/django/contrib/sessions/middleware.py&,&line&36,&in&process_response&&&&&&request.session.save()&&&&File&&/usr/share/hue/build/env/lib/python2.6/site-packages/Django-1.4.5-py2.6.egg/django/contrib/sessions/backends/db.py&,&line&58,&in&save&&&&&&obj.save(force_insert=must_create,&using=using)&&&&File&&/usr/share/hue/build/env/lib/python2.6/site-packages/Django-1.4.5-py2.6.egg/django/db/models/base.py&,&line&463,&in&save&&&&&&self.save_base(using=using,&force_insert=force_insert,&force_update=force_update)&&&&File&&/usr/share/hue/build/env/lib/python2.6/site-packages/Django-1.4.5-py2.6.egg/django/db/models/base.py&,&line&551,&in&save_base&&&&&&result&=&manager._insert([self],&fields=fields,&return_id=update_pk,&using=using,&raw=raw)&&&&File&&/usr/share/hue/build/env/lib/python2.6/site-packages/Django-1.4.5-py2.6.egg/django/db/models/manager.py&,&line&203,&in&_insert&&&&&&return&insert_query(self.model,&objs,&fields,&**kwargs)&&&&File&&/usr/share/hue/build/env/lib/python2.6/site-packages/Django-1.4.5-py2.6.egg/django/db/models/query.py&,&line&1593,&in&insert_query&&&&&&return&query.get_compiler(using=using).execute_sql(return_id)&&&&File&&/usr/share/hue/build/env/lib/python2.6/site-packages/Django-1.4.5-py2.6.egg/django/db/models/sql/compiler.py&,&line&912,&in&execute_sql&&&&&&cursor.execute(sql,&params)&&&&File&&/usr/share/hue/build/env/lib/python2.6/site-packages/Django-1.4.5-py2.6.egg/django/db/backends/sqlite3/base.py&,&line&344,&in&execute&&&&&&return&Database.Cursor.execute(self,&query,&params)&&DatabaseError:&attempt&to&write&a&readonly&database&&
原因是 /usr/share/hue/desktop/desktop.db &对root用户权限777但对其它用户:hue只有读的权限
chmod o+w desktop.db
[25/Feb/:26&+0000]&base&&&&&&&&&ERROR&&&&Internal&Server&Error:&/accounts/login/&&Traceback&(most&recent&call&last):&&&&File&&/usr/share/hue/build/env/lib/python2.6/site-packages/Django-1.4.5-py2.6.egg/django/core/handlers/base.py&,&line&188,&in&get_response&&&&&&response&=&middleware_method(request,&response)&&&&File&&/usr/share/hue/build/env/lib/python2.6/site-packages/Django-1.4.5-py2.6.egg/django/contrib/sessions/middleware.py&,&line&36,&in&process_response&&&&&&request.session.save()&&&&File&&/usr/share/hue/build/env/lib/python2.6/site-packages/Django-1.4.5-py2.6.egg/django/contrib/sessions/backends/db.py&,&line&58,&in&save&&&&&&obj.save(force_insert=must_create,&using=using)&&&&File&&/usr/share/hue/build/env/lib/python2.6/site-packages/Django-1.4.5-py2.6.egg/django/db/models/base.py&,&line&463,&in&save&&&&&&self.save_base(using=using,&force_insert=force_insert,&force_update=force_update)&&&&File&&/usr/share/hue/build/env/lib/python2.6/site-packages/Django-1.4.5-py2.6.egg/django/db/models/base.py&,&line&551,&in&save_base&&&&&&result&=&manager._insert([self],&fields=fields,&return_id=update_pk,&using=using,&raw=raw)&&&&File&&/usr/share/hue/build/env/lib/python2.6/site-packages/Django-1.4.5-py2.6.egg/django/db/models/manager.py&,&line&203,&in&_insert&&&&&&return&insert_query(self.model,&objs,&fields,&**kwargs)&&&&File&&/usr/share/hue/build/env/lib/python2.6/site-packages/Django-1.4.5-py2.6.egg/django/db/models/query.py&,&line&1593,&in&insert_query&&&&&&return&query.get_compiler(using=using).execute_sql(return_id)&&&&File&&/usr/share/hue/build/env/lib/python2.6/site-packages/Django-1.4.5-py2.6.egg/django/db/models/sql/compiler.py&,&line&912,&in&execute_sql&&&&&&cursor.execute(sql,&params)&&&&File&&/usr/share/hue/build/env/lib/python2.6/site-packages/Django-1.4.5-py2.6.egg/django/db/backends/sqlite3/base.py&,&line&344,&in&execute&&&&&&return&Database.Cursor.execute(self,&query,&params)&&DatabaseError:&unable&to&open&database&file&&
原因是包含desktop.db的文件夹对hue用户也是只能读不能写的
干脆把这个hue文件所属用户和组都给hue
chown&chown -R hue.hue /usr/share/hue
再启动 完美运行&
Resource Manager Failed to contact Resource Manager at http://localhost:8088/ws/v1:。。。
原因是 hue.ini 中同时配置了&[[yarn_clusters]] 和&[[mapred_clusters]] 中的&
& # Whether to submit jobs to this cluster
& & & submit_to=true
两者只能选一,MR1就选后者MR2选&[[yarn_clusters]]
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:98922次
积分:1844
积分:1844
排名:千里之外
原创:74篇
转载:65篇
评论:10条
(3)(8)(1)(9)(2)(15)(10)(3)(21)(16)(6)(7)(15)(7)(12)(9)
(window.slotbydup = window.slotbydup || []).push({
id: '4740887',
container: s,
size: '250,250',
display: 'inlay-fix'CDH5.8.2完全离线安装失败,报错Java拒绝连接-CDH-about云开发
后使用快捷导航没有帐号?
只需一步,快速开始
扫一扫,访问微社区
查看: 3860|回复: 7
CDH5.8.2完全离线安装失败,报错Java拒绝连接
主题帖子积分
新手上路, 积分 46, 距离下一级还需 4 积分
新手上路, 积分 46, 距离下一级还需 4 积分
安装环境,三台centos6.5虚拟机,内存分配分别为8GB,2GB,2GB
CDH版本为5.8.2,java版本均为1.8.0,使用完全离线安装,安装过程参考
安装到部署客户端出错,根据log来看貌似是java连接有错,可是防火墙已关,java版本均一致,mysql连接正常,为何会出这种问题?求解决。
报错图如下:
主题帖子积分
高级会员, 积分 2555, 距离下一级还需 2445 积分
高级会员, 积分 2555, 距离下一级还需 2445 积分
网络是否配置正确
防火墙是否关闭
ssh是否安装
用户权限是否正确
主题帖子积分
org.apache.avro.avroremoteexception:java.net.connectException:拒绝链接
上面错误可能是
重启过程Service Monitor服务异常,启动CM和Agent服务一段时间后自然会正常,可以在观察下
欢迎加入about云群 、 ,云计算爱好者群,关注
主题帖子积分
新手上路, 积分 8, 距离下一级还需 42 积分
新手上路, 积分 8, 距离下一级还需 42 积分
感谢楼主分享
主题帖子积分
新手上路, 积分 46, 距离下一级还需 4 积分
新手上路, 积分 46, 距离下一级还需 4 积分
网络是否配置正确
防火墙是否关闭
ssh是否安装
配置都是一切正常的,开始是防火墙忘关,报错heartbeat,关了后重头来了一遍就这样了
主题帖子积分
新手上路, 积分 46, 距离下一级还需 4 积分
新手上路, 积分 46, 距离下一级还需 4 积分
org.apache.avro.avroremoteexception:java.net.connectException:拒绝链接
上面错误可能是
重启过程Se ...
等等就会好?
主题帖子积分
高级会员, 积分 1438, 距离下一级还需 3562 积分
高级会员, 积分 1438, 距离下一级还需 3562 积分
配置都是一切正常的,开始是防火墙忘关,报错heartbeat,关了后重头来了一遍就这样了
出现错误,需要卸载干净,然后在重装,否则怎么安装都会出错的。
除了防火墙,肯定还有其它原因。
解决办法有两种:
要么一个服务一个服务的确认,然后不断的查找日志。
要么卸载干净,重新安装
主题帖子积分
新手上路, 积分 46, 距离下一级还需 4 积分
新手上路, 积分 46, 距离下一级还需 4 积分
出现错误,需要卸载干净,然后在重装,否则怎么安装都会出错的。
最后使用官方安装的JDK安装就通过了,谢谢了!
经常参与各类话题的讨论,发帖内容较有主见
经常帮助其他会员答疑
活跃且尽责职守的版主
站长推荐 /4
云计算hadoop视频大全(新增 yarn、flume|storm、hadoop一套视频
等待验证会员请验证邮箱
新手获取积分方法
技术类问答,解决学习openstack,hadoop生态系统中遇到的问题
Powered by使用Cloudera部署,管理Hadoop集群
1. Cloudera介绍
Hadoop是一个开源项目,Cloudera对Hadoop进行了商业化,简化了安装过程,并对hadoop做了一些封装。
根据使用的需要,Hadoop集群要安装很多的,一个一个安装配置起来比较麻烦,还要考虑HA,监控等。
使用Cloudera可以很简单的部署集群,安装需要的组件,并且可以监控和管理集群。
CDH是Cloudera公司的发行版,包含Hadoop,Spark,Hive,Hbase和一些工具等。
Cloudera有两个版本:
Cloudera Express 版本是免费的Cloudera Enterprise (60天试用期)需要购买注册码
2. 安装Cloudrea Manager,部署 Hadoop集群
2.1 安装方法
先安装Cloudrea Manager,再通过CloudreaManager在节点上安装Cloudrea Manager客户端,CDH,管理工具。
官方文档:
/documentation/manager/5-1-x.html
环境需求:
1. 关闭selinux
2. 各节点可以SSH登陆
3. 在/etc/hosts中添加各节点的主机名
2.2 安装Cloudrea Manager
可以通过官方的一键安装包,也可以通过yum或rpm安装。
下面介绍用官方的一键安装包安装。
本次安装环境为CnetOS 7,在3台机器上进行安装
test165 (clouderamanager server)
test166 (clouderamanager agent)
test167 (clouderamanager agent)
2.2.1 下载一键安装包
/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
出现下面画面
一路选择& Next & 和 & Yes&,开始安装。
需要下载JAVA和Cloudrea Manager,共600多MB,根据网络情况,会花一些时间。
出现下面页面,安装完成。
安装完成后,访问Cloudrea Manager的页面,用户名密码都是admin
http://IP或主机名:7180/
2.2.3 安装cloudera manager agent
登录Cloudrea Manager页面,选择要安装的版本,本次安装的是Cloudera Express
选择要安装CDH的主机,用主机名或IP搜索,本次是在三个节点上安装CDH
选择使用Parcel安装,选者CDH版本
选择安装JDK
提供SSH登录信息
开始安装JDK和cloudera manager agent
如果安装过程中,下载安装jdk 或 cloudera-manager-agent失败,可以在节点上手动安装,然后再在Cloudrea Manager上继续安装
# yum -y install jdk
# yum -y install oracle-j2sdk1.7
# yum -y install cloudera-manager-agent
下载Parcel并分配Parcel到各节点
Parcel包1.5G左右,需要一段时间,为了提高安装速度,可以先把包下载到Cloudrea Manager本地,配置本地源
parcel下载地址:
/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
安装完成后,点继续,到检查结果的页面
检查主机正确性时出现 &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 安装集群,包括Hadoop,YARN,Hive等
检查主机正确性后,点击完成,进入集群配置
选择要安装的服务,可以选择组合或自定义
配置各节点间如何分配
注意: HDFS的Data Node 最少3个。
3. 确认,测试
确认集群状态正常,动作正常
1. 在集群页面确认,所有服务状态正常
2. 在主机页面确认,各节点的Heartbeat状态正常,并且时间小于15秒
3. 运行任务进行测试
登陆到集群中任意一台主机,执行下面任务(用Hadoop计算PI值,圆周率)
后面2个数字参数的含义: 10指的是要运行10次map任务,100指的是每个map任务,要投掷多少次,2个参数的乘积就是总的投掷次数。
# sudo -u hdfs hadoop jar /opt/cloudera/parcels/CDH/lib/hadoop-mapreduce/hadoop-mapreduce-examples.jarpi 10 100
执行结果如下:
任务的执行情况可以在YARN页面上进行确认
群集 -& Cluster 1 -& YARN -& 应用程序
在Cloudrea Manager页面上,可以向集群中添加/删除主机,添加服务到集群等。
Cloudrea Manager页面开启了google-analytics,因为从国内访问很慢,可以关闭google-analytics
管理 -& 设置 -& 其他 -& 允许使用情况数据收集 不选
工欲善其事必先利其器,管理Hadoop 集群,Cloudrea是个不错的选择。
Hadoop管理员的十个最佳实践
作者张月 发布于 日 |注意:GTLC全球技术领导力峰会 推动杰出的技术领导者学习和成长!
接触Hadoop有两年的时间了,期间遇到很多的问题,既有经典的NameNode和JobTracker内存溢出故障,也有HDFS存储小文件问题,既有任务调度问题,也有MapReduce性能问题.遇到的这些问题有些是Hadoop自身的缺陷(短板),有些则是使用的不当。
在解决问题的过程中,有时需要翻,有时会向同事、网友请教,遇到复杂问题则会通过mail list向全球各地Hadoop使用者,包括Hadoop Committer(Hadoop开发者)求助。在获得很多人帮助后,自己将遇到问题和心得整理成文,希望本文可以对那些焦头烂额的Hadoop新手们有所帮助,少走笔者的弯路。
PS. 本文基于Cloudera CDH 3u4(同Apache Hadoop 1.0)编写。相关推荐配置为官方推荐值或者笔者经验数值,它不是绝对的,可能会因为不同的应用场景和硬件环境有所出入。
相关厂商内容
GMTC全球移动技术大会日-25日,北京,点击了解详情!
1. 选择Cloudera CDH部署你的Cluster
大多数管理员都是从Apache Hadoop开始学习。笔者最开始也使用Apache版本Hadoop进行开发和部署工作,但接触到Cloudera CDH后,我发现它可以使管理员的工作更简单,不仅可以获得最新的特性和Bug修复,有时也会带来令人惊喜的性能改善。
CDH为什么更好?笔者罗列了以下几点:
CDH基于稳定版Apache Hadoop,并应用了最新Bug修复或者Feature的Patch。Cloudera常年坚持季度发行Update版本,年度发行Release版本,更新速度比Apache官方快,而且在实际使用过程中CDH表现无比稳定,并没有引入新的问题。
Cloudera官方网站上安装、升级文档详细,省去Google时间。
CDH支持Yum/Apt包,Tar包,RPM包,Cloudera Manager四种方式安装,总有一款适合您。官方网站推荐Yum/Apt方式安装,笔者体会其好处如下:
联网安装、升级,非常方便。当然你也可以下载rpm包到本地,使用Local Yum方式安装。
自动下载依赖软件包,比如要安装Hive,则会级联下载、安装Hadoop。
Hadoop生态包自动匹配,不需要你寻找与当前Hadoop匹配的Hbase,Flume,Hive等软件,Yum/Apt会根据当前安装Hadoop版本自动寻找匹配版本的软件包,并保证兼容性。
自动创建相关目录并软链到合适的地方(如conf和logs等目录);自动创建hdfs, mapred用户,hdfs用户是HDFS的最高权限用户,mapred用户则负责mapreduce执行过程中相关目录的权限。
推荐指数:★★★
推荐理由:获取最新特性和最新Bug修复;安装维护方便,节省运维时间。
2. Hadoop集群配置与管理
安装和维护Hadoop集群涉及大量的管理工作,包括软件安装,设备管理(crontab、iptables等)、配置分发等。
对于小型集群软件分发和节点管理可以使用PDSH这款软件,它可以通过免密钥的SSH将文件分发到目标服务器,以及为一组目标设备发送命令并获得反馈。如果是大型集群或者硬件配置差别很大的集群,推荐使用puppet这样的工具帮助你维护配置文件,或者通过Cloudera Manager以GUI的方式的管理集群(注意:Clodera Manager不是开源软件,免费版最多支持50个节点)。
推荐指数:★★★
推荐理由:提高运维效率
3. 开启SecondaryNameNode
SecondaryNameNode(下称SNN)的主要功能是工作是帮助NameNode(下称NN)合并编辑日志,然后将合并后的镜像文件copy回NN,以减少NN重启时合并编辑日志所需的时间。SNN不是NN的热备,但是通过以下步骤可以实现将SNN切换为NN的目的。首先,SNN节点上导入从NN Copy过来的镜像文件,然后修改SNN机器名和IP与NN一致,最后重启集群。
特别注意的是SNN的内存配置要与NN一致,因为合并编辑日志的工作需要将metadata加载到内存完成。另外,不仅仅是SNN,任何保存NN镜像的节点都可以通过上面步骤变为NN,只是SNN更适合罢了。
推荐指数:★★★
推荐理由:减少NN重启导致集群服务中断时间;NN节点故障后,SNN充当NN角色
4. 使用Ganglia和Nagios监控你的集群
当运行一个大型mapreduce 作业时,我们通常非常关心该作业对TaskTracker(下称TT)CPU、内存、磁盘,以及整个网络的带宽情况,这时候就需要Ganglia这个工具为我们生成相关图表来诊断、分析问题。
Ganglia可以监控集群状态,但当你的服务器down机或者某个TT挂掉,它却无法通知到你,这时我们可以使用Nagios这款告警软件,它可以配置邮件告警和短息告警。通过编写plugins,可以实现自己的监控功能。我们的集群目前做了如下监控:
NameNode、JobTracker内存
DataNode和TaskTracker运行状态
NFS服务状态
磁盘使用情况
服务器负载状态
推荐指数:★★★
推荐理由:Ganglia可以帮你记录集群状态,方便诊断问题;Nagios可以再遇到问题时第一时间通知你。
5. 设置好内存至关重要
Hadoop集群安装完毕后,第一件事就是修改bin/hadoop-evn.sh文件设置内存。主流节点内存配置为32GB,典型场景内存设置如下
NN: 15-25 GB
DN:1-4 GB
TT:1-2 GB,Child VM 1-2 GB
集群的使用场景不同相关设置也有不同,如果集群有大量小文件,则要求NN内存至少要20GB,DN内存至少2GB。
推荐指数:★★★★★
推荐理由:几个组件中NN对内存最为敏感,它有单点问题,直接影响到集群的可用性;JT同样是单点,如果JT内存溢出则所有MapReduceJob都无法正常执行。
6. 管理员玩转MapReduce
Hadoop原生MapReduce需要语言编写,但是不会Java也没问题,通过Hadoop streaming框架管理员可以使用,Shell,Perl等语言进行MapReduce开发,但更简单的办法是安装和使用Hive或者Pig。
推荐指数:★★★
推荐理由:减少运维时间,快速响应各种ad-hot需求和故障诊断。
7. NameNode HA
前面已经说过,NN是整个集群可能出现的单点故障。
Hadoop通过在hdfs.site.xml文件的dfs.name.dir属性指定保持的metadata路径,如果希望保持到多个路径,可以使用逗号分割配置多个路径。
dfs.name.dir
/data/cache1/dfs/nn,/data/cache2/dfs/nn
Hadoop官方推荐配置为metadata配置多个path,其中包含一个NFS的路径。但根据笔者一次集群严重故障经验,即使这样,还是导致了所有镜像文件损坏,包括SNN上的镜像文件,所以定期备份一个可用的副本还是很有必要的。
推荐指数:★★★★★
推荐理由:Cloudera3uX和Apache1.0的NN单点问题是大家最头痛问题之一,多些准备,少许痛苦。
8. 使用firewall阻止坏人进入
Hadoop的安全控制非常简单,只包含简单的权限,即只根据客户端用户名,决定使用权限。它的设计原则是:&避免好人做错事,但不阻止坏人做坏事&。
如果你知道某台NN的IP和端口,则可以很轻松获取HDFS目录结构,并通过修改本机机器用户名伪装成HDFS文件所属owner,对该文件进行删除操作。
通过配置kerberos,可以实现身份验证。但很多管理员使用更简单有效的办法&&通过防火墙对访问IP进行控制。
推荐指数:★★★★★
推荐理由:安全无小事,防范于未然。
9. 开启垃圾箱(trash)功能
我曾经犯下一个错误,在我加班非常累,大脑稍有混乱的时候,不小心删除执行了一个命令&hadoop fs -rmr /xxx/xxx&,没有删除提示,几TB的数据,一下子就没有了。简直让我崩溃,后悔莫及。这时你多希望有个时间机器可以让HDFS恢复到删除前的状态。
trash功能就是这个时间机器, 它默认是关闭的,开启后,被你删除的数据将会mv到操作用户目录的&.Trash&文件夹,可以配置超过多长时间,系统自动删除过期数据。这样一来,当操作失误的时候,可以把数据mv回来。开启垃圾箱步骤如下:
vi core-site.xml ,添加下面配置,value单位为分钟。
fs.trash.interval
笔者 在CDH3u4下不用重启Namenode就可以生效。开启垃圾箱后,如果希望文件直接被删除,可以在使用删除命令时添加&&skipTrash& 参数,如下:
hadoop fs &rm &skipTrash /xxxx
推荐指数:★★★★★
推荐理由:想要时间机器吗?
10. 去社区寻找帮助
Hadoop是一个非常优秀的开源项目,但它仍存有很多尚未解决的问题,诸如,NN,JT单点问题,JT挂死问题,Block在小文件下汇报效率低下等问题。此时可以通过如下渠道找到可以帮助你的人,笔者几次集群严重故障都是通过Cloudera公司的google user group直接获得几位 committer的帮助。通常前一天提问,第二天就会有反馈。下面是两个能够帮助的你的社区,当然你也可以帮助其他人:
Apache hadoop的mail list :
http://hadoop.apache.org/mailing_lists.html
Cloudera CDH google group:
/a/cloudera.org/forum/
推荐指数:★★★★★
推荐理由:没有人比软件作者更熟悉Hadoop本身,去社区求助,帮你解决很多自己无法跨越的问题。
Cloudera简介:
公司是一家Hadoop软件服务公司,提供免费软件CDH和Cloudera Manager Free Edition,同时提供Hadoop相关资讯、、技术支持等服务。Hadoop创始人Dong Cutting在该公司任架构师,同时该公司拥有多名ApacheCommitter。

我要回帖

更多关于 cdh客户端 的文章

 

随机推荐