Apache版hadoop编译
前言
做为大数据入门的基础,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)

- 系统:CentOS Linux release 7.4.1708(minimal)
- JDK: java version "1.8.0_202"
- MAVEN: apache-maven-3.6.0
- ant: apache-ant-1.10.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编译的更多相关文章
- Hadoop介绍及最新稳定版Hadoop 2.4.1下载地址及单节点安装
Hadoop介绍 Hadoop是一个能对大量数据进行分布式处理的软件框架.其基本的组成包括hdfs分布式文件系统和可以运行在hdfs文件系统上的MapReduce编程模型,以及基于hdfs和MapR ...
- Windows Azure HDInsight 支持预览版 Hadoop 2.2 群集
Windows Azure HDInsight 支持预览版 Hadoop 2.2 群集 继去年 10 月推出 Windows Azure HDInsight 之后,我们宣布 Windows Az ...
- Hadoop编译打包记录
Hadoop编译打包,基于2.7.2版本的源码. # 打包过程中需要使用到的工具 java -version mvn -version ant -version type protoc type cm ...
- APUE学习--第三版apue编译
第三版apue编译: 1. 首先在 http://www.apuebook.com/ 下载源码解压: tar zxvf src.3e.tar.gz 看完Readme可知,直接执 ...
- discuz论坛apache日志hadoop大数据分析项目:清洗数据核心功能解说及代码实现
discuz论坛apache日志hadoop大数据分析项目:清洗数据核心功能解说及代码实现http://www.aboutyun.com/thread-8637-1-1.html(出处: about云 ...
- Golang版protobuf编译
官方网址: https://developers.google.com/protocol-buffers/ (需要FQ) 代码仓库: https://github.com/google/protobu ...
- exception: java.net.ConnectException: Connection refused; For more details see: http://wiki.apache.org/hadoop/ConnectionRefused
1.虽然,不是大错,还说要贴一下,由于我运行run-example streaming.NetworkWordCount localhost 9999的测试案例,出现的错误,第一感觉就是Spark没有 ...
- Linux - Unix环境高级编程(第三版) 代码编译
Unix环境高级编程(第三版) 代码编译 本文地址:http://blog.csdn.net/caroline_wendy 时间:2014.10.2 1. 下载代码:http://www.apuebo ...
- Hadoop编译源码
Hadoop编译源码 克隆一个虚拟机 然后一步一步安装就行 安装所需:链接: https://pan.baidu.com/s/1jIZlQmi 密码: gggv 5.1 前期准备工作 1)CentOS ...
随机推荐
- overflow:hidden失效
overflow:hidden失效 为了页面的健壮性,我们常常需要使用overflow:hidden.有时候是为了防止布局被撑开,有时候是为了配合其它规则实现文字截断,还有时候纯粹是为了创建块级上下文 ...
- neo4j APOC与自定义存储过程环境搭建
neo4j APOC与自定义存储过程环境搭建 主要参考资料:APOC官网https://neo4j-contrib.github.io/neo4j-apoc-procedures/APOC介绍 PPT ...
- Pyhton第八节 字典补充
Python 字典的基本元素是键值对(key-value), 每个键值对的key和value之间用:分割:每个键值对之间用,分割:整个键值对用花括号{}包围 字典内的键(key)必须唯一,值不需要唯一 ...
- ASP.NET MVC 学习笔记之View 和Redriect的区别
首先先说一下Redriect 和RedirectToAction 两个没什么区别,都是向浏览器发送302 Found相应,再有浏览器向对应的url进行请求 只是参数的意义不同而已 再说Redirect ...
- 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 ...
- C 编译器的“贪心法”
C语言中有单字符符号和多字符符号之分,那么,当C编译器读入一个字符‘/’后又跟了一个字符‘*’,那么编译器就必须做出判断:是将其作为两个分别的符号对待,还是合起来作为一个符号对待.C语言对这个问题的解 ...
- logging自定义模板
import logging logger=logging.getLogger('这是一个日志')#先生成一个日志 formatter=logging.Formatter('%(asctime)s % ...
- thrift 的required、optional探究
原因 经常使用thrift来编写rpc通信,但是对下面两个问题还是有些疑惑 thrift 的required.optional和不写有什么区别 optional不设置isset的话被传输后值? 实验 ...
- 华视身份证读卡器获取uid号vue单文件组件版本
<template> <div id="app" ref="app"> <object ref="CertCtl&quo ...
- web.xml中配置——配置springmvc
<servlet> <servlet-name>springmvc</servlet-name> <servlet-class>org.springfr ...