测试CDH hadoop遇到的问题
2017-03-31 19:10
309 查看
背景
由于项目需要,选型测试CDH版本的hadoop和现有apache版本的hadoop的差异,如下先罗列了目前的问题1.目前的问题
运维成本较高,当前集群的各项配置需要定期人肉检查
之前运维人员做过的代码修改没有很好的文档传承
没有资源的权限控制
多任务并发时存在较严重的资源抢占问题,没有隔离机制
2.测试的目标
运维管理的便利性
管理系统本省的稳定性
功能要覆盖当前版本
性能上最好能比当前版本更好,至少不能更差
迁移新版本的可操作性,对现有任务的兼容性
3.初步讨论的版本
可选的有CDH和HDP,基于经验来看,HDP的管理系统ambari很不稳定,所以目前主要考虑CDH
测试过程遇到的问题
由于我没有全程参与CDH的安装过程,主要是负责将现有集群的任务迁移到搭建CDH,测试迁移是否成功。在迁移过程中遇到了如下的问题。
1. distcp失败
报错信息:ERROR tools.DistCp: Exception encountered java.lang.IllegalArgumentException: java.net.UnknownHostException 解决方案:需要在集群的hdfs-site.xml中进行配置,才可以在两个集群之间拷贝数据,配置如下 cdh的nn名称是A,现有的原生态集群nn名称是B,在cdh的hdfs-site.xml中配置
<property> <name>dfs.nameservices</name> <value>A,B</value> </property> <!--配置B访问开始 --> <property> <name>dfs.ha.namenodes.b</name> <value>nn1,nn2</value> </property> <property> <name>dfs.namenode.rpc-address.b.nn1</name> <value>host1:port1</value> </property> <property> <name>dfs.namenode.http-address.b.nn1</name> <value>host1:port2</value> </property> <property> <name>dfs.namenode.servicerpc-address.b.nn1</name> <value>host1:port3</value> </property> <property> <name>dfs.namenode.rpc-address.b.nn2</name> <value>host2:port1</value> </property> <property> <name>dfs.namenode.http-address.b.nn2</name> <value>host2:port2</value> </property> <property> <name>dfs.namenode.servicerpc-address.b.nn2</name> <value>host2:port3</value> </property> <property> <name>dfs.client.failover.proxy.provider.b</name> <value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value> </property> <!--配置B访问结束 -->
添加上述的配置后,还是不可以distcp,后来发现是两个集群的hadoop版本不一致导致的,增加如下的配置即可
<property> <name>dfs.checksum.type</name> <value>CRC32</value> </property>
至此成功解决
2. 测试的CDH集群不支持lzo压缩
问题描述: 创建表的时候不能使用lzo压缩,表结构如下:
create table testlzo( id int comment '', name string comment '' ) row format delimited fields terminated by '\001' stored as inputformat 'com.hadoop.mapred.deprecatedlzotextinputformat' outputformat 'org.apache.hadoop.hive.ql.io.hiveignorekeytextoutputformat'
原因和解决方案: 搭建的cdh是5.0,应该安装对应的lzo,先秦装错了版本,后来重新装了对应的lzo包,结果又写错了配置,最后一一排查后能够成功支持lzo压缩。 在CDH界面配置 ![这里写图片描述](http://img.blog.csdn.net/20170331190346997?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvaHVhbnJ1aXFp/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast) 然后报错:找不到类com.hadoop.mapred.deprecatedlzotextinputformat。重启集群还是不生效,后来在网上查找CDH支持的lzo版本,如下图: ![这里写图片描述](http://img.blog.csdn.net/20170331190504530?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvaHVhbnJ1aXFp/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast) 此次测试中安装的是CDH5,但是我校对了一下,发现安装的lzo是CDH4的,先前安装配置的路径是:http://archive.cloudera.com/gplextras5/parcels/latest;现在配置的路径是:http://archive.cloudera.com/gplextras5/parcels/5.9.0/。 重新安装之后仍然不能使用lzo压缩,然后我们怀疑使用的hive客户端是否连接安装的CDH集群,后来验证发现不是这个问题。接着检查YARN的配置 ![这里写图片描述](http://img.blog.csdn.net/20170331190716800?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvaHVhbnJ1aXFp/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast) 问题终于显现出来了,两个配置不一样,修改之后,重启集群就可以了。在CDH管理界面修改或者手动修改mapred-site.xml文件 修改后:![haha](http://img.blog.csdn.net/20170331190847692?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvaHVhbnJ1aXFp/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast) 修改前:
相关文章推荐
- apache的hadoop升级到CDH hadoop2.0时遇到的问题及解决
- 配置和测试hadoop环境时遇到的问题
- 今天下午测试全分布hadoop时遇到的两个小问题
- hadoop运行测试命令遇到的问题
- 服务器压力测试中遇到的问题.
- hadoop搭建时候遇到的两个问题及解答
- IBM服务器以及本地PC机安装suse linux,oracle测试,遇到的问题有:
- LoadRunner在性能测试工作中遇到的问题以及解决办法小结
- WatiN和Nunit合用测试WEB时遇到的问题
- CTS测试中遇到的线程问题
- 帮助测试人员搭建Mercury Quality Center 9.0遇到的问题
- 标题如何使用Cassini,我在测试Cassini时遇到的问题
- 在windows下利用firewatir搭建测试框架时遇到的编码问题和解决方法
- 测试的时候浏览出现 "WebDev.WebServer.exe 遇到问题需要关闭。我们对此引起的不便表示抱歉。
- HADOOP测试常见问题和测试方法
- Exchange 2007 安装后测试遇到的问题
- 测试过程中遇到字符集问题小结
- 用MyEclipse+struts+hibernate测试时遇到的问题
- 部署测试网站遇到的问题总结
- Loadrunner 进行SOCKET并发测试遇到问题