CDH5分布式运行任务的各种坑(更新ing)

# CDH搭建、配置(待填坑)

# 角色分配设计(待填坑)

# 参数调优(待填坑)

因为要把edX中Insight的数据导入到一个6节点集群中做运算,所以尝试分离pipline,远程执行分析任务。具体过程有时间另写文章分析(先挖个坑)=-=
今天发现luigi调度任务的时候把任务挂起后就不动了,最开始怀疑luigi配置问题,按官方文档修改metastore_hostmetastore_port均无效
但是CDH的监控显示hive的Server正常运行,查看日志也没看到输出错误,然后我查看了task的源码发现需要从hive中查询数据,所以怀疑hive配置有问题,
hive配置文件由/etc/hive/conf指定,查看/etc/hive/conf指向了/etc/alternatives/hive-conf,而这个文件又是个符号链接,指向了/opt/cloudera/parcels/CDH-5.7.0-1.cdh5.7.0.p0.45/etc/hive/conf.dist
而启动时候发现加载的log4j配置文件是从这里读取的,而其他正常的节点是指向的/etc/hive/conf.cloudera.hive/,所以执行下面命令指向正常的配置

重试hive,成功~
重新执行task,成功~

更好的办法,仿照正常节点的alternatives修复链接

执行

sudo update-alternatives --install /etc/hive/conf hive-conf /etc/hive/conf.cloudera.hive 90

选择hive-conf正常优先级的链接路径即可

sudo update-alternatives --config hive-conf
发现重启集群后依然错误。。。遂删掉之前的
sudo update-alternatives --remove hive-conf /opt/cloudera/parcels/CDH-5.7.0-1.cdh5.7.0.p0.45/etc/hive/conf.dist
待观察是否管用。。。
这次成功了!
——————-
另外当第一个任务的Mapreduce执行后会卡死,但是不用管,耐心等待即可,不知道为啥是在极慢的写入HDFS= =
——————-
另外还发现几个可能卡死的,由于yarn-site.xml配置错误导致连接超时,虽然CDH监控显示正常但是实际是错误的。需要修改/etc/hive/下的配置文件指向正常的ResourceManager。
还有当luigi生成tmp下的临时sql文件传给hive -f执行时,可能由于hive的配置问题假死,重启hive即可、本质原因同上
另外当任务执行一半强行停止时、warehouse下的文件夹一定要手动删除、否则下次虽然会pending一个任务但是却会读取那个空的hdfs文件夹,命令hdfs dfs -rm -r -f /WAREHOUSE_PATH

——————-
关于hdfs权限的设计
hdfs权限依赖于linux权限,常用命令
hdfs dfs -chmod [-R] 3bit权限掩码 文件地址
hdfs dfs -chown [-R] [owner[:group]] 文件地址
我的方案是仿照windows用户体系,设立单独的用户组,对应hadoop。
在hdfs的设置中可以设计supergroup的默认组,可以改成hadoop
dfs.permissions.supergroup, dfs.permissions.superusergroup

另外,如何多人同时共享CDH集群?先挖坑之后再分析
——————————-
hadoop-stream-tool.jar居然是用jdk1.6编译的
而分数统计的一个jar用的是8u65编译的
而我没注意装上的jdk版本是8u31,导致提示major版本不支持= =已经换成大于65的版本重试。。。希望是这个问题,手动微笑
最终在.bashrc下export了JAVA_HOME,问题解决。。是否应该执行hadoop_env呢??

———————————
学生答题分析任务依然报错,根据调用路径猜测又是hdfs权限问题
/tmp/pipeline-task-scheduler/AnswerDistributionWorkflow/
多次实验并且追查hdfs的NameNode日志,发现WARN,mapred和yarn尝试写这个路径,然而它的状态确实755 hadoop:supergroup
所以更改权限和属组
hdfs dfs -chown -R :hadoop path
hdfs dfs -chmod -R 775 path

然而当新创建的目录出现时候权限依然不对,所以查找hdfs默认权限设置,发现了权限的掩码默认为022,那么默认生成的权限就是755

所以更改掩码为002使得默认权限为775,对应xml的dfs.umaskmode, fs.permissions.umask-mode

———————————
小批量数据测试成功,准备导入一年的使用记录进行运行。编写脚本,提交。。。睡觉去了。。。。。
截张监控图保佑我成功~~~
hadoop-zabbix

———————————————

最长的任务居然运行了7小时=-=

目前为止没出现错误。。。。。233333

但是HUE时间显示不正常,更改时区即可。。。

配置文件中如下

# Time zone name

time_zone=Asia/Shanghai

——————————————–
总时间从最开始24小时能跑完。。。截止至今天加cpu和内存前。。。通过优化YARN2参数使得同样的任务需要12小时。。。。。
今天老师把CPU从1核加到了8核,内存从4G加到了8G… 还是三台Worker。。。。速度最终为3小时执行完同样任务,感觉还有优化空间。。。正在试验中,结束后再分析YARN的配置
另外,虽然zabbix的监控看起来高大上,但是CDH自带的生成器的监控图漂亮啊~~如下
附上生成代码
cpu
select cpu_percent where category = HOST;
select cpu_percent_across_hosts where category=CLUSTER;

memory
select physical_memory_used_across_hosts where category=CLUSTER;
select physical_memory_used;

network
SELECT bytes_transmit_rate_across_network_interfaces, bytes_receive_rate_across_network_interfaces where category = CLUSTER;
SELECT bytes_transmit_rate_across_network_interfaces, bytes_receive_rate_across_network_interfaces where category = HOST;

CMmonitor

0 Comments
Leave a Reply