1、CDH简介
大家认知度比较高的Hadoop项目一般指的是Apache的Hadoop,但是该项目版本比较复杂,兼容性也很差,一般没法直接用于生产。所以针对这个情况,衍生了几个比较著名的第三方版本(CDH、HDP、MapR),核心内容还是基于原生的hadoop代码。但是相对于原生版,第三方的版本的版本管理清晰,兼容性好,有大量的生产项目实践经验,更有简单易用的部署方案,最后的监控管理也非常人性化,所以生产项目中都是直接选用这些版本(有免费版和收费版,免费版对于一般性项目完全满足需求)。
2、版本下载
下载地址:http://archive.cloudera.com/cdh5/cdh/5/
注意:每个hadoop生态圈的组成都有各自的版本,但是一定要注意他对应的cdh版本号,要保持一致(这里下载hadoop-2.6.0-cdh5.14.0-src.tar.gz和hive-1.1.0-cdh5.14.0-src.tar.gz,都是源码,自己编译自己安装)。
3、编译准备
wget方式下载以上两个源码tar包,放到hadoop用户家目录下source文件夹中。
安装jdk1.7(建议64位)、maven3.3.9、 findbugs1.3.9、protobuf-2.5.0和其他依赖(具体请参考hadoop源码编译 - 简书)
注意:我们下载的源码都是要求用jdk1.7编译的,本人经过测试修改pom.xml的jdk版本限制,但是测试1.8编译失败,如果有谁成功了,可以私聊分享一下,交流学习。
4、编译hadoop和hive
cdh版hadoop编译安装和Apache版编译安装一致,没有任何区别,请参考和hadoop伪分布式搭建 - 简书
$tar -xzvf hive-1.1.0-cdh5.14.0-src.tar.gz
$cd hive-1.1.0-cdh5.14.0-src
$mvn clean package -Pdist,native -DskipTests -Dtar
错误1:
这个编译命令是我直接复制的hadoop的编译命令(本人是maven小白),最后发现编译报错,说是缺少一些hadoop的jar包,经过反复测试查找,怀疑是-P参数的问题,所以去查了一下,但是了解的还是不是特别清楚,只是根据项目和资料修改了编译命令(参考maven命令-P 参数引发的思考 - CSDN博客)
$mvn clean package -Phadoop2 -DskipTests -Dtar
注意:这个编译命令还是不完整的,虽然编译没问题,但是不会产生编译的tar包,需要修改成下方命令:
$mvn clean package -Phadoop2,dist -DskipTests -Dtar
错误2(该错误不影响编译结果,但是看着很碍眼):
org.apache.maven.project.ProjectBuildingException:Error resolving project artifact: Failure to transfer org.pentaho:pentaho-aggdesigner-algorithm:pom:5.1.5-jhyde from https://repository.cloudera.com/content/repositories/snapshots was cachedinthe local repository, resolution will not be reattempted until the update interval of cdh.snapshots.repohas elapsedorupdates are forced. Original error: Could not transfer artifact org.pentaho:pentaho-aggdesigner-algorithm:pom:5.1.5-jhyde from/to cdh.snapshots.repo(https://repository.cloudera.com/content/repositories/snapshots): Failed to transfer file: https://repository.cloudera.com/content/repositories/snapshots/org/pentaho/pentaho-aggdesigner-algorithm/5.1.5-jhyde/pentaho-aggdesigner-algorithm-5.1.5-jhyde.pom. Return code is:409, ReasonPhrase: Conflict. for project org.pentaho:pentaho-aggdesigner-algorithm:jar:5.1.5-jhyde
解决办法:
修改pom.xml(在repositorys标签下添加)
5、MySQL安装配置
参考 Linux安装MySQL5.6(tar包安装) - 简书 ,安装完成后新建数据库hive(编码为latin1)
6、安装hive
$cd /home/hadoop/source/hive-1.1.0-cdh5.14.0/packaging/target
$tar -xzvf apache-hive-1.1.0-cdh5.14.0-bin.tar.gz -C /home/hadoop/app/
$cd /home/hadoop/app/
$mv apache-hive-1.1.0-cdh5.14.0-bin hive-1.1.0-cdh5.14.0
7、hive配置
$cd hive-1.1.0-cdh5.14.0/conf
$cp hive-env.sh.template hive-env.sh
$vi hive-env.sh
修改JAVA_HOME为真实路径,添加HADOOP_HOME的路径
$vi hive-site.xml //该文件不存在,需要创建
8、启动测试
$cd /home/hadoop/app/hadoop-2.6.0-cdh5.14.0/
$sbin/start-all.sh
$cd /home/hadoop/app/hive-1.1.0-cdh5.14.0
$bin/hive