启动hadoop运行jar包时可能会遇到的问题和解决办法

启动Hadoop过程中遇到的namenode节点启动失败的问题:(logs中的namenode日志中报错txid启动错误)

——>原因:
Hadoop NN中的元数据包括:
fsimage:包含某个时间点的文件系统的完整状态
edit logs:包含在最近的fsimage之后进行的每个文件系统更改(文件创建/删除/修改)

当NN启动时,Hadoop将加载fsimage并应用所有编辑日志,同时进行大量的一致性检查,如果检查失败,它将终止。当我们将NN该工作区中的edits_00...0001-00...002删掉时,然后尝试sbin/start-dfs.sh,将在日志中收到edits-logs信息不匹配的日志并且启动失败。
——>解决办法:
在Hadoop家目录下执行:./bin/hadoop namenode -recover
在一堆提示后选择yes, 然后选择c, 之后日志内容将会改变
使用单一节点启动命令: hadoop-daemon.sh start namenode 重新启动namenode节点
jps查看各节点启动状态,即发现namenode节点启动成功

修改namenode日志后启动hadoop时datanode节点启动失败的问题:(logs中的datanode日志中报错添加文件失败)

——>原因:
会出现该问题以及上一个问题,是因为多次对namenode进行format, 每一次format主节点NameNode产生新的clusterID、namespaceID, 于是导致主节点的clusterID、namespaceID、与各个子节点DataNode不一致。当format过后再启动hadoop, hadoop尝试创建新的current目录, 但是由于已存在current目录, 导致创建失败, 最终引起DataNode节点的DataNode进程启动失败, 从而引起hadoop集群完全启动失败。
——>解决办法:
重命名原current文件为current-bak文件(文件名随意,文件在/hadoop-2.7.7/data/tmp/dfs/data目录下),再重新启动hadoop,可以发现datanode节点成功启动,并且可以顺利的上传文件到节点内。

上传文件报错,未能识别hdfs文件系统(Wrong FS: hdfs://hadoop20:9000/word.txt, expected: file:///):

解决办法有两种:
1.直接通过在代码,在conf中设置默认文件系统
2.直接将hadoop文件配置中的core-site.xml和hdfs-site.xml文件拷贝到项目的src文件目录下,代码在运行的时候就会先读取core-site.xml文件中的配置信息。

将编写好的项目代码导出jar包(项目代码包含Mapper和Reducer以及Runner, 要注意jdk等版本的一致)
执行命令,在节点上运行jar包: hadoop jar wc.jar.jar com.itcast.hadoop.mr.wordcount.WCRunner
在执行上述命令之后,可能会出现的错误:
1.java.lang.SecurityException: Invalid signature file digest for Manifest main attributes

——>原因:
当项目依赖其他jar包的时候,打出的jar包执行出错,抛出这个异常。
因为依赖jar包中的META-INF中有多余的.SF文件与当前jar包冲突,
——>解决办法:(网上提供两种方法,这里采用其中一种):方法如下

在打完的jar包执行
zip -d your.jar ‘META-INF/.SF’ ‘META-INF/.RSA’ ‘META-INF/*SF’
2.Exception in thread “main" java.lang.UnsupportedClassVersionError

——>原因:
这个问题确实是由较高版本的JDK编译的java class文件试图在较低版本的JVM上运行产生的错误。
——>解决办法:
在编译器中更改jdk版本和jar包运行环境中的jdk版本一致,之后重新导出jar包。
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值