hadoop常见错误:

1. 一直连接不上



 

原因: 可能是hadoop 没有启动!

2. org.apache.hadoop.security.AccessControlException: Permission denied: user=administrator, access=EXECUTE...

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

a、如果是测试环境,可以取消hadoop hdfs的用户权限检查。打开conffs-site.xml,找到dfs.permissions属性修改为false(默认为true)OK了。版本 测试通过)

b、修改hadoop location参数,在advanced parameter选项卡中,找到hadoop.job.ugi项,将此项改为启动hadoop的用户名即可。 

c.放开 hadoop 目录的权限,命令如下 :$ hadoop fs -chmod 777 /user/hadoop \

 

 

3. Win7 +cygwin +hadoop+(eclipse 4.2 +j2ee 1.5)

Hadoop-evn.sh 配置jdk 

在Cygwin中进入D盘的命令

         


 

若版本在1.6 以上 ,则应使用linux的路径风格 /cygdrive/d/cygwin/usr/java/jdk1.6.0_17 空格需要用‘’括起来 即可启动 hadoop 

4. 节点的data 临时目录在core-site.xml 中配置 /home/hadoop/data

/home/hadoop/data  //hadoop用户下的data文件夹

  如果是cygwin, 则目录是cygwin安装后的驱动器目录下d:\cygwin 

  eg: D:\home\hadoop\data


5.启动后 jps 没有dataNode/jobTracker 节点

:这一般是因为namenode 版本的不同造成的,删除两个不同版本的信息, 重新格式化 NameNode 然后重启.

./stop-all.sh// 停止 所有的hadoop 实例

  rm -rf /tmp/* 删除hadoop 的信息

rm -rf ~/hadoop/hadoop-1.1.1/logs 删除报错日志  方便下一次查找 错误信息

rm -rf /var/hadoop/*//删除 (core-site.xml 中配置的临时目录,hdfs-site.xml 配置的数据节点的目录) // 删除后需要重新 format namenode

rm -rf ~/sqoop-1.4.1-incubating__hadoop-0.20/bin/ORDR_MAIN.java 

// 删除sqoop数据导数的生成的JAVA  BEAN类

./hadoop dfs -rmr /user/*//删除hdfs中的所有数据

 

6.Sqoop 命令 提示没有找到 驱动包 

解决方式 : 把mysql-connector-java-5.1.22-bin.jar ojdbc14_g.jar hadoop-core-1.1.1.jar 放入sqoop 安装目录下的lib目录中

 

7.失败

/etc/hosts 文件 将用户名对应的IP 改为真实的IP(172.19.121.125) 

172.0.0.1  

/etc/sysconfig/network网络配置

/etc/rc.d/init.d/network restart   //重启网络 配置 

/etc/hosts 管理

/etc/sysconfig/network-script/ifcfg-eth0 //网卡0 的配置信息 

ifconfig eth0  dwon / up      // 关闭/启动    网卡

 

重启网络连接时可能会出现以下错误:

Bringing up interface eth0:  Error: Connection activation failed: Device not managed by NetworkManager

 

重启服务,service NetworkManager restart ,service network restart.

1. Remove Network Manager from startup Services.

 #chkconfig NetworkManager off

 

2. Add Default Net Manager

 #chkconfig network on

 

3.Stop NetworkManager first

 #service NetworkManager stop

 

4.and then start Default Manager

 #service network start   

8.java.sql.SQLException: Invalid Oracle URL specified

解决方法 :按照红色背景的 命令书写 连接符没有双斜杠//

 

9.字段文本有换行符 导致读取数据时 解析结果 错误

解决办法: 指定字段分隔符 ‘\0x001’,指定行分隔符 ’\0x002’

--fields-terminated-by '\0x001' --lines-terminated-by '\0x002' 

 

10.ORA-00904: "DD": invalid identifier

解决办法: 表没有主键的原因,添加参数  --split-by 'CUSTID'  即可.

 

11.ORA-00904: "yyyy-MM-dd": invalid identifier

解决办法:where 子句的中的引号不能用双引号 而是where 子句用双引号 ,里面的

依旧使用单引号

 

12.导出的文件路径不在同一个文件夹下面

                   


 

: 添加参数 指定路径 --target-dir ‘/user/admin/CUST_BASE’

 

13.执行任务时没有进入指定的MAPPER、COMBINER、REDUCER

解决办法 : 重写Mapper的map方法时 必须用public 来修饰并添加注解@Override