1

システムの仕組みを学ぶために、Hadoop を疑似分散モードで実行しようとしています。インストールするために、Hadoop-3.0.0 をサイトからダウンロードし、展開しました。次のように構成を行いました(簡潔にするために構成タグを省略しています):

core-site.xml

<property>
   <name>fs.defaultFS</name>
   <value>hdfs://localhost/</value>
</property>

hdsf-site.xml

<property>
   <name>dfs.replication</name>
   <value>1</value>
</property>

mapred-site.xml

<property>
   <name>mapreduce.framework.name</name>
   <value>yarn</value> 
</property>

ヤーンサイト.xml

<property>
   <name>yarn.resourcemanager.hostname</name>
   <value>localhost</value> </property>
<property>
   <name>yarn.nodemanager.aux-services</name>
   <value>mapreduce_shuffle</value> 
</property>

これを行った後、使用してhdfsをフォーマットしました

hdfs namenode -format

また、次を使用してパスワードなしの ssh をセットアップしました。

ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa2
cat ~/.ssh/id_rsa2.pub >> ~/.ssh/authorized_keys

(また、構成ファイルを使用して id_rsa2.pub を localhost のデフォルトとして追加しました。これは、既に id_rsa.pub を他の何かに使用しており、何かを壊した場合に備えて組み合わせたくないためです)

localhost に ssh できます。すべてがよく見えます。

次に、start-dfs.sh を実行すると、次のエラーが表示されます。

Starting namenodes on [localhost]
Starting datanodes
Starting secondary namenodes [zm.local]
zm.local: zm@zm.local: Permission denied (publickey,password,keyboard-interactive).
2018-01-16 17:31:35,807 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable

jps を実行すると (yarn と mapreduce 履歴サーバーを起動した後)、次のようになります。

37921 NodeManager
38070 Jps
37434 NameNode
38060 JobHistoryServer
37821 ResourceManager

注目すべきことに、SecondaryNameNode が欠落しています。私の推測では、上記のエラーが原因です。

次に、hadoop の fs コマンドを使用してみると、フォルダーを作成して検索することができます。しかし、データをコピーしようとすると、NameNode が SAFEmode であるという通知を受け取ります。次を使用して保存モードをオフにすると:

hdfs dfsadmin -safemode leave

すぐにオンに戻ります。localhost の namenode ポートに移動すると、次のメッセージが表示されます。

Safe mode is ON. Resources are low on NN. Please add or free up more resourcesthen turn off safe mode manually. NOTE: If you turn off safe mode before adding resources, the NN will immediately return to safe mode. Use "hdfs dfsadmin -safemode leave" to turn safe mode off.

しかし、私にはたくさんのリソースがあります。単一のデータノードは割り当てられたスペースの 8% 未満を使用しており、ネームノードはほぼ 100GB のスペースを使用しています。datanode と namenode はどちらも正常であると報告しています。したがって、問題はセカンダリネームノードの欠如だと思います。それを念頭に置いて、SecondaryNameNode に PrimaryNameNode とは異なる権限の問題が発生する原因を知っている人はいますか? 代わりに、ローカル マシンのどこかに sNN を配置しようとしているようですが、チェックインすると/tmp/hadoop*、すべてのファイル アクセス許可が正常であるように見えます。

助けてくれてありがとう。

4

0 に答える 0