你好,游客 登录 注册 搜索
背景:
阅读新闻

Hadoop源码编译

[日期:2017-01-05] 来源:大讲台  作者: [字体: ]

  如果大家直接在官方网站下载Hadoop 安装包,然后安装启动Hadoop集群,会报本地库找不到的警告,但是不影响集群的运行,警告如下所示:

  WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable

  上面这个警告就是因为缺少Hadoop本地库,我们可以下载Hadoop对应版本的源码进行编译,生成我们需要的本地库,然后替换集群上面的本地库就可以了。

  1.1 Hadoop 源码编译并安装Snappy压缩

  特别提醒

  1、保证你的jdk的版本是1.7而不是1.8

  2、在编译hadoop源码之前,替换掉./maven/conf目录下的setting.xml

  点击这里下载settings文件

  我们通过以下几个步骤即可完成Hadoop源码的编译以及Snappy安装。

  1.1.1 首先检查并安装gcc-c++

  在root用户下在线下载:

  yum -y install gcc-c++

  

 

  

 

  1.1.2 安装maven

  下载并解压apache-maven-3.3.3-bin.tar.gz

  tar -zxvf apache-maven-3.3.3-bin.tar.gz

  配置环境变量

  vi /etc/profile

  MAVEN_HOME=/usr/java/apache-maven-3.3.3

  PATH=$MAVEN_HOME/bin: $PATH

  Export MAVEN_HOME

  文件生效

  source /etc/profile

  查看是否安装成功

  mvn –v

  

 

  1.1.3 安装ProtocolBuffer

  下载并解压protobuf-2.5.0.tar.gz

  tar -zxvf protobuf-2.5.0.tar.gz

  mv protobuf-2.5.0 protobuf

  cd protobuf

  ./configure --prefix=/usr/local/protobuf

  make

  make check

  make install

  配置环境变量

  vi /etc/profile

  PROTOBUF_HOME=/usr/local/protobuf

  PATH=$PROTOBUF_HOME/bin:$PATH

  export PROTOBUF_HOME

  使文件生效

  source /etc/profile

  查看是否安装成功

  protoc --version

  

 

  1.1.4 安装cmake

  yum -y install cmake

  1.1.5 zlib安装

  yum -y install zlib

  1.1.6 openssl devel

  yum -y install openssl-devel

  1.1.7 安装snappy

  下载并解压snappy-1.1.3.tar.gz

  tar -zxvf snappy-1.1.3.tar.gz

  mv snappy-1.1.3 snappy

  cd snappy

  ./configure

  make

  make install

  1.1.8 Hadoop源码编译

  下载并解压hadoop-2.6.0-src.tar.gz,然后进入hadoop-2.6.0-src目录编码Hadoop源码和Snappy压缩。当然,大家选择其它版本的Hadoop也是可以的。

  ///usr/local/lib是Snappy默认安装目录

  mvn package -Pdist,native -DskipTests -Dtar -Dbundle.snappy -Dsnappy.lib=/usr/local/lib

  

 

  编译成功之后,在hadoop-2.6.0-src/hadoop-dist/target目录找到编译后的hadoop 安装包,然后安装启动Hadoop集群,会报本地库找不到的警告,解压编译后的hadoop 安装包,替换hadoop 集群所有节点native本地库即可。

  我们进入Hadoop 集群任意一个节点,切换到native目录下(./hadoop/lib/native),检查本地库是否安装成功。

  

 

  到这里,Hadoop 源码编译完毕,下面我们来配置Snappy压缩。

  1.2 Hadoop 配置Snappy压缩

  Hadoop 配置Snappy压缩比较简单,主要分为以下几步:

  1.2.1 配置hadoop-env.sh

  修改hadoop-env.sh配置文件,增加以下配置

  export HADOOP_HOME=/usr/java/hadoop 安装目录

  export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$HADOOP_HOME/lib/native

  1.2.2 配置core-site.xml

  修改core-site.xml配置文件,增加以下配置

  io.compression.codecsorg.apache.hadoop.io.compress.SnappyCodec

  1.1.1 配置mapred-site.xml

  如果MR中间结果需要使用snappy压缩,修改mapred-site.xml

mapreduce.map.output.compresstruemapreduce.map.output.compress.codecorg.apache.hadoop.io.compress.SnappyCodec

收藏 推荐 打印 | 录入:涤生2017 | 阅读:
相关新闻      
本文评论   查看全部评论 (0)
表情: 表情 姓名: 字数
点评:
       
评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款