概览

这个新手教程描写叙述了native(本地?原生?)hadoop库,包括了一小部分关于native hadoop共享库的讨论。

This guide describes the native hadoop library and includes a small discussion about native shared libraries.

注意: 依据你的环境,词组 "native libraries" 可能会变成 *.so,这样你就须要编译。然后,要是词组 "native compression" 变成 *.so,你就须要在编译时特别指定相关的压缩。(原文是在是翻不好! Depending on your environment, the term
"native libraries" could refer to all *.so's you need to compile; and, the term "native compression" could refer to all *.so's you need to compile that are specifically related to compression.)当期,然而。这个文档仅仅讨论 native hadoop 库(libhadoop.so).

Native Hadoop Library

Hadoop 有 native实现。是由于性能原因和Java的实现不可用而实现了特定的组件。

这些组件可在单节点,动态链接的 native 库中调用native hadoop库。在*nix平台上。库名是 libhadoop.so.

使用方法

使用hadoop native库相当简单:

  1. 检查组件
  2. 检查支持的平台
  3. 或者下载一个包括内置原生库的hadoop发行版,或者创建你自己的 native hadoop 库。不论是下载还是创建,库的名字都是一样的:libhadoop.so
  4. 安装压缩编码包 (>zlib-1.2, >gzip-1.2): + 假设你下载库安装一个或很多其它的开发包-不论你用哪一个压缩编码器来部署。 + 假设你创建库,则必须安装两个开发包。
  5. 检查执行时日志文件

组件

native hadoop 库包括两个组件。 zlib 和 gzip 压缩编码器:

  • zlib
  • gzip

native hadoop 库对gzip工作来说是必须的。

支持的平台

native hadoop 库仅在 *nix 平台上受支持。

这个库不能与 Cygwin或 Mac OS X 平台一同工作。

native hadoop 库主要用在 GNU/Linus 平台,已经在这些发行版上測试过:

  • RHEL4/Fedora
  • Ubuntu
  • Gentoo

在全部上面的 32/64 位发行版上。 native hadoop 库会分别执行一个 32/64 位的 jvm.

下载

内置的 32-bit i386-Linux native hadoop 作为hadoop发行版的一部分,位置是 lib/native 文件夹。

你能够从
Hadoop Common Releases 下载hadoop发行版。

确保要安装 zlib和/或 gzip 开发包 - 不论你用哪一个压缩编码器来部署。

Build

native hadoop 库有用 ANSI C 写的,用 GNU autotools-chain (autoconf, autoheader, automake, autoscan, libtool)构建。这意味着它应该能够直接在不论什么有标准C编译器和GNU autotools-chain(见支持的平台)的平台上构建库。

你须要安装在目标平台上的包:

  • C 编译器(比如, GNU C Compiler)
  • GNU Autools Chain: autoconf, automake, libtool
  • zlib-开发包 (稳定版本号 >= 1.2.0)

一旦你使用标准的hadoop build.xml file安装了先决的包。并传递compile.native 标志(设为true)去构建 native hadoop library:

   $ ant -Dcompile.native=true <target>

你应该能够看见新建的库:

   $ build/native/<platform>/lib

平台是系统属性的组合: $os.name-$os.arch-$sun.arch.data.model (如,
Linux-i386-32).

请注意:

  • 必须安装zlib 和 开发包到目标平台上,以便构建 native hadoop 库。然而。为了开发的话仅安装一个包就够了,假设你仅仅想用编码器的话。

  • 必须有正确的 32/64库 适合zlib,取决于目标平台的 32/64 位 jvm ,为的是构建和部署 native hadoop library.

执行时

bin/hadoop 脚本确保 native hadoop library 通过系统属性在 library path 上:-Djava.library.path=<path>

在执行时,为你的 MapReduce 任务检查 hadoop 日志文件。

  • 假设一切正常。那么: DEBUG util.NativeCodeLoader - 试着载入自构建的
    native-hadoop library...
     INFO util.NativeCodeLoader - 加载了的 native-hadoop library
  • 假设哪里出错了,那么: INFO util.NativeCodeLoader - 不能为你的平台加载
    native-hadoop library ... 使用可用的java类

Native Shared Libraries

你能够用DistributedCache 为分布和对称链接库文件加载不论什么的 native shared library 。

这个样例展示了怎样散布一个 a shared library, mylib.so, 并将其从一个 MapReduce任务中加载。

  1. 首先拷贝文件到 HDFS: bin/hadoop fs -copyFromLocal mylib.so.1
    /libraries/mylib.so.1
  2. job启动程序应该包括以下的: DistributedCache.createSymlink(conf); DistributedCache.addCacheFile("hdfs://host:port/libraries/mylib.so.
    1#mylib.so", conf);
  3. MapReduce 任务能够包括: System.loadLibrary("mylib.so");

注意: 假设你下载了或构建了 native hadoop library,你不须要使用 DistibutedCache 来使库对你的 MapReduce 任务可用。


Hadoop-2.2.0中文文档—— Common - Native Libraries Guide的更多相关文章

  1. Hadoop-2.2.0中文文档—— Common - 服务层认证

    目的 此文档描写叙述了怎样为Hadoop配置和管理 Service Level Authorization . 预备条件 确保已经安装Hadoop,配置和设置都正确了. 很多其它细节,请看:* 首次使 ...

  2. Hadoop-2.2.0中文文档—— Common - CLI MiniCluster

    目的 使用 CLI MiniCluster, 用户能够简单地仅仅用一个命令就启动或关闭一个单一节点的Hadoop集群,不须要设置不论什么环境变量或管理配置文件. CLI MiniCluster 同一时 ...

  3. Hadoop-2.2.0中文文档—— Common - 超级用户模拟别的用户

    简单介绍 此文档描写叙述了一个超级用户怎样在安全的方式下以还有一用户的名义提交作业或訪问hdfs. Use Case 下一部分描写叙述的的代码演示样例对此用户用例是可用的. 一个username为's ...

  4. Apache Spark 2.2.0 中文文档

    Apache Spark 2.2.0 中文文档 - 快速入门 | ApacheCN Geekhoo 关注 2017.09.20 13:55* 字数 2062 阅读 13评论 0喜欢 1 快速入门 使用 ...

  5. Apache Storm 1.1.0 中文文档 | ApacheCN

    前言 Apache Storm 是一个免费的,开源的,分布式的实时计算系统. 官方文档: http://storm.apache.org 中文文档: http://storm.apachecn.org ...

  6. Django2.0中文文档

    title: Django2.0中文文档 tags: Python,Django,入沐三分 grammar_cjkRuby: true --- Django2.0版本已经发布了,我们先来看一个图片 从 ...

  7. webpack4.0中文文档踩坑记录

    一直没有正儿八经去看过webpack4.0的文档,前段时间工作比较轻松,于是就有了此文...面都这样一个问题:请问在您的开发生涯中,令你最痛苦最无奈的是什么?小生的回答只有一个:“阅读那些令人发指的文 ...

  8. Apache Spark 2.2.0 中文文档 - Spark SQL, DataFrames and Datasets Guide | ApacheCN

    Spark SQL, DataFrames and Datasets Guide Overview SQL Datasets and DataFrames 开始入门 起始点: SparkSession ...

  9. Apache Spark 2.2.0 中文文档 - Spark SQL, DataFrames and Datasets

    Spark SQL, DataFrames and Datasets Guide Overview SQL Datasets and DataFrames 开始入门 起始点: SparkSession ...

随机推荐

  1. MySQL锁分类

    相对其他数据库而言,MySQL的锁机制比较简单,基最显著的特点是不同的存储引擎支持不同的锁机制.比如,MyISAM和MEMORY存储引擎采用的是表级锁(table-level locking);BDB ...

  2. ****timeago.js插件:jquery实现几分钟前、几小时前、几天前等时间差显示效果的代码实例

    前端 时间个性化 插件 jquery.timeago.js 关键词 : 时间格式化 刚刚 N分钟前 N小时前 N天前 N月前 N年前 MM-dd hh:mm  或者  yyyy-MM-dd 前端: & ...

  3. 195 Tenth Line

    Given a text file file.txt, print just the 10th line of the file. Example: Assume that file.txt has ...

  4. 西安电子科技大学第16届程序设计竞赛网络同步赛 G-小国的复仇

    sb找规律. 分解因数. #include<bits/stdc++.h> #define LL long long #define fi first #define se second # ...

  5. rabbitMQ的安装(Windows下)

    在公司接触到这一块,信息中间件的使用,在公司没有时间了解的更加深入,只是在简单的使用,这里将深入学习一番. 参考:http://blog.csdn.net/lu1005287365/article/d ...

  6. php 会话控制(了解cookie与session之间的区别与联系)

    相同点: 都可以在解决HTTP无状态的问题,使同一个客户端在访问网站的多次请求中,可以保存,设置信息,并且在请求事物之间建立联系. 不同点: 简单的说cookie的信息保存在客户端,session的信 ...

  7. Qt编译好的oracle驱动下载

    在上文,我累赘了一大堆,给大家写了一篇Qt如何编译OCI驱动,在这里自然就不再累赘了,直接附上编译好的文件供大家下载: <Qt5.3.1+OCI驱动下载地址> 有经济来源的请传送:http ...

  8. Linux-C网络编程

    简介 基础是TCP/IP协议,网上资料很多不再赘述. 推荐<图解TCP/IP> socket编程 网络字节序 发送主机通常将发送缓冲区中的数据按内存地址从低到高的顺序发出, 接收主机把从网 ...

  9. BeagleBone Black教程之BeagleBone Black设备的连接

    BeagleBone Black教程之BeagleBone Black设备的连接 BeagleBone Black开发前需要准备的材料 经过上面的介绍,相信你已经对BeagleBone有了大致的了解, ...

  10. [USACO08NOV]Time Management

    [USACO08NOV]Time Management 题目大意: 有\(n(n\le1000)\)个任务,同一时间只能进行一个任务.每个任务有一个进行时间\(t_i\)和一个截止时间\(s_i\), ...