• hadoop相关Exception


    Problem 1: 程序 'java' 已包含在下列软件包中:
     * default-jre
     * gcj-4.6-jre-headless
     * gcj-4.7-jre-headless
     * openjdk-7-jre-headless
     * openjdk-6-jre-headless
    请尝试:sudo apt-get install <选定的软件包>

    解决方法:(手动设置系统默认JDK)

    在终端中依次输入命令:

    sudo update-alternatives --install /usr/bin/java java /home/landen/UntarFile/jdk1.7.0_17/bin/java 300

    sudo update-alternatives --install /usr/bin/javac javac /home/landen/UntarFile/jdk1.7.0_17/bin/javac 300

    sudo update-alternatives --config java

    接下来输入java -version就可以看到所安装JDK的版本信息了。

    若仍有异常:

    kelvin@ubuntu:~/Downloads$ java -version
    bash: /usr/bin/java: Permission denied

    此时只需要给/usr/bin/java , javac , jps添加相应的执行权限即可

    kelvin@ubuntu:~/UntarFile$ sudo chmod +x /usr/bin/java
    kelvin@ubuntu:~/UntarFile$ sudo chmod +x /usr/bin/javac
    kelvin@ubuntu:~/UntarFile$ java -version
    java version "1.7.0_09"
    Java(TM) SE Runtime Environment (build 1.7.0_09-b05)
    Java HotSpot(TM) Client VM (build 23.5-b02, mixed mode)

    kelvin@ubuntu:~/UntarFile$ sudo chmod +x /usr/bin/jps
    kelvin@ubuntu:~/UntarFile$ jps
    27132 Jps

    Problem 2: 程序 'jps' 已包含在下列软件包中:

    * openjdk-6-jdk
    * openjdk-7-jdk
    Try: sudo apt-get install <selected package>

    It is actually not a Hadoop problem. Hadoop does not use JPS.This problem is caused since you have installed JDK from Oracle (may be).
    You can fix this problem by using update-alternatives program to link jps to standard path directory. Use this command to fix this in a terminal
    Solution: sudo update-alternatives --install /usr/bin/jps jps /home/landen/UntarFile/jdk1.7.0_17/bin/jps 1
    Use the actual jps program path in the appropriate jdk (your version of jdk) instead of jdk1.7 which is specific to me.

    extra Problem: Error using SCP: “not a regular file”
    scp cannot copy a directory unless you ask for a recursive copy with the -r option (and it would refuse
    to overwrite an existing file with a directory even with -r, but it would quietly overwrite a regular file if the source was a regular file).

    Problem 3: 安装使用Hive的时候发现文件无法从本地拷贝到hadoop集群系统,老是报错,错误内容为:

    java.io.IOException: File  … could only be replicated to 0 nodes, instead of 1 
    归根到底,就是自己DataNode节点没启动。
    Exception 1: Sometime
    ERROR org.apache.hadoop.hdfs.server.datanode.DataNode: java.io.IOException: Incompatible namespaceIDs in /home/hadoop/hadoop/hadtmp: namenode namespaceID = 1234649143; datanode namespaceID =10235035473
    datanode与namenode之间的id不一致。
    此时最好办法就是将hdfs.tmp.dir路径下的相关目录(name)全部删除,
    重新格式化hdfs,重启集群,另外可以更改其相关目录下的Current/version
    landen@landen-Lenovo:~/UntarFile/hadoop-1.0.4$:bin/hadoop namenode -format
    landen@landen-Lenovo:~/UntarFile/hadoop-1.0.4$: bin/start-all.sh
    landen@landen-Lenovo:~/UntarFile/hadoop-1.0.4$: jps
    Exception 2:查看hadoop相关log文件
    2013-03-27 16:02:02,075 WARN org.apache.hadoop.hdfs.server.datanode.DataNode: Invalid directory in dfs.data.dir: Incorrect permission for /home/landen/UntarFile/hadoop-1.0.4/datas/hdfs/data, expected: rwxr-xr-x, while actual: rwxrwxr-x
    2013-03-27 16:02:02,075 ERROR org.apache.hadoop.hdfs.server.datanode.DataNode: All directories in dfs.data.dir are invalid.
    2013-03-27 16:02:02,075 INFO org.apache.hadoop.hdfs.server.datanode.DataNode: Exiting Datanode
    原来时权限问题,果断该权限:
    landen@landen-Lenovo:~/UntarFile/hadoop-1.0.4/datas/hdfs$ chmod g-w data
    landen@landen-Lenovo:~/UntarFile/hadoop-1.0.4$ jps
    19844 JobTracker
    20133 Jps
    19210 NameNode
    19445 DataNode
    20081 TaskTracker
    19692 SecondaryNameNode

    DataNode启动Succeed
    Exception 3
    2011-10-26 17:57:05,231 INFO org.apache.hadoop.ipc.RPC: Server at /192.168.0.189:9000 not available yet, Zzzzz...
    2011-10-26 17:57:07,235 INFO org.apache.hadoop.ipc.Client: Retrying connect to server: /192.168.0.189:9000. Already tried 0 time(s).
    2011-10-26 17:57:08,236 INFO org.apache.hadoop.ipc.Client: Retrying connect to server: /192.168.0.189:9000. Already tried 1 time(s).
    2011-10-26 17:57:09,237 INFO org.apache.hadoop.ipc.Client: Retrying connect to server: /192.168.0.189:9000. Already tried 2 time(s).
    2011-10-26 17:57:10,239 INFO org.apache.hadoop.ipc.Client: Retrying connect to server: /192.168.0.189:9000. Already tried 3 time(s).
    2011-10-26 17:57:11,240 INFO org.apache.hadoop.ipc.Client: Retrying connect to server: /192.168.0.189:9000. Already tried 4 time(s).
    2011-10-26 17:57:12,241 INFO org.apache.hadoop.ipc.Client: Retrying connect to server: /192.168.0.189:9000. Already tried 5 time(s).

    也就是datanode连接不上namenode。而在namenode上面显示:

    2011-10-26 14:18:49,686 INFO org.apache.hadoop.ipc.Server: IPC Server handler 1 on 9000, call addBlock(/root/hadoop/tmp/mapred/system/jobtracker.info, DFSClient_-1928560478, null, null) from 127.0.0.1:32817: error: java.io.IOException: File /root/hadoop/tmp/mapred/system/jobtracker.info could only be replicated to 0 nodes, instead of 1
    java.io.IOException: File /root/hadoop/tmp/mapred/system/jobtracker.info could only be replicated to 0 nodes, instead of 1
            at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.getAdditionalBlock(FSNamesystem.java:1448)
            at org.apache.hadoop.hdfs.server.namenode.NameNode.addBlock(NameNode.java:690)
            at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
            at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
            at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
            at java.lang.reflect.Method.invoke(Method.java:597)
            at org.apache.hadoop.ipc.WritableRpcEngine$Server.call(WritableRpcEngine.java:342)
            at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:1350)
            at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:1346)
            at java.security.AccessController.doPrivileged(Native Method)
            at javax.security.auth.Subject.doAs(Subject.java:396)
            at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:742)
            at org.apache.hadoop.ipc.Server$Handler.run(Server.java:1344)

    Reason 1: namenode也在试图将jobtracker.info存入hdfs文件系统中,而又存不进去。然后查了一下网上的说法,之后发现原来是/etc/hosts中的ip映射的问题。由于在master中/etc/hosts的配置为:

    #127.0.0.1      master

    #127.0.1.1      ubuntu.ubuntu-domain    ubuntu

    192.168.0.189 master

    192.168.0.104  slave1

    192.168.0.135  slave2

    192.168.0.149  slave3

    因此可能存在一个优先匹配第一个碰见的问题,之后是将前两行注释掉(后来又将第一行改为了127.0.0.1 localhost)。然后在进行正常的hadoop format和启动,就可以连接上了。

    Reason 2:  Remember将core-site.xml,mapred-site.xml中的localhost全部改为Master对应的主机名(/etc/hosts(永久修改), hostname 修改的主机名(临时修改))

    Problem 4: HDFS暂时处于Safemode模式不能写入故障处理

    2013-11-17 16:23:07,392 INFO org.apache.hadoop.ipc.Server: IPC Server handler 0 on 9000, call delete(/home/landen/UntarFile/hadoop-1.0.4/datas/tmp/mapred/system, true) from 10.21.244.79:39841: error: org.apache.hadoop.hdfs.server.namenode.SafeModeException: Cannot delete /home/landen/UntarFile/hadoop-1.0.4/datas/tmp/mapred/system. Name node is in safe mode.
    The ratio of reported blocks 0.0000 has not reached the threshold 0.9990. Safe mode will be turned off automatically.
    org.apache.hadoop.hdfs.server.namenode.SafeModeException: Cannot delete /home/landen/UntarFile/hadoop-1.0.4/datas/tmp/mapred/system. Name node is in safe mode.
    The ratio of reported blocks 0.0000 has not reached the threshold 0.9990. Safe mode will be turned off automatically.

    不过这个safemode会锁定一会而后自动dfs写入(bin/hadoop dfsadmin -safemode leave)

    Problem 5: hadoop伪分布式下每次启动时需要重新格式化否则namenode无法启动

          原因是hadoop默认的临时目录在/tmp目录下,这个目录在电脑重启后就会被删除,故需要在hadoop的conf的core-site.xml的配置文件中更改hadoop.tmp.dir在自己指定的目录下

    Problem 6: 运行hive (dataprocess)> select * from tweets limit 10时出现如下异常:FAILED: RuntimeException org.apache.hadoop.ipc.RemoteException: org.apache.hadoop.hdfs.server.namenode.SafeModeException: Cannot create directory /home/landen/UntarFile/hive-0.10.0/tmpHive_ScratchDir/hive-landen/hive_2013-09-25_21-11-14_259_3698608019622175648. Name node is in safe mode.

    Solution:

    $ bin/hadoop dfsadmin -safemode leave
    来关闭safe mode.

    Problem 7:

    2012-12-14 12:17:50,587 WARN org.apache.hadoop.hdfs.server.datanode.DataNode: Invalid directory in dfs.data.dir: can not create directory: /data/hdfs/data
    2012-12-14 12:17:50,587 ERROR org.apache.hadoop.hdfs.server.datanode.DataNode: All directories in dfs.data.dir are invalid.

    Solution:

    data的相关权限问题:

    $ chmod -R 755 hdfs/data

    然后再重新启动 整个新装的集群

     
     
     
  • 相关阅读:
    GDI+学习笔记2
    GDI+学习笔记1- 概述
    Java网络编程和NIO详解1:JAVA 中原生的 socket 通信机制
    Java网络编程和NIO详解开篇:Java网络编程基础
    我在阿里工作的这段时间里,都学到了哪些东西
    在大公司做凤尾,还是在小公司做鸡头?
    蚂蚁金服财富技术部,诚招Java研发工程师。校招内推!!!
    测试课程
    新笔记
    阅读书籍电技术
  • 原文地址:https://www.cnblogs.com/likai198981/p/2984978.html
Copyright © 2020-2023  润新知