前言 

做为大数据入门的基础,hadoop是每个大数据开发人员几乎不可避免的基础,目前hadoop已经发展到3.x.x版本,但当前企业使用的主流还是2.x.x版本,hadoop官网提供了编译后的hadoop,但这个是32位的,并且未供带C程序访问的接口,我们在使用本地库(可以用来做压缩,以及支持C程序等等)的时候就会出问题,所以需要自己再编译,之前自己编译过一次,但没有做总结,这次重新编译,做个总结记录一下。

一、环境准备

我是用的是 hadoop-2.8.5-src.tar.gz 版本,解压后找到BUILDING.txt

此文件列出了我们需要使用的一些环境,官方给的是在Ubuntu上进行编译,这里我使用的是CentOS7 minimal,部分软件下载 Ubuntu和CentOS不同,这里给大家总结了出来,执行以下命令即可

 yum install -y gcc
yum install -y gcc-c++
yum install -y cmake
yum install -y snappy
yum install -y snappy-devel
yum install -y openssl
yum install -y autoconf
yum install -y libtool
yum install -y zlib-devel
yum install -y pkgconfig
yum install -y openssl-devel
yum install -y bzip2
yum install -y bzip2-devel
yum install -y bzip2-libs

上面是直接使用yum即可安装的,下面是需要我们自己下载相关文件编译安装,这里就不写这些软件的安装方式了,其中protobuf必须使用 2.5.0版本(注:谷歌将protobuf buffers放到github上后,已经找不到2.5.0官方版本了,这里提供一个从别人那里Fork到的提供给大家,protobuf-2.5.0)

  1. 系统:CentOS Linux release 7.4.1708(minimal)
  2. JDK:  java version "1.8.0_202"
  3. MAVEN: apache-maven-3.6.0
  4. ant: apache-ant-1.10.5
  5. protobuf: protobuf-2.5.0  (必须)

二、执行安装

进入解压后的hadoop-2.8.5-src,执行  (这里maven可以将仓库挂载到宿主机的maven仓库,减少网络压力,挂载方法可以参考这里)

mvn package -Pdist,native -Drequire.snappy -DskipTests -Dtar

要确保网络的通常,此过程比较耗时,中间可能会出现有关jar包下载失败导致编译失败,再次编译即可

编译完成后,hadoop-2.8.5-src/hadoop-dist/target  目录下即可找到我们编译后的文件

解压  hadoop-2.8.5-src/hadoop-dist/target/hadoop-2.8.5.tar.gz  , bin文件夹下执行 ./hadoop checknative,即可查看是否成功将本地相关库编译成功

最后啰嗦一下:

 java -version       #java查看版本
mvn -v #maven查看版本
ant -version #ant查看版本
protoc --version #protocol查看版本

Apache版hadoop编译的更多相关文章

  1. Hadoop介绍及最新稳定版Hadoop 2.4.1下载地址及单节点安装

     Hadoop介绍 Hadoop是一个能对大量数据进行分布式处理的软件框架.其基本的组成包括hdfs分布式文件系统和可以运行在hdfs文件系统上的MapReduce编程模型,以及基于hdfs和MapR ...

  2. Windows Azure HDInsight 支持预览版 Hadoop 2.2 群集

     Windows Azure HDInsight 支持预览版 Hadoop 2.2 群集 继去年 10 月推出 Windows Azure HDInsight 之后,我们宣布 Windows Az ...

  3. Hadoop编译打包记录

    Hadoop编译打包,基于2.7.2版本的源码. # 打包过程中需要使用到的工具 java -version mvn -version ant -version type protoc type cm ...

  4. APUE学习--第三版apue编译

    第三版apue编译:     1. 首先在  http://www.apuebook.com/   下载源码解压:      tar zxvf src.3e.tar.gz 看完Readme可知,直接执 ...

  5. discuz论坛apache日志hadoop大数据分析项目:清洗数据核心功能解说及代码实现

    discuz论坛apache日志hadoop大数据分析项目:清洗数据核心功能解说及代码实现http://www.aboutyun.com/thread-8637-1-1.html(出处: about云 ...

  6. Golang版protobuf编译

    官方网址: https://developers.google.com/protocol-buffers/ (需要FQ) 代码仓库: https://github.com/google/protobu ...

  7. exception: java.net.ConnectException: Connection refused; For more details see: http://wiki.apache.org/hadoop/ConnectionRefused

    1.虽然,不是大错,还说要贴一下,由于我运行run-example streaming.NetworkWordCount localhost 9999的测试案例,出现的错误,第一感觉就是Spark没有 ...

  8. Linux - Unix环境高级编程(第三版) 代码编译

    Unix环境高级编程(第三版) 代码编译 本文地址:http://blog.csdn.net/caroline_wendy 时间:2014.10.2 1. 下载代码:http://www.apuebo ...

  9. Hadoop编译源码

    Hadoop编译源码 克隆一个虚拟机 然后一步一步安装就行 安装所需:链接: https://pan.baidu.com/s/1jIZlQmi 密码: gggv 5.1 前期准备工作 1)CentOS ...

随机推荐

  1. overflow:hidden失效

    overflow:hidden失效 为了页面的健壮性,我们常常需要使用overflow:hidden.有时候是为了防止布局被撑开,有时候是为了配合其它规则实现文字截断,还有时候纯粹是为了创建块级上下文 ...

  2. neo4j APOC与自定义存储过程环境搭建

    neo4j APOC与自定义存储过程环境搭建 主要参考资料:APOC官网https://neo4j-contrib.github.io/neo4j-apoc-procedures/APOC介绍 PPT ...

  3. Pyhton第八节 字典补充

    Python 字典的基本元素是键值对(key-value), 每个键值对的key和value之间用:分割:每个键值对之间用,分割:整个键值对用花括号{}包围 字典内的键(key)必须唯一,值不需要唯一 ...

  4. ASP.NET MVC 学习笔记之View 和Redriect的区别

    首先先说一下Redriect 和RedirectToAction 两个没什么区别,都是向浏览器发送302 Found相应,再有浏览器向对应的url进行请求 只是参数的意义不同而已 再说Redirect ...

  5. 2018-2-13-git-cannot-lock-ref

    title author date CreateTime categories git cannot lock ref lindexi 2018-2-13 17:23:3 +0800 2018-2-1 ...

  6. C 编译器的“贪心法”

    C语言中有单字符符号和多字符符号之分,那么,当C编译器读入一个字符‘/’后又跟了一个字符‘*’,那么编译器就必须做出判断:是将其作为两个分别的符号对待,还是合起来作为一个符号对待.C语言对这个问题的解 ...

  7. logging自定义模板

    import logging logger=logging.getLogger('这是一个日志')#先生成一个日志 formatter=logging.Formatter('%(asctime)s % ...

  8. thrift 的required、optional探究

    原因 经常使用thrift来编写rpc通信,但是对下面两个问题还是有些疑惑 thrift 的required.optional和不写有什么区别 optional不设置isset的话被传输后值? 实验 ...

  9. 华视身份证读卡器获取uid号vue单文件组件版本

    <template> <div id="app" ref="app"> <object ref="CertCtl&quo ...

  10. web.xml中配置——配置springmvc

    <servlet> <servlet-name>springmvc</servlet-name> <servlet-class>org.springfr ...