[HADOOP] OS / X에서 Hadoop 기본 라이브러리를 찾을 수 없음
HADOOPOS / X에서 Hadoop 기본 라이브러리를 찾을 수 없음
github에서 hadoop 소스 코드를 다운로드하고 기본 옵션으로 컴파일했습니다.
mvn package -Pdist,native -DskipTests -Dtar -Dmaven.javadoc.skip=true
그런 다음 .dylib 파일을 $ HADOOP_HOME / lib에 복사했습니다.
cp -p hadoop-common-project/hadoop-common/target/hadoop-common-2.7.1/lib/native/*.dylib /usr/local/Cellar/hadoop/2.7.2/libexec/share/hadoop/lib
LD_LIBRARY_PATH가 업데이트되고 hdfs가 다시 시작되었습니다.
echo $LD_LIBRARY_PATH
/usr/local/Cellar/hadoop/2.7.2/libexec/lib:
/usr/local/Cellar/hadoop/2.7.2/libexec/share/hadoop/common/lib:/Library/Java/JavaVirtualMachines/jdk1.8.0_92.jdk/Contents/Home//jre/lib
(참고 : 이것은 Docker-spark에서 Hadoop "사용자 플랫폼에 대한 native-hadoop 라이브러리를로드 할 수 없습니다"오류에 대한 대답이 작동하지 않는다는 것을 의미합니다.)
그러나 checknative는 여전히 균일하게 false를 반환합니다.
$stop-dfs.sh && start-dfs.sh && hadoop checknative
16/06/13 16:12:32 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
Stopping namenodes on [sparkbook]
sparkbook: stopping namenode
localhost: stopping datanode
Stopping secondary namenodes [0.0.0.0]
0.0.0.0: stopping secondarynamenode
16/06/13 16:12:50 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
16/06/13 16:12:50 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
Starting namenodes on [sparkbook]
sparkbook: starting namenode, logging to /usr/local/Cellar/hadoop/2.7.2/libexec/logs/hadoop-macuser-namenode-sparkbook.out
localhost: starting datanode, logging to /usr/local/Cellar/hadoop/2.7.2/libexec/logs/hadoop-macuser-datanode-sparkbook.out
Starting secondary namenodes [0.0.0.0]
0.0.0.0: starting secondarynamenode, logging to /usr/local/Cellar/hadoop/2.7.2/libexec/logs/hadoop-macuser-secondarynamenode-sparkbook.out
16/06/13 16:13:05 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
16/06/13 16:13:05 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
Native library checking:
hadoop: false
zlib: false
snappy: false
lz4: false
bzip2: false
openssl: false
해결법
-
==============================
1.MacOS 10.12를 새로 설치하려면이 작업을 수행하려면 다음을 수행해야했습니다.
MacOS 10.12를 새로 설치하려면이 작업을 수행하려면 다음을 수행해야했습니다.
-
==============================
2.위의 @ andrewdotn의 응답에 몇 가지 누락 된 단계가 있습니다.
위의 @ andrewdotn의 응답에 몇 가지 누락 된 단계가 있습니다.
1) 단계 (3)에서 텍스트 파일에 게시 된 텍스트를 추가하여 패치를 만듭니다. "patch.txt"를 입력하고 "git apply patch.txt"를 실행하십시오.
2) javadba가 지시 한대로 파일을 복사하는 것 외에도 특정 응용 프로그램에서는 다음을 설정해야합니다.
export HADOOP_OPTS="-Djava.library.path=${HADOOP_HOME}/lib/native" export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:${HADOOP_HOME}/lib/native export JAVA_LIBRARY_PATH=$JAVA_LIBRARY_PATH:${HADOOP_HOME}/lib/native
-
==============================
3.필요한 단계는 * .dylib를 git 소스 build dir에서 해당 플랫폼의 $ HADOOP_HOME /
lib 디렉토리로 복사하는 것입니다. brew를 통해 설치된 OS / X의 경우 : 필요한 단계는 * .dylib를 git 소스 build dir에서 해당 플랫폼의 $ HADOOP_HOME /
lib 디렉토리로 복사하는 것입니다. brew를 통해 설치된 OS / X의 경우 : cp /git/hadoop/hadoop-dist/target/hadoop-2.7.1/lib/native/ /usr/local/Cellar/hadoop/2.7.2/libexec/share/hadoop/common/
우리는 지금 거기에 필요한 라이브러리를 볼 수 있습니다 :
$ll /usr/local/Cellar/hadoop/2.7.2/libexec/share/hadoop/common/*.dylib -rwxr-xr-x 1 macuser staff 149100 Jun 13 13:44 /usr/local/Cellar/hadoop/2.7.2/libexec/share/hadoop/common/libhadoop.dylib -rwxr-xr-x 1 macuser staff 149100 Jun 13 13:44 /usr/local/Cellar/hadoop/2.7.2/libexec/share/hadoop/common/libhadoop.1.0.0.dylib
그리고 이제 hadoop checknative 명령이 작동합니다.
$hadoop checknative 6/06/15 09:10:59 INFO zlib.ZlibFactory: Successfully loaded & initialized native-zlib library Native library checking: hadoop: true /usr/local/Cellar/hadoop/2.7.2/libexec/share/hadoop/common/libhadoop.dylib zlib: true /usr/lib/libz.1.dylib snappy: false lz4: true revision:99 bzip2: false openssl: false build does not support openssl.
-
==============================
4.@andrewdotn에 대한 답변으로 Hadoop 2.8.1과 함께 사용되는 patch.txt 파일이 있습니다 :
@andrewdotn에 대한 답변으로 Hadoop 2.8.1과 함께 사용되는 patch.txt 파일이 있습니다 :
diff --git a/hadoop-common-project/hadoop-common/src/CMakeLists.txt b/hadoop-common-project/hadoop-common/src/CMakeLists.txt index c93bfe78546..e8918f9ca29 100644 --- a/hadoop-common-project/hadoop-common/src/CMakeLists.txt +++ b/hadoop-common-project/hadoop-common/src/CMakeLists.txt @@ -20,6 +20,8 @@ # CMake configuration. # +SET(CUSTOM_OPENSSL_PREFIX /usr/local/opt/openssl) + cmake_minimum_required(VERSION 2.6 FATAL_ERROR) list(APPEND CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/..) @@ -50,8 +52,8 @@ get_filename_component(HADOOP_ZLIB_LIBRARY ${ZLIB_LIBRARIES} NAME) # Look for bzip2. set(STORED_CMAKE_FIND_LIBRARY_SUFFIXES ${CMAKE_FIND_LIBRARY_SUFFIXES}) -hadoop_set_find_shared_library_version("1") -find_package(BZip2 QUIET) +hadoop_set_find_shared_library_version("1.0") +find_package(BZip2 REQUIRED) if(BZIP2_INCLUDE_DIR AND BZIP2_LIBRARIES) get_filename_component(HADOOP_BZIP2_LIBRARY ${BZIP2_LIBRARIES} NAME) set(BZIP2_SOURCE_FILES diff --git a/hadoop-common-project/hadoop-common/src/main/conf/core-site.xml b/hadoop-common-project/hadoop-common/src/main/conf/core-site.xml index d2ddf893e49..ac8e351f1c8 100644 --- a/hadoop-common-project/hadoop-common/src/main/conf/core-site.xml +++ b/hadoop-common-project/hadoop-common/src/main/conf/core-site.xml @@ -17,4 +17,8 @@ <!-- Put site-specific property overrides in this file. --> <configuration> +<property> +<name>io.compression.codec.bzip2.library</name> +<value>libbz2.dylib</value> +</property> </configuration> diff --git a/hadoop-tools/hadoop-pipes/pom.xml b/hadoop-tools/hadoop-pipes/pom.xml index 8aafad0f7eb..d4832542265 100644 --- a/hadoop-tools/hadoop-pipes/pom.xml +++ b/hadoop-tools/hadoop-pipes/pom.xml @@ -55,7 +55,7 @@ <mkdir dir="${project.build.directory}/native"/> <exec executable="cmake" dir="${project.build.directory}/native" failonerror="true"> - <arg line="${basedir}/src/ -DJVM_ARCH_DATA_MODEL=${sun.arch.data.model}"/> + <arg line="${basedir}/src/ -DJVM_ARCH_DATA_MODEL=${sun.arch.data.model} -DOPENSSL_ROOT_DIR=/usr/local/opt/openssl"/> </exec> <exec executable="make" dir="${project.build.directory}/native" failonerror="true"> <arg line="VERBOSE=1"/>
from https://stackoverflow.com/questions/37800605/hadoop-native-libraries-not-found-on-os-x by cc-by-sa and MIT license
'HADOOP' 카테고리의 다른 글
[HADOOP] Hadoop 및 Amazon Web Services [닫힘] (0) | 2019.07.06 |
---|---|
[HADOOP] 스파크 / 스칼라에서 RDD를 데이터 프레임으로 변환 (0) | 2019.07.06 |
[HADOOP] Hadoop 기계 학습 / 데이터 마이닝 프로젝트 아이디어? [닫은] (0) | 2019.07.06 |
[HADOOP] mapper (Hadoop)에서 MATLAB 코드를 사용하는 방법은 무엇입니까? (0) | 2019.07.06 |
[HADOOP] hadoop에서 hcatalog의 사용은 무엇입니까? (0) | 2019.07.06 |