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了。 (1.1.1版本 测试通过)
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. Hadoop 节点的data 临时目录在core-site.xml 中配置 /home/hadoop/data
此目录是驱动盘下的目录 /home/hadoop/data //hadoop用户下的data文件夹
如果是cygwin, 则目录是cygwin安装后的驱动器目录下d:\cygwin
eg: D:\home\hadoop\data
5. hadoop 启动后 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. Old 172.19.12.125 new :172.0.0.1 Call 127.0.0.1 失败
解决办法:更改 /etc/hosts 文件 将用户名对应的IP 改为真实的IP(172.19.121.125)
不是 默认的172.0.0.1
/etc/sysconfig/network // 网络配置
/etc/rc.d/init.d/network restart //重启网络 配置
/etc/hosts // host 管理
/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
解决方法 :按照红色背景的 命令书写 oracle 连接符没有双斜杠//
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