导航菜单
路很长,又很短
博主信息
昵   称:Cocodroid ->关于我
Q     Q:2531075716
博文数:346
阅读量:1582690
访问量:191622
至今:
×
云标签 标签球>>
云标签 - Su的技术博客
博文->>首页 博主的更多博文>>
Hadoop之常​见错误集锦
Tags : Hadoop发表时间: 2017-09-17 04:18:18


 

下文中没有特殊说明,环境都是CentOSHadoop 2.2.0

1、伪分布模式下执行start-dfs.sh脚本启动HDFS时出现如下错误:

         vi打开libexec/hadoop-config.sh中,查找JAVA_HOME is not set and could not be found,找到后在这一行if [[ -z $JAVA_HOME ]]; then的前面添加如下语句即可:

        export JAVA_HOME=/usr/javak1.7.0_45

        保存后,重新执行start-dfs.sh脚本,然后执行jps就能看到NameNodeDataNode等你想看到的东西了:

        

        

2、执行start-dfs.sh脚本启动Hadoop 0.20.2 HDFS时出现如下错误:

        localhost: Error: JAVA_HOME is not set.

        localhost: Error: JAVA_HOME is not set.

        vi打开conf/hadoop-env.sh,添加如下语句即可:

        export JAVA_HOME=/usr/javak1.7.0_45

 

3、上传本地文件到HDFS上时出现如下错误:

        WARN hdfs.DFSClient: DataStreamer Exception: org.apache.hadoop.ipc.RemoteException: java.io.IOException: File /user/root/input01/file01 could only be replicated to 0 nodes, instead of 1

        这是由于没有添加节点的原因,即需要先启动namenode,再启动datanode,然后自动jobtrackertasktracker,如下即可:

        1)重启namenode

        #hadoop-daemon.sh start namenode

        2)重启datanode

        #hadoop-daemon.sh start datanode

 

------------------------------------------------以下是WindowsEclipse连接LinuxHadoop编译运行程序出现的问题------------------------------------------------

4Run on Hadoop编译程序时,出现如下错误:

        Exception in thread "main" java.io.IOException: Cannot run program "chmod": CreateProcess error=2, ?????????

        原因是执行不了Linux命令,解决方法是安装Cygwin并把C:\cygwin64\bin路径添加到path环境变量中去。

        需要注意的是,安装过程中至少需要选择develshell这两个包。

 

5Run on Hadoop编译程序时,出现如下错误:

        WARN mapred.JobClient: No job jar file set.  User classes may not be found. See JobConf(Class) or JobConf#setJar(String)

        原因是因为job.setJarByClass使用了xxx.class的类加载器来寻找包含该类的Jar包,然后设置该Jar包为作业所用的Jar包。但是我们的作业Jar包是在程序运行时才打包的,而xxx.class的类加载器是AppClassLoader,运行后我们无法改变它的搜索路径,所以使用setJarByClass是无法设置作业Jar包的。

        将本工程导出的jar包放到工程根目录下面,并在提交程序前添加下面的设置:

        conf.set("mapred.jar", "xxx.jar"); //其中,xxx.jar是你导出的jar文件名,注意第一个参数不要拼写错了。

 

6Run on Hadoop编译程序时,出现如下错误:

        org.apache.hadoop.security.AccessControlException: org.apache.hadoop.security .AccessControlException: Permission denied: user=xxx, access=WRITE, inode="hadoop": hadoop:supergroup:rwxr-xr-x

        因为Eclipse使用Hadoop插件提交作业时,会默认以xxx身份去将作业写入hdfs文件系统中,对应的也就是HDFS上的/userx,我的为/user/root,由于xxx用户对hadoop目录并没有写入权限,所以导致异常的发生。解决方法为:放开 hadoop目录的权限 , 方法有二:

        1)执行如下命令

        $ hadoop fs -chmod 777 /user/root

        2)修改Hadoop配置

        修改hadoop的配置文件:conffs-core.xml,找到dfs.permissions的配置项,将value值改为false,具体如下:

        <property>

            <name>dfs.permissions</name>

            <value>false<alue>

            <description>

                If "true", enable permission checking in HDFS.

                If "false", permission checking is turned off, but all other behavior is unchanged.

                Switching from one parameter value to the other does not change the mode, owner or group of files or directories.

            </description>

        </property>

        修改完后重启下hadoop的进程使之生效即可。

------------------------------------------------end------------------------------------------------

 

7MapReduce操作HBase出现如下错误:

        Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/hadoop/hbase/HBaseConfiguration

        Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/zookeeper/KeeperException

        这是因为Hadoop在调用HBase包时找不到相应jar包,解决办法是将HBase目录下的hbase-0.90.4.jarlib目录下的zookeeper-3.3.2.jar包拷贝到hadoopb下即可,其它这类问题类似。

 

8MapReduce操作HBase出现如下错误:

        org.apache.hadoop.hbase.TableNotFoundException: Cannot find row in .META. for table

        这是因为HBase中不存在要插入数据的表,在hbase shell中手工创建表格create 'xxx', 'xxx'即可。

 

9MapReducejob时如果出现如下错误:

        java.lang.RuntimeException: java.lang.ClassNotFoundException:

        这是因为Hadoop在找class时没有从jar包中找而出错,解决办法是删除除开jar.java文件外的所有目录和文件即可。

 

 

 

转:

http://my.oschina.net/u/570654/blog/112780

http://blog.csdn.net/furiously/article/details/6430525

打赏
打赏
关注公众号
公众号
类别:大数据| 阅读(2261)| 赞 (0)
上一篇 : hadoop 在windows的Eclipse下运行出现
下一篇: 升级需谨慎,开发两行泪!——记一次MySQL驱动包升级引
评论
暂无评论!
发表评论
昵  称:

验证码:

内  容:

    同时赞一个 赞