2011-07-14 7 views
1

libhdfs(外部アプリケーションとhdfsとのインタフェースを可能にするネイティブ共有ライブラリ)をコンパイルしようとしています。これは、ヒューズを使用してHadoopのhdfsをマウントするために必要ないくつかのステップの1つです。ヒューズを使用してHDFSをマウントしようとしています。 libhdfsをコンパイルできません

コンパイルはしばらくの間、うまく行くようだが、「BUILD FAILED」と、次のような問題点の要約で終了 -

コモンズ・ログ#コモンズ・ロギング; 1.0.4:設定コモンズロギング#には見られませんcommons-logging; 1.0.4: 'master'。 org.apache.hadoop#Hadoop; working @ btsotbal800 commons-logging

log4j#log4j; 1.2.15:log4j#log4j; 1.2.15: 'master'で設定が見つかりませんでした。 org.apache.hadoop#Hadoopから要求されました。log4j

ここで私はこれについていくつかの質問をしています。私がこれを行うために使っている本は、これらは本当に何か。

  1. Hadoopが使用するcommons-loggingおよびlog4jライブラリはありますか?
  2. これらのライブラリは、$ HADOOP_HOME/libにあるようです。彼らはjarファイルです。それらを抽出し、いくつかの設定を変更してから、それらを再び瓶に再パックする必要がありますか?
  3. 上記のエラーで「マスター」とは何を意味していますか?ライブラリのバージョンは異なりますか?

ご提供いただける洞察力はありがとうございます。

答えて

4

cloudera hadoop(cdh3u2)を使用している場合は、ヒューズプロジェクトを構築する必要はありません。

ヒューズが "$ HADOOP_HOMEに/ contrib /ヒューズ-DFS/SRC/fuse_dfs_wrapper.sh" を更新マウントする前に、あなたのように

$ HADOOP_HOME/C++/libディレクトリ内の(libhdfs.so *)バイナリを見つけることができます

HADOOP_HOMEに/ contrib /ヒューズ-DFS/SRC/fuse_dfs_wrapper.sh

#!/bin/bash 

for f in ${HADOOP_HOME}/hadoop*.jar ; do 
    export CLASSPATH=$CLASSPATH:$f 
done 

for f in ${HADOOP_HOME}/lib/*.jar ; do 
    export CLASSPATH=$CLASSPATH:$f 
done 

export PATH=$HADOOP_HOME/contrib/fuse-dfs:$PATH 
export LD_LIBRARY_PATH=$HADOOP_HOME/c++/lib:/usr/lib/jvm/java-6-sun-1.6.0.26/jre/lib/amd64/server/ 
fuse_dfs [email protected] 

LD_LIBRARY_PATHがここにディレクトリのリストが含まれている次の
"$ HADOOP_HOME/C++/libに" libhdfs.soと
"/usr/lib/jvm/java-6-sun-1.6.0.26/jre/lib/amd64/server/" が含ま

は、次を使用して、あなたのJAVA_HOMEとして \# modify /usr/lib/jvm/java-6-sun-1.6.0.26/jre/lib/amd64/server/ libjvm.so含まれてい次のコマンド

fusermount -u /home/510600/mount1 

を使用アンマウントするための取付HDFS

fuse_dfs_wrapper.sh dfs://localhost:9000/ /home/510600/mount1 

ためのコマンドは、私はないクラスタモードでのみのHadoop擬似モードでヒューズをテスト

関連する問題