## 内网下CDH安装:
1、制作本地CM源,然后安装CM:
参考:http://www.cnblogs.com/shudonghe/p/3142796.html
2、下载cdh的parcel包,然后 通过在CM中自定义cdh源进行内网安装:
参考:http://www.cnblogs.com/shudonghe/p/3145013.html
安装注意点:
/etc/hosts里不要包含有localhost的记录,推荐都改为:ip 主机名
如果CM节点不在hadoop集群之中时,应在hadoop集群中的每个节点中添加CM主机名和内网ip的映射
将CDH-4.3.0-1.cdh4.3.0.p0.22-el6.parcel分发到集群节点时报如下错误
ERROR Unexpected exception during download
查看log显示
[09/Feb/2014 17:30:55 +0000] 1249 Thread-13 downloader INFO Starting download of: http://localhost:7180/cmf/parcel/download/CDH-4.5.0-1.cdh4.5.0.p0.30-el6.parcel
我的猜测是:
可以看出可能由于双网卡的原因,节点无法访问到CM节点的外网ip,所以使用localhost代替,解决方法是在cm的 Administration下的setting里手动指定节点访问cm的内网ip(ports and addresses)
安装完成后如果集群状态有问题,可以采用删除服务,然后逐个添加的方式解决。
## oryx使用
1、cdh安装后,oryx默认使用yarn,因此需要将使用使用yarn的hadoop配置文件替代MR1的配置文件,操作:
用/etc/hadoop/conf.cloudera.yarn1目录来替代/etc/hadoop/conf,因为oryx默认在没有设置HADOOP_CONF_DIR环境变量情况下会去读取/etc/hadoop/conf目录下的文件作为作业的配置文件。
2、运行oryx:
计算层
java -Dconfig.file=oryx.conf -jar oryx-computation-0.4.0-SNAPSHOT.jar
服务层
java -Dconfig.file=oryx.conf -jar oryx-serving-0.4.0-SNAPSHOT.jar
3、oryx配置文件及参数
配置文件oryx.conf的配置参见:https://github.com/cloudera/oryx和https://github.com/cloudera/oryx/blob/master/common/src/main/resources/reference.conf
# unit:minutes,每n分钟更新模型
model.data-threshold=n
# unit:M,当数据量达到n兆时,更新模型
model.time-threshold=n
# unit record,当数据记录数达到n,更新模型
model.writes-between-upload=n
4、oryx als接口说明
http://cloudera.github.io/oryx/apidocs/com/cloudera/oryx/als/serving/web/package-summary.html
5、cdh yarn参数设置
问题:作业因为资源不足跑不动(如:因为系统的内存足够,但nodemanager拥有的内存较少,无法满足reduce需要,此时会发生reduce无法启动,却又不报错的问题)
一个可能的解决方法:增大yarn.nodemanager.resource.memory-mb的值。
6、增大serving层的并发访问量
在启动serving层时调大jvm启动时最大使用内存参数,如设置为2G,命令:
java -Xmx2048m
7、上传数据
数据可以通过模拟表单提交通过oryx的api(http://host:port/ingest)上传给hdfs,也可以手动上传到hdfs上每次计算产生新模型后会再创建一个目录来存放下次的增量数据(00000/inbound,00001/inbound)。增量数据上传完后如要马上进行模型更新,需执行forcerun操作,可手动在web页面点击,也可使用脚本模拟表单提交通过oryx的api(http://host:port/periodicRunner/forceRun)触发运行。默认需要4分钟(GENERATION_WAIT )内数据不再变化才能开始运行作业,当lastModified > now – GENERATION_WAIT 时保持等待状态