Как загрузить библиотеку native-hadoop в кластер Hadoop?

Я запускаю Revolution R Enterprise версии 7.0 в Cloudera Hadoop (CDH) версии 4.6 для создания дерева решений с использованием службы MapReduce.

Когда я запускаю вычислительный контекст кластера Hadoop, кажется, что библиотека native-hadoop не загружается. Я загрузил пакет RevoScaleR.

Я уже проверил блог Revolution Analytics, руководства в формате pdf и этот форум, но пока не нашел решения.

> rxSetComputeContext(myHadoopCluster)
> BetterTree <- rxDTree(CountryCode ~ IndicatorCode + 1960 + 1961 + 1962 + 1963 + 1964 + 1965 + 1966 + 1967 + 1968 + 1969 + 1970 + 1971 + 1972 + 1973 + 1974 + 1975 + 1976 + 1977 + 1978 + 1979 + 1980 + 1981 + 1982 + 1983 + 1984 + 1985 + 1986 + 1987 + 1988 + 1989 + 1990 + 1991 + 1992 + 1993 + 1994 + 1995 + 1996 + 1997 + 1998 + 1999 + 2000 + 2001 + 2002 + 2003 + 2004 + 2005 + 2006 + 2007 + 2008 + 2009 + 2010 + 2011 + 2012 + 2013, data=salida, blocksPerRead=30, maxUnorderedLevels = 1300,  cp=1e-5)
======  localhost.localdomain (Master HPA Process) has started run at Fri May 23 16:45:42 2014  ======
RxInitializeHadoop sSystemCommand: hadoop RevoScaleR -Dmapred.reduce.tasks=1     -Dmapred.min.split.size=9223372036854775807 /user/RevoShare/cloudera/F8D3BB9C6CDE411CA0F48520656EFE19    /.input /user/RevoShare/cloudera/F8D3BB9C6CDE411CA0F48520656EFE19/IRO.iro /share/better localhost.localdomain 8020 /usr/bin/Revoscript
14/05/23 16:46:40 WARN util.NativeCodeLoader: **Unable to load native-hadoop library for your  platform... using builtin-java classes where applicable**
RxInitializeHadoop after fixup sSystemCommand: hadoop  RevoScaleR  -Dmapred.reduce.tasks=1  -Dmapred.min.split.size=9223372036854775807  /user/RevoShare/cloudera/F8D3BB9C6CDE411CA0F48520656EFE19/.input  /user/RevoShare/cloudera/F8D3BB9C6CDE411CA0F48520656EFE19/IRO.iro  /share/better/*  localhost.localdomain  8020  /usr/bin/Revoscript
Exception in thread "main" java.lang.NoClassDefFoundError: RevoScaleR
Caused by: java.lang.ClassNotFoundException: RevoScaleR
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
Could not find the main class: RevoScaleR.  Program will exit.

HadoopMR output object '/user/RevoShare/cloudera/F8D3BB9C6CDE411CA0F48520656EFE19/IRO.iro' does not exist. Job has failed.
Error in rxCall("RxDTree", params) :
Error:  Error in rxCall("RxDTree", params) :

======  localhost.localdomain (Master HPA Process) has completed run at Fri May 23 16:51:50 2014  ======
Error in rxuHandleClusterJobTryFailure(retObject, hpcServerJob, autoCleanup,  :
Error completing job on cluster:
Error in rxCall("RxDTree", params) :

Я написал следующие команды в символе R для проверки RevoScaleR, но они не загружаются.

> library(RevoScaleR)
> is.loaded("RevoScaleR")
[1] FALSE

Не могли бы вы дать мне несколько советов, пожалуйста?

Спасибо.


person user3670555    schedule 24.05.2014    source источник
comment
Ваша проблема не в родной библиотеке Hadoop. Это просто предупреждение. Возможно, у вас нет RevoScaleR mapreduce jar в вашем пути к классам Hadoop. Попробуйте скопировать эту банку в папку с библиотекой Hadoop. Она должна называться что-то вроде scaleR-hadoop-0.1-SNAPSHOT.jar и, возможно, под /usr/lib64/Revo-7.x/hadoop/scripts. Я не уверен в путях, так как у меня нет доступа к установке 7.0.   -  person Eqbal    schedule 16.08.2016


Ответы (1)


Ваша проблема не в родной библиотеке Hadoop. Это просто предупреждение. Возможно, у вас нет RevoScaleR mapreduce jar в вашем пути к классам Hadoop. Попробуйте скопировать эту банку в папку с библиотекой Hadoop. Она должна называться что-то вроде scaleR-hadoop-0.1-SNAPSHOT.jar и, возможно, под /usr/lib64/Revo-7.x/hadoop/scripts. Я не уверен в путях, так как у меня нет доступа к установке 7.0.

person Eqbal    schedule 16.08.2016