安装hadoop启动之后总有警告:Unable to load native-hadoop library for your platform... using builtin-Javaclasses where applicable

原因:
Apache提供的hadoop本地库是32位的,而在64位的服务器上就会有问题,因此需要自己编译64位的版本。

解决方法:

一、 去网站:http://dl.bintray.com/sequenceiq/sequenceiq-bin/  下载对应的编译版本,解压到hadoop安装目录的lib/native

二、本地编译

1. 下载hadoop 源码 并解压

官网下载  http://hadoop.apache.org/releases.html ,此处选择2.8.0

2. 安装配置maven

配置环境变量

mvn -v 验证

3. 打包编译

mvn package -Pdist,native -DskipTests -Dtar

构建出错

序列化工具 protobuf 未安装,安装配置protobuf .

1).github 上下载protobuf  :  https://github.com/google/protobuf/releases

解压

配置

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

出现错误

安装c++ 库

yum install glibc-headers gcc-c++

再次执行配置./configure --prefix=/usr/local/protoc/

如下信息,配置成功。

执行 make && make install ,

又出错

参考了一下google 的bug, https://github.com/google/protobuf/pull/2599/commits/141a1dac6ca572056c6a8b989e41f6ee213f8445

修改 metadata_lite.h 源码

再次执行 make && make install , 没有出错信息。

配置环境变量,验证 protoc --version

至此,protobuf 安装配置成功。

继续hadoop 编译,卧槽 ,版本过高,重装为2.5.0 .

2.5.0 安装配置过程一切正常。

继续 hadoop 编译

无法执行 cmake ,安装cmake

继续 hadoop 编译

安装 zlib-devel  , openssl-devel 包,再次编译hadoop.

将lib/native 下的包放到hadoop 下

编译完成后执行 hadoop checknative -a ,如下信息成功。

至此,hadoop native 编译结束。

native 文件 :
hadoop-2.8.0-native.tar.gz

[hadoop] hadoop native libraries 编译的更多相关文章

  1. Hadoop的本地库(Native Libraries)介绍

    Hadoop是使用Java语言开发的,但是有一些需求和操作并不适合使用java,所以就引入了本地库(Native Libraries)的概念,通过本地库,Hadoop可以更加高效地执行某一些操作. 目 ...

  2. 自己动手一步一步安装hadoop(含编译hadoop的native本地包)

    近期项目须要用到hadoop.边学习边应用,第一步无疑是安装hadoop.我安装的是hadoop-2.4.1.以下是具体步骤,做备忘以后查看 一.下载依赖软件 1.java hadoop官网说明仅仅支 ...

  3. Hadoop 101: Programming MapReduce with Native Libraries, Hive, Pig, and Cascading

    和Hadoop交互的四种方法: 1. Native Libraries 2. Hive 3. Pig 4. Cascading At a high level, people use the nati ...

  4. Hadoop示例程序WordCount编译运行

    首先确保Hadoop已正确安装及运行. 将WordCount.java拷贝出来 $ cp ./src/examples/org/apache/hadoop/examples/WordCount.jav ...

  5. Hadoop源码的编译过程详细解读(各版本)

    说在前面的话   重新试多几次.编译过程中会出现下载某个包的时间太久,这是由于连接网站的过程中会出现假死,按ctrl+c,重新运行编译命令. 如果出现缺少了某个文件的情况,则要先清理maven(使用命 ...

  6. hadoop.io.native.NativeID$Windows.access0 报错问题解决

    系统:win10 hadoop-2.6.0版本 java:1.8 版本32位   wordcount在本地运行时报错: Exception in thread "main" jav ...

  7. Hadoop-2.2.0中文文档—— Common - Native Libraries Guide

    概览 这个新手教程描写叙述了native(本地?原生?)hadoop库,包括了一小部分关于native hadoop共享库的讨论. This guide describes the native ha ...

  8. [hadoop] hadoop “util.NativeCodeLoader: Unable to load native-hadoop library for your platform”

    执行 bin/hdfs dfs -mkdir /user,创建目录时出现警告信息. WARN util.NativeCodeLoader: Unable to load native-hadoop l ...

  9. 安卓真机或者模拟器运行安装应用时提示 Failure [INSTALL_FAILED_NO_MATCHING_ABIS: Failed to extract native libraries, res=-113]解决办法

    有时候为了方便调试APP,会在电脑上开启模拟器来调试我们的代码,有时候会出现 Failure [INSTALL_FAILED_NO_MATCHING_ABIS: Failed to extract n ...

随机推荐

  1. 应用通信-方案二:Feign

    ------------------客户端controller层--------------------- @RestController public class ClientFeignContro ...

  2. Android笔记(五):广播接收者(Broadcast Receiver)

    Android有四大组件,分别为:Activity(活动).Service(服务).Content Provider(内容提供器).Broadcast Receiver(广播接收者). 引入广播的目的 ...

  3. Delphi 开发ActiveX控件(非ActiveForm)

    Delphi 开发ActiveX控件(非ActiveForm) Q:为什么不采用ActiveForm工程?通过它可以快速开发带窗体控件,创建过程也非常简单(都不用考虑安全接口问题),很省事! A:如果 ...

  4. block 相关清单

    对Objective-C中Block的追探  李博士

  5. iOS-获取当前时间的年、月、日、时、分、秒

    //获取当前时间02    NSDate *now = [NSDate date];03    NSLog(@”now date is: %@”, now);0405    NSCalendar *c ...

  6. Android批量图片加载经典系列——使用LruCache、AsyncTask缓存并异步加载图片

    一.问题描述 使用LruCache.AsyncTask实现批量图片的加载并达到下列技术要求 1.从缓存中读取图片,若不在缓存中,则开启异步线程(AsyncTask)加载图片,并放入缓存中 2.及时移除 ...

  7. IOS 数据存储之 SQLite详解

    在IOS开发中经常会需要存储数据,对于比较少量的数据可以采取文件的形式存储,比如使用plist文件.归档等,但是对于大量的数据,就需要使用数据库,在IOS开发中数据库存储可以直接通过SQL访问数据库, ...

  8. sublime python3中读取和写入文件时如何解决编码问题

    # -*- coding: utf-8 -*- #分析用户身份审核信息 #python 3.5 #xiaodeng #http://apistore.baidu.com/apiworks/servic ...

  9. Spark初识

    一.简介 1.什么是Spark 官网地址:http://spark.apache.org/ Apache Spark™是用于大规模数据处理的统一分析引擎. 从右侧最后一条新闻看,Spark也用于AI人 ...

  10. Android 全局弹出版本更新 Dialog 思考和解决办法

    Android 针对版本更新,需要做全局的弹出(需求:版本更新只需要在 App 内全局弹出就可以),思路是使用 AlertDialog ,然后设置 setType 为 TYPE_ALERT_WINDO ...