zoukankan      html  css  js  c++  java
  • hadoop执行 报错

    Error: java.io.IOException: Initialization of all the collectors failed. Error in last collector was :interface javax.xml.soap.Text

    Initialization of all the collectors failed  : 初始化所有收集器失败


    2016-03-12 20:08:46,874 WARN org.apache.hadoop.hdfs.DFSClient: DataStreamer Exception: org.apache.hadoop.ipc.RemoteException: java.io.IOException: File /tmp/hadoop-root/mapred/system/jobtracker.info could only be replicated to 0 nodes, instead of 1  : dfsclient:数据流 ,远程异常:只能复制到0个节点,而不是1


     Caused by: java.lang.ClassCastException: interface javax.xml.soap.Text  :

    在运行mapreduce作业时报这个异常

    这个异常的大概意思是不认识Text

    检查源代码,最后发现在一个类中没有导入import org.apache.hadoop.io.Text;

    而是import com.sun.xml.internal.ws.policy.privateutil.PolicyUtils.Text;(这个貌似是在用IDE的提示功能时点错了。。。)


     

    端口冲突----

    查看进程-----

    ps -ef |grep java

    杀死所有-----

    kill -9  ...


    Failed to set setXIncludeAware(true) for parser

    遇到此问题通常是jar包冲突的问题。

    一种情况是我们向java的lib文件夹加入我们自己的jar包导致hadoop引用jar包的冲突。解决方式就是删除我们自己向系统加入的jar包,又一次配置。将自己的jar包或者外部jar放入系统文件夹会在编译程序时带来方便,可是这不是一种好习惯,我们应该通过改动CLASSPATH的方式指定jar包路径。


    • Cannot lock storage /tmp/hadoop-root/dfs/name. The directory isalready locked

    这个错误通常是我们在某次配置失败后。hadoop创建该文件夹,锁定之后失败退出造成的。解决方式就是删除tmp文件夹下hadoop创建的相关文件夹。然后又一次配置。


    • ls: Cannot access .: No such file or directory.

    当在hadoop中执行ls命令时常会出现这个错误,这个错误是指hdfs文件系统中当前文件夹为空,并非指本地文件系统中当前文件夹为空。当我们使用hdfs文件系统时,会默认进入/user/username下,这个文件夹不存在于本地文件系统,而是由hdfs内部管理的一个文件夹。

    当我们第一次使用ls命令时,/user/username下是空的。所以会提示上述错误。当我们加入新的文件之后就不再报该错。


    • Call to localhost/127.0.0.1:9000 failed on connection exception

    当在伪分布式环境下执行wordcount演示样例时,假设报上述错误说明未启动hadoop,利用start-all.sh脚本启动hadoop环境。


    • jps命令没有datanode执行

    一个原因是执行文件系统格式化时,会在namenode数据文件夹中保存一个current/VERSION文件,记录namespaceID,标识了所格式化的namenode的版本号。

    假设我们频繁的格式化namenode。那么datanode中保存的current/VERSION文件仅仅是你第一次格式化时保存的namenode的ID,因此就会造成datanode与namenode之间的id不一致。

    解决方式是清空hadoop的tmp文件,重新启动格式化hdfs。 
    Retrying connect to server: localhost/127.0.0.1:9000 
    说明hadoop的namenode进程没有启动,导致与namenode无法连接而报错。能够先执行stop-all.sh脚本停止hadoop,然后调用start-all.sh重新启动hadoop。


    将写好的jar包,放到linux上后,执行hadoop jar hadoopTest.jar test.XXXCount  input output 后,

    运行时,会报下面的警告

    WARN mapred.JobClient: No job jar file set. 

    User classes may not be found. See JobConf(Class)or JobConf#setJar(String).
    之后就会报错:
    java.lang.RuntimeException: java.lang.ClassNotFoundException: xxxxMapper
    解决:-----(加上job.setJarByClass(WordCount.class之后还是运行不对);

    在Configuration里加上配置,将需要用到的jar通过配置加进来:conf.set("mapred.jar", "/home/test/hadoopTest.jar");


    回首间---我错过了那片星海
  • 相关阅读:
    c# 基础算法(一) 九九乘法
    万能模糊查询SQL
    C#通过连接ODBC的方式调用存储过程
    《从设计到模式》学习笔记part1
    C#知识归纳
    Python之路
    Tomcat优化
    Zabbix 3.0 + Nginx + Mariadb
    Spark DataFrame ETL教程
    Python连接presto
  • 原文地址:https://www.cnblogs.com/Vowzhou/p/10307338.html
Copyright © 2011-2022 走看看