大讲台谈Hadoop启动常见的问题及解决方案(一)
2015-08-12 18:52
543 查看
本文中所涉及到的问题均来自大讲台Hadoop学员的提问,下面是具体问题描述及解决方案,希望对正在学hadoop的学子有所帮助。
ERROR org.apache.hadoop.hdfs.server.datanode.DataNode: java.io.IOException:Incompatible namespaceIDs in /home/hadoop/hadoop-1.0.3/data: namenodenamespaceID = 691360530; datanode namespaceID = 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)
at org.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/hadoop namenode -format
(4)重新启动集群:sbin/start-all.sh
解决方案:
第一次安装hadoop集群的时候,需要运行hadoop namenode -format格式化文件系统,初始化一些目录和文件。后面每次启动hadoop集群的时候,就不需要每次运行hadoop namenode -format。除非不得已,否则不要轻易格式化文件系统,格式化文件系统会建立新的dfs name dir目录,造成该目录下之前数据的丢失。
解决方案:hadoop可以从数据库读取数据。
hadoop技术推出一度曾遭到关系数据库研究者的挑衅和批评,认为MapReduce不具有关系数据库中的结构化数据存储和处理能力。为 此,hadoop社区和研究人员做了多的努力,在hadoop0.19版支持MapReduce访问关系数据库,如:MySQL、Mongodb、PostgreSQL、Oracle 等几个数据库系统。
问题1:启动Hadoop后发现datanode无法启动?
问题描述:我启动hadoop的时候,datanode 启动不了,发现日志里面报错:ERROR org.apache.hadoop.hdfs.server.datanode.DataNode: java.io.IOException:Incompatible namespaceIDs in /home/hadoop/hadoop-1.0.3/data: namenodenamespaceID = 691360530; datanode namespaceID = 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)
at org.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/hadoop namenode -format
(4)重新启动集群:sbin/start-all.sh
问题2:每次启动hadoop之前需要每次都运行一次hadoop namenode -format 吗?
问题描述:每次启动hadoop之前需要每次都运行一次hadoop namenode -format 吗?解决方案:
第一次安装hadoop集群的时候,需要运行hadoop namenode -format格式化文件系统,初始化一些目录和文件。后面每次启动hadoop集群的时候,就不需要每次运行hadoop namenode -format。除非不得已,否则不要轻易格式化文件系统,格式化文件系统会建立新的dfs name dir目录,造成该目录下之前数据的丢失。
问题3:hadoop可以从其它数据库读取数据吗?
问题描述:我们公司让搞hadoop,我想知道的是hadoop可以从其它数据库读取数据吗?解决方案:hadoop可以从数据库读取数据。
hadoop技术推出一度曾遭到关系数据库研究者的挑衅和批评,认为MapReduce不具有关系数据库中的结构化数据存储和处理能力。为 此,hadoop社区和研究人员做了多的努力,在hadoop0.19版支持MapReduce访问关系数据库,如:MySQL、Mongodb、PostgreSQL、Oracle 等几个数据库系统。
相关文章推荐
- Linux中的netstat命令使用教程
- Shell编程之正则表达式
- context:property-placeholder
- Linux内核:写proc文件的返回值问题
- linux scp permission denied
- Could not calculate build plan: Plugin org.apache.maven.plugins:maven-resources-plugin:2.5 or one of
- Linux学习笔记---目录处理命令---删除文件或目录
- Linux下更改转移mysql数据库目录
- 关于使用openfiler作为共享存储来安装rac时的问题
- Hadoop YARN新特性—label based scheduling
- linux下用cmake
- 学习OpenGL好地址。
- Xtradb+Haproxy高可用数据库集群(三)sysbench性能测试篇
- Xtradb+Haproxy高可用数据库集群(三)sysbench性能测试篇
- Linux下多命令执行
- hadoop的MR如何实现动态替换算法包
- 局域网从另一台电脑copy文件(Linux系统下)
- Linux学习笔记----目录处理命令---mv ---剪切和改名
- 可不可以不隐藏nginx版本号
- linux命令