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

概览

这个入门教程描述了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

时间: 2024-12-26 21:53:20

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

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

目的 使用 CLI MiniCluster, 用户可以简单地只用一个命令就启动或关闭一个单一节点的Hadoop集群,不需要设置任何环境变量或管理配置文件. CLI MiniCluster 同时启动一个 YARN/MapReduce 和 HDFS 集群. 这对那些想要快速体验一个真实的Hadoop集群或是测试依赖明显的Hadoop函数的非Java程序 的用户很有用. Hadoop Tarball 你需要从发布页获取tar包.或者,你可以从源码中自己编译. $ mvn clean install -

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

目的 此文档描述了如何为Hadoop配置和管理 Service Level Authorization . 预备条件 确保已经安装Hadoop,配置和设置都正确了.更多细节,请看:* 首次使用者的单节点设置 * 大的.分布式集群的集群设置. 概览 Service Level Authorization 是一个必要的初始认证机制,其确保客户端连接到一个有必要的.预配置的.权限和认证服务的特定的Hadoop服务.例如,一个 MapReduce 集群可以使用这个机制允许一个配置了的用户/组列表提交作业

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

pcDuino3下支持mmc启动,官方的Uboot是采用SPL框架实现的,因为内部的SRAM空间达到32K,我们完全可以在这32K空间内编写一个完整可用小巧的bootloader来完成引导Linux kernel的目的. 我们首先介绍下SPL框架,可以先看下<GNU ARM汇编--(十八)u-boot-采用nand_spl方式的启动方法>和<GNU ARM汇编--(十九)u-boot-nand-spl启动过程分析>,NAND_SPL也算是SPL框架下的一种模式. 当使用Nand f

Hadoop-2.2.0中文文档—— 从Hadoop 1.x 迁移至 Hadoop 2.x

简介 本文档对从 Apache Hadoop 1.x 迁移他们的Apache Hadoop MapReduce 应用到 Apache Hadoop 2.x 的用户提供了一些信息. 在 Apache Hadoop 2.x 中,我们已经把资源管理功能放入 分布式应用管理框架 的Apache Hadoop YARN,而 Apache Hadoop MapReduce (亦称 MRv2) 保持为一个纯分布式计算框架. 总之,之前的 MapReduce 运行时 (亦称 MRv1) 已经被重用并且不会有重大

Apache Storm 1.1.0 中文文档 | ApacheCN

前言  Apache Storm 是一个免费的,开源的,分布式的实时计算系统. 官方文档: http://storm.apache.org 中文文档: http://storm.apachecn.org ApacheCN 最近组织了翻译 Storm 1.1.0 中文文档 的活动,整体 翻译进度 为 96%. 感谢大家参与到该活动中来 感谢无私奉献的 贡献者,才有了这份 Storm 1.1.0 中文文档 感谢一路有你的陪伴,我们才可以做的更好,走的更快,走的更远,我们一直在努力 ... 网页地址:

Hadoop-2.2.0中文文档——MapReduce 下一代 -——集群配置

目的 这份文档描写叙述了怎样安装.配置和管理从几个节点到有数千个节点的Hadoop集群. 玩的话,你可能想先在单机上安装.(看单节点配置). 准备 从Apache镜像上下载一个Hadoop的稳定版本号. 安装 安装一个Hadoop集群,一般包含分发软件到全部集群中的机器上或者是安装RPMs. 一般地,集群中的一台机器被唯一地设计成NameNode,还有一台机器被设置成ResourceManager.这是master(主). 集群中剩下的机器作为DataNode 和 NodeManager.这些是

Hadoop-2.2.0中文文档——Common-Hadoop HTTP web控制台认证

简介 此文档描述了如何配置Hadoop HTTP web控制台,去要求用户认证. 默认地,Hadoop HTTP web控制台(JobTracker, NameNode, TaskTrackers 和 DataNodes)不需要任何认证就允许访问. 与Hadoop RPC相似, Hadoop HTTP web控制台可以被配置为需要使用HTTP SPNEGO协议认证(由FireFox或IE支持). 还有,Hadoop HTTP web控制台同等地支持Hadoop's Pseudo/Simple 认

Hadoop-2.2.0中文文档—— MapReduce 下一代 - Encrypted Shuffle

简介 Encrypted Shuffle capability (加密洗牌功能?)允许用HTTPS 和 可选的客户端验证 (也称作双向的 HTTPS, 或有客户端证书的 HTTPS) 去加密 MapReduce shuffle.它包括: 在HTTP 和 HTTPS 之间绑定 shuffle 的一个 Hadoop 配置 用来指定 keystore 和 truststore 属性的Hadoop配置(位置,类型,密码) 用于 shuffle 服务和reducer任务去取 shuffle 数据. 在集群

Hadoop-2.2.0中文文档—— MapReduce 下一代 -- 公平调度器

目的 此文档描述了 FairScheduler, Hadoop 的一个可插入式的调度器,允许 YARN 应用在一个大集群中公平地共享资源. 简介 公平调度是一种分配资源给应用的方法,以致到最后,平均上所有应用获得相等的资源.  Hadoop NextGen 能够调度多种类型的资源.默认的, Fair Scheduler 仅以内存为基础作公平调度决策.可以用Ghodsi 等开发的 Dominant Resource Fairness 概念配置调度内存和CPU.仅有一个应用运行时,这个应用使用整个集