hadoop:拒绝次要namenode权限

lh80um4z  于 2021-05-29  发布在  Hadoop
关注(0)|答案(0)|浏览(202)

我试图在伪分布式模式下运行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>

yarn-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 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 history server之后),我有以下功能:

37921 NodeManager
38070 Jps
37434 NameNode
38060 JobHistoryServer
37821 ResourceManager

值得注意的是,secondarynamenode丢失了,我的假设是由于上面的错误。
然后我可以尝试使用hadoop的fs命令,我可以创建一个文件夹并查找它。但是如果我试图复制任何数据,我会得到通知namenode处于安全模式。如果我使用以下命令关闭保存模式:

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都报告为正常。因此,我认为问题在于缺少辅助namenode。记住这一点,是否有人知道是什么导致secondarynamenode与primarynamenode有不同的权限问题?它似乎试图把snn放在本地机器的某个地方,但是当我签入时 /tmp/hadoop* ,所有文件权限似乎都正常。
谢谢你的帮助。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题