编译hadoop2.9源码并搭建环境
1. 安装jdk
参考文章 http://www.jianshu.com/p/8f60af764263
2. 安装maven
参考文章 http://www.jianshu.com/p/b726c6387568
3. 安装protobuf
参考文章 http://www.jianshu.com/p/ba136a04385c
4. 检查openssl环境变量是否已经配置

5. 安装cmake
https://cmake.org/files/v3.9/cmake-3.9.6-Darwin-x86_64.dmg
编辑profile配置环境变量 :
sudo vi /etc/profile
在最下面添加:
export CMAKE_HOME=/Applications/CMake.app/Contents
export PATH=$CMAKE_HOME/bin:$PATH
然后执行下面命令使配置生效:
source /etc/profile
6. 配置ssh免密钥登录
参考文章 http://www.jianshu.com/p/b354000ae5e2
7. 下载hadoop源码
http://www.apache.org/dyn/closer.cgi/hadoop/common/hadoop-2.9.0/hadoop-2.9.0-src.tar.gz
解压到安装目录,查看编译说明:


编译需要很多依赖,有些是必须的缺少可能会导致编译失败,每个电脑环境可能不太一致,可以先进行编译,遇到错误再安装。在编译过程中如果网络不稳定导致下载jar包失败,这时只需要重新执行命令即可。

8. 编译
执行编译命令 :mvn clean package -Pdist,native,docs -DskipTests -Dtar
全部编译通过应该如下图所示

编译遇到的问题:
8.1. 编译hadoop-pipes需要OPENSSL_ROOT_DIR环境变量

8.2. 编译到hadoop-aws:jar时缺少依赖包DynamoDBLocal:jar

需要在maven的配置文件添加settings.xml 添加mirror
DynamoDB Local Release Repository
https://s3-us-west-2.amazonaws.com/dynamodb-local/release
*
亚马逊官网给出了获取的地址,上面的方法如果不行可以参考亚马逊官网说明:
官网说明地址

如果还下载不了可以先手动下载这个jar包,然后将这个jar包添加到本地maven仓库,命令:
mvn install:install-file -Dfile=/Users/zl/Downloads/DynamoDBLocal/1.11.86/DynamoDBLocal-1.11.86.jar -DgroupId=com.amazonaws -DartifactId=DynamoDBLocal -Dversion=1.11.86 -Dpackaging=jar
9. 单机版搭建
编译完的安装包在hadoop-dist/target目录下面

移动到安装目录后修改配置文件,配置文件都在hadoop-2.9.0/etc/hadoop下,可以参考官方的配置文档。
配置环境变量
vi /etc/profile
添加:
# HADOOP ENV
export HADOOP_HOME=/work/tools/hdp/hadoop-2.9.0
export HADOOP_INSTALL=$HADOOP_HOME
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export HADOOP_YARN_HOME=$HADOOP_HOME
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
export HADOOP_PREFIX=$HADOOP_HOME
export YARN_CONF_DIR=$HADOOP_HOME/etc/hadoop
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export HADOOP_OPTS="$HADOOP_OPTS -Djava.net.preferIPv4Stack=true -Djava.security.krb5.realm= -Djava.security.krb5.kdc= -Djava.library.path=$HADOOP_HOME/lib" export LD_LIBRARY_PATH=$HADOOP_HOME/lib/native/
export JAVA_LIBRARY_PATH=$HADOOP_HOME/lib/native:$JAVA_LIBRARY_PATH
export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
export CLASSPATH=.$HADOOP_CONF_DIR:$CLASSPATH
9.1 core-site.xml

9.2 hdfs-site.xml

9.3 mapred-site.xml

9.4 yarn-site.xml

配置完成之后格式化namenode
hdfs namenode -format

遇到的一个问题
WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
解决办法
添加环境变量
export HADOOP_OPTS="$HADOOP_OPTS -Djava.net.preferIPv4Stack=true -Djava.security.krb5.realm= -Djava.security.krb5.kdc= -Djava.library.path=$HADOOP_HOME/lib" export LD_LIBRARY_PATH=$HADOOP_HOME/lib/native/export JAVA_LIBRARY_PATH=$HADOOP_HOME/lib/native:$JAVA_LIBRARY_PATH
10.启动验证
启动hdfs
sbin/start-dfs.sh
启动完之后查看进程
jps

用浏览器可以看到运行状态
http://localhost:50070/
启动yarn
sbin/start-yarn.sh
查看进程

在浏览器查看yarn的运行状态
http://localhost:8288
搭建分布式环境和伪分布式环境类似,只不过是将各个功能分配到不同的节点之上,大部分的配置一样,具体可以参考官方文档。

时间:2018-10-09 22:38 来源: 转发量:次
声明:本站部分作品是由网友自主投稿和发布、编辑整理上传,对此类作品本站仅提供交流平台,转载的目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,不为其版权负责。如果您发现网站上有侵犯您的知识产权的作品,请与我们取得联系,我们会及时修改或删除。
相关文章:
相关推荐:
网友评论: