Hadoop:次要NameNode权限被拒绝

时间:2018-01-17 15:30:11

标签: hadoop ssh namenode

我正在尝试以伪分布式模式运行Hadoop以了解系统的工作方式。为了安装它,我从网站上下载了Hadoop-3.0.0,解开它。我完成了以下配置(为简洁起见,省略了配置标签):

芯-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>

纱-site.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来做其他事情,并且在我破坏了某些内容时不想混用和匹配)

我能够ssh到localhost。一切看起来都很好。

然后我运行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.

但是,我有足够的资源。单个datanode占用的空间不到8%,namenode占用了近100GB的空间。 datanode和namenode都报告为健康。因此,我认为问题是缺少辅助名称节点。考虑到这一点,有人知道什么可能导致SecondaryNameNode从PrimaryNameNode有不同的权限问题?它似乎试图将sNN放在本地机器上的某个位置 - 但是当我签入/tmp/hadoop*时,所有文件权限似乎都是正常的。

感谢您的帮助。

0 个答案:

没有答案