Hadoop2.6.2 编译
2016-04-09 12:41
579 查看
1.Hadoop2.0 之后依赖 protobuf 实现RPC,因此要先安装依赖
在hadoop-common-project 下
maven package -DskipTests
编译时会发现缺少依赖包protoc,并提示依赖的版本,可以修改hadoop-common-project 下 pom.xml 文件里边具体的版本(你本机安装的版本),以通过编译。
找到定义处的文件的方法:
在hadoop - src 目录下
find . "*.xml" | xargs fgrep protobuf.version
其实是在:
./hadoop-project/pom.xml 里配置的
如果没有安装:
下载protobuf https://github.com/google/protobuf 安装: unzip protobuf-2.3.0.zip cd protobuf-2.3.0 ./configure make make check make install
突然发现直接在
hadoop-2.6.2-src/hadoop-common-project/hadoop-common
下直接执行:
mvn package -DskipTests
mvn会下载protobuf的的依赖!!
这样或许前面的白搞了?? 希望其他人试试!!
2. 本地库测试
bin/hadoop checknative
发现这些本地库都没有:这样的话在调用HDFS API 时会出现问题。
Native library checking: hadoop: false zlib: false snappy: false lz4: false bzip2: false openssl: false
编译native:在hadoop src目录下(保证protobuf安装配置完成还要安装cmake:yum install cmake)
export MAVEN_OPTS=-Xmx500m;mvn package -Pdist,native -DskipTests -Dtar
最后在
hadoop-2.6.2-src/hadoop-common-project/hadoop-common/target/native/target/usr/local/lib
下可以找到本地库的全部文件。
拷贝到线上部署环境:
cp hadoop-2.6.2-src/hadoop-common-project/hadoop-common/target/native/target/usr/local/lib/* /Hagrid/hadoop-2.6.2/lib/native
拷贝后再bin/hadoop checknative:
hadoop: true /Hagrid/hadoop-2.6.2/lib/native/libhadoop.so.1.0.0 zlib: true /lib64/libz.so.1 snappy: false lz4: true revision:99 bzip2: false openssl: true /usr/lib64/libcrypto.so
忙了大半天,不容易啊!!
相关文章推荐
- Apache RewriteBase 指令使用介绍
- Normalizing All Layers(II): Back-Propagation
- Nginx负载均衡
- centOS 操作记录二
- centOS 操作记录二
- centOS 操作记录二
- centOS 操作记录二
- centOS 操作记录二
- 16 个 Linux 服务器监控命令
- Linux文件时间属性
- Linux安装mysql——源码安装
- linux文件系统命令(6)---touch和mkdir
- LINUX内核分析第七周学习总结——可执行程序的装载
- LVS专题: LVS+Keepalived并使用DNS轮询实现Director的高可用和负载均衡
- Linux命令行:mv命令
- openlayers3 在地图上叠加WFS查询矢量图层
- Linux命令行:rmdir命令
- PHP MVC架构
- Linux命令行:rm命令
- linux下MySQL源码安装