浅谈大数据Hadoop启动常见的问题及解决方案
本文中所涉及到的问题均来自扣丁学堂Hadoop学员的提问,下面是具体问题描述及解决方案,希望对正在学hadoop的学子有所帮助。
问题1:启动Hadoop后发现datanode无法启动?
问题描述:我启动hadoop的时候,datanode启动不了,发现日志里面报错:
ERRORorg.apache.hadoop.hdfs.server.datanode.DataNode:java.io.IOException:IncompatiblenamespaceIDsin/home/hadoop/hadoop-1.0.3/data:namenodenamespaceID=691360530;datanodenamespaceID=2008526552
atorg.apache.hadoop.hdfs.server.datanode.DataStorage.doTransition
(DataStorage.java:232)
atorg.apache.hadoop.hdfs.server.datanode.DataStorage
.recoverTransitionRead(DataStorage.java:147)
atorg.apache.hadoop.hdfs.server.datanode.DataNode
.startDataNode(DataNode.java:385)
atorg.apache.hadoop.hdfs.server.datanode.DataNode
.<init>(DataNode.java:299)
atorg.apache.hadoop.hdfs.server.datanode.DataNode.
makeInstance(DataNode.java:1582)
atorg.apache.hadoop.hdfs.server.datanode.DataNode
.instantiateDataNode(DataNode.java:1521)
atorg.apache.hadoop.hdfs.server.datanode.DataNode
.createDataNode(DataNode.java:1539)
atorg.apache.hadoop.hdfs.server.datanode.DataNode
.secureMain(DataNode.java:1665)
atorg.apache.hadoop.hdfs.server.datanode.DataNode
.main(DataNode.java:1682)
解决方案:
(1)停掉集群服务:sbin/stop-all.sh
(2)在出问题的datanode节点上删除data目录,data目录即是在hdfs-site.xml文件中配置的dfs.datanode.data.dir目录。
(3)格式化namenode:bin/hadoopnamenode-format
(4)重新启动集群:sbin/start-all.sh
问题2:每次启动hadoop之前需要每次都运行一次hadoopnamenode-format吗?
问题描述:每次启动hadoop之前需要每次都运行一次hadoopnamenode-format吗?
解决方案:
第一次安装hadoop集群的时候,需要运行hadoopnamenode-format格式化文件系统,初始化一些目录和文件。后面每次启动hadoop集群的时候,就不需要每次运行hadoopnamenode-format。除非不得已,否则不要轻易格式化文件系统,格式化文件系统会建立新的dfsnamedir目录,造成该目录下之前数据的丢失。
问题3:hadoop可以从其它数据库读取数据吗?
问题描述:我们公司让搞hadoop,我想知道的是hadoop可以从其它数据库读取数据吗?
解决方案:hadoop可以从数据库读取数据。
hadoop技术推出一度曾遭到关系数据库研究者的挑衅和批评,认为MapReduce不具有关系数据库中的结构化数据存储和处理能力。为此,hadoop社区和研究人员做了多的努力,在hadoop0.19版支持MapReduce访问关系数据库,如:MySQL、Mongodb、PostgreSQL、Oracle等几个数据库系统。