`
韩悠悠
  • 浏览: 841980 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Hadoop的本地库(Native Libraries)介绍

 
阅读更多

 

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

 

目前在Hadoop中,本地库应用在文件的压缩上面:

 

<!--[if !supportLists]-->·     <!--[endif]-->zlib

 

<!--[if !supportLists]-->·     <!--[endif]-->gzip

 

在使用这两种压缩方式的时候,Hadoop默认会从$HADOOP_HOME/lib/native/Linux-*目录中加载本地库。

 

如果加载成功,输出为:

 

DEBUG util.NativeCodeLoader – Trying to load the custom-built native-hadoop library…
INFO util.NativeCodeLoader – Loaded the native-hadoop library

 

如果加载失败,输出为:

 

INFO util.NativeCodeLoader – Unable to load native-hadoop library for your platform… using builtin-java classes where applicable

 

Hadoop的配置文件core-site.xml中可以设置是否使用本地库:

 

<property>
  <name>hadoop.native.lib</name>
  <value>true</value>
  <description>Should native hadoop libraries, if present, be used.</description>
</property>

 

Hadoop默认的配置为启用本地库。

 

另外,可以在环境变量中设置使用本地库的位置:

 

export JAVA_LIBRARY_PATH=/path/to/hadoop-native-libs

 

有的时候也会发现Hadoop自带的本地库无法使用,这种情况下就需要自己去编译本地库了。在$HADOOP_HOME目录下,使用如下命令即可:

 

ant compile-native

 

编译完成后,可以在$HADOOP_HOME/build/native目录下找到相应的文件,然后指定文件的路径或者移动编译好的文件到默认目录下即可。

分享到:
评论

相关推荐

    hadoop2.4.0 本地库

    3. **MapReduce的Native Libraries**:MapReduce的本地库包括libhadoop和libhdfs等,这些库支持多线程和并行计算,进一步优化了数据处理速度。 4. **Glibc Compatibility**:64位的本地库通常会依赖于64位版本的GNU...

    hadoop 64位 本地库

    在Hadoop中,“本地库”(Native Libraries)是指为优化Hadoop性能而编译的一系列C/C++库,这些库与Java代码一起工作,以提供更好的I/O性能、计算效率以及对特定硬件(如GPU或SSD)的支持。尤其对于64位系统,使用...

    hadoop-2.9.2的64位本地库

    本地库(Native Libraries)在Hadoop中扮演着关键角色,它们主要是C++编写的,用于提升Hadoop的性能,尤其是在文件系统操作和内存管理等方面。这些库包括如libhdfs和libhadoop等,它们提供了与操作系统的直接交互,...

    mac下编译hadoop3.1.4源码生成的native库

    在Mac环境下编译Hadoop 3.1.4的源码以生成其本地库是一个涉及多步骤的过程,这对于理解Hadoop的内部工作原理以及自定义配置具有重要意义。Hadoop是Apache软件基金会的一个开源项目,主要处理分布式存储和计算任务。...

    hadoop-2.7.7-native.tar.gz

    在Hadoop 2.7.7版本中,`hadoop-2.7.7-native.tar.gz`是一个重要的组件,包含了Hadoop运行所需的本地库,这些库主要为Hadoop提供了对硬件级别的优化和支持,尤其是对于数据压缩和I/O操作。 **Hadoop Native ...

    hadoop-3.1.3-mac-native_lib.zip

    这些本地库(native libraries)包括如libhdfs、libssl和libcrypto等,它们为Hadoop提供了与操作系统交互的能力,例如处理文件系统操作、网络通信等。macOS系统特有的构建环境和依赖库可能与标准的Hadoop发行版不...

    CentOS hadoop native lib

    对于Linux系统,尤其是CentOS这样的企业级发行版,这些本地库被称为“native libraries”。 标题"CentOS hadoop native lib"指的是在CentOS 64位环境下,为Hadoop编译生成的本地库。这些库通常包含了C或C++编写的...

    hadoop native 包

    Hadoop的原生库(Native Libraries)是其核心组件之一,对于优化性能、提高数据处理速度至关重要。本文将深入探讨Hadoop原生包,特别是针对64位Linux系统编译生成的Hadoop+Snappy native包。 Hadoop原生库是一组C++...

    hadoop-2.5.0-cdh5.3.1centos6.4本地库

    本地库(Native Libraries)在Hadoop中起到的作用主要是提高性能和兼容性。例如,HDFS的块级I/O操作通常依赖于本地库,如libhdfs,它可以利用JNI(Java Native Interface)与C/C++编写的系统库进行通信,以实现更...

    hadoop2.8.1 64bit native 编译

    本文将深入探讨关于“hadoop2.8.1 64bit native 编译”的相关知识点,帮助你理解如何在64位环境下编译Hadoop的本地库。 1. **Hadoop Native Libraries**: Hadoop的Native Libraries是一组C/C++编写的库,它们提供...

    hadoop2.2.0-lib-native-macos.zip

    在Hadoop 2.2.0版本中,引入了一套专门为64位操作系统设计的本地库(native libraries),这个zip文件“hadoop2.2.0-lib-native-macos.zip”就是为了解决在Mac OS上运行Hadoop时可能会遇到的“cannot load native ...

    hadoop 2.7.2 64位的native

    在Hadoop 2.7.2版本中,"native"组件是指Hadoop的本地库,这些库是用C++编写的,用于提供与Java虚拟机(JVM)交互的性能优化接口。64位版本的Hadoop native库是专门为64位操作系统设计的,以充分利用这类系统的内存...

    hadoop-native原始包-压缩-native-2.7.2-ct7.x.tgz

    标题 "hadoop-native原始包-压缩-native-2.7.2-ct7.x.tgz" 指涉的是Hadoop项目中的一个特定组件——原生库(Native Libraries),这是一个针对Hadoop 2.7.2版本优化的压缩包,特别为CT7(可能是某个特定的计算或集群...

    在linux中编译64位的 hadoop 2.4.1native

    2.自己安装搜索“编译64位的hadoop 2.4.1”参考:http://hadoop.apache.org/docs/r2.3.0/hadoop-project-dist/hadoop-common/NativeLibraries.html The native hadoop library is written in ANSI C and is built ...

    Native Hadoop3.2.1 Library 64位编译

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

    hadoop2.4.1 linux64位本地库

    本地库(Native Libraries)在Hadoop中扮演着关键角色,它们是用C或C++编写的,提供了与操作系统直接交互的能力。这些库主要用于提高性能,尤其是在处理I/O操作和硬件加速时。在Hadoop中,本地库包括如libhdfs、JNI...

    hadoop-2.6.0-cdh5.14.0 64位 native文件库

    这些本地库(native libraries)是Hadoop的一部分,它们是用C++编写的,用于提供与操作系统更紧密的集成,特别是在处理I/O操作、内存管理和系统调用时。例如,它们包括了如libhdfs这样的库,用于本地文件系统访问,...

    64位 macOS High Sierra 10.13.2 编译的hadoop 2.8.3 native

    本资源是专为64位 macOS High Sierra 10.13.2操作系统编译的Hadoop 2.8.3的原生库(native libraries)。 首先,我们来了解什么是Hadoop。Hadoop由两个主要组件组成:Hadoop Distributed File System (HDFS) 和 ...

    hadoop2.2-64-native包(redhat6.3x64)

    标题中的"hadoop2.2-64-native包(redhat6.3x64)"指的是一个针对Red Hat Enterprise Linux 6.3 64位系统的Hadoop 2.2版本的本地库(native libraries)包。这个包是用户从源代码编译而来的,通常包含了Hadoop运行时所需...

    Ubuntu下hadoop-2.5.2编译好的64bit的native库

    Hadoop的运行效率和性能与它的本机库(Native Libraries)紧密相关,这些库提供了与操作系统的直接交互,比如内存管理和I/O操作。在Hadoop 2.5.2版本中,为64位系统编译的本机库是必不可少的组件,特别是在执行诸如...

Global site tag (gtag.js) - Google Analytics