問題描述: centos7,偽分佈模式下,啟動datanode後,通過JPS查看發現沒有相關進程,在日誌文件里也沒有任何提示。通過百度,網上一堆說什麼vesion 的ID不一致,不能解決我的問題。 經過搜索,https://community.hortonworks.com/questions/69 ...
問題描述:
centos7,偽分佈模式下,啟動datanode後,通過JPS查看發現沒有相關進程,在日誌文件里也沒有任何提示。通過百度,網上一堆說什麼vesion 的ID不一致,不能解決我的問題。
通過以下兩行命令
export HADOOP_ROOT_LOGGER=DEBUG,console
hdfs datanode
手動啟動datanode來進行debug,直到發現錯誤信息:java.lang.IllegalArgumentException: Does not contain a valid host:port authority
原來是我的hostname不合法,修改為不包含著‘.’ '/' '_'等非法字元。
再次啟動,解決問題。
PS:網上的問題大多都是因為頻繁格式化namenode造成的
格式化NameNode,會產生新的集群id,導致NameNode和DataNode的集群id不一致,集群找不到已往數據。所以,格式NameNode時,一定要先刪除data數據和log日誌,然後再格式化NameNode。
如果想保留數據的話,可考慮通過修改集群ID來保證一致性