hadoop-(3)hadoop问题汇总
来源:互联网 发布:南征北战抄袭知乎 编辑:程序博客网 时间:2024/05/16 14:52
问题1、虚拟机安装hadoop,windows通过主机名打不开hadoop的web页面http://master:50070/无法访问。windows ping master也ping不通方法:windows本机C:\Windows\System32\drivers\etc\hosts文件下面加上linux hosts配置hadoop机器的主机名和ip地址加进去。问题2、windows下eclipse运行hadoop程序,报用户不一致,没有权限org.apache.hadoop.security.AccessControlException: org.apache.hadoop.security .AccessControlException: Permission denied: user=sunzhaohua, access=WRITE, inode="szh":
方法: // 1、这种获取fs的方法可以指定访问hdfs的客户端身份 fs = FileSystem.get(new URI("hdfs:master:9000/"), conf, "szh");2、参考:http://www.huqiwen.com/2013/07/18/hdfs-permission-denied/windows在系统的环境变量里面添加HADOOP_USER_NAME=szh,重启eclipse,即可。问题3、运行hadoop fs -put命令报no root to host方法:发现是从节点的防火墙没有关闭,关闭防火墙即可service iptables stop
问题4、运行./stop-all.sh命令,jps发现进程仍然存在,报错no tasktracker to stop ,no datanode to stop。方法:1)kill -9 把这些进程杀死也可netstat -nltp2)问题的原因是hadoop在stop的时候依据的是datanode上的mapred和dfs进程号。而默认的进程号保存在/tmp下,linux默认会每隔一段时间(一般是一个月或者7天左右)去删除这个目录下的文件。因此删掉hadoop-hadoop-jobtracker.pid和hadoop-hadoop-namenode.pid两个文件后,namenode自然就找不到datanode上的这两个进程了。
在配置文件中$HADOOP_HOME/conf/hadoop-env.sh中export HADOOP_PID_DIR=${HADOOP_HOME}/pids可以解决这个问题
问题5、hadoop2.6.3 编写mapreduce程序,打jar包运行,报错java.io.IOException: Type mismatch方法:1)kill -9 把这些进程杀死也可netstat -nltp2) // wordcount.setMapOutputKeyClass(Text.class); // wordcount.setMapOutputKeyClass(LongWritable.class);map的输出类型注释掉即可问题6、本地模式运行mapreduce,Eclipse报错:ERROR [main] util.Shell (Shell.java:getWinUtilsPath(373)) - Failed to locate the winutils binary in the hadoop binary path java.io.IOException: Could not locate executable null\bin\winutils.exe in the Hadoop binaries.
方法: javamain方法中代码设置: System.setProperty("hadoop.home.dir", "E:/study/Hadoop/hadoop-2.6.3");
问题7、本地模式运行mapreduce,Eclipse报错:Exceptionin thread "main" java.lang.UnsatisfiedLinkError:org.apache.hadoop.util.NativeCrc32.nativeComputeChunkedSumsByteArray(II[BI[BIILjava/lang/String;JZ)V
这是由于hadoop.dll 版本问题,2.4之前的和之后的需要的不一样
需要选择正确的版本并且在 Hadoop/bin和 C:\windows\system32 上将其替换
下载windows64位平台的hadoop2.6插件包(hadoop.dll,winutils.exe)
在hadoop2.6.0源码的hadoop-common-project\hadoop-common\src\main\winutils下,有一个vs.net工程,编译这个工程可以得到这一堆文件,输出的文件中,
hadoop.dll、winutils.exe 这二个最有用,将winutils.exe复制到HADOOP\bin目录,将hadoop.dll复制到C:\Windows\System32目录 (主要是防止插件报各种莫名错误,比如空对象引用啥的)
注:如果不想编译,可直接下载编译好的文件 hadoop2.6(x64)V0.2.zip
在配置文件中$HADOOP_HOME/conf/hadoop-env.sh中export HADOOP_PID_DIR=${HADOOP_HOME}/pids可以解决这个问题
问题6、本地模式运行mapreduce,Eclipse报错:ERROR [main] util.Shell (Shell.java:getWinUtilsPath(373)) - Failed to locate the winutils binary in the hadoop binary path java.io.IOException: Could not locate executable null\bin\winutils.exe in the Hadoop binaries.
方法: javamain方法中代码设置: System.setProperty("hadoop.home.dir", "E:/study/Hadoop/hadoop-2.6.3");问题7、本地模式运行mapreduce,Eclipse报错:Exceptionin thread "main" java.lang.UnsatisfiedLinkError:org.apache.hadoop.util.NativeCrc32.nativeComputeChunkedSumsByteArray(II[BI[BIILjava/lang/String;JZ)V
这是由于hadoop.dll 版本问题,2.4之前的和之后的需要的不一样
需要选择正确的版本并且在 Hadoop/bin和 C:\windows\system32 上将其替换
下载windows64位平台的hadoop2.6插件包(hadoop.dll,winutils.exe)
在hadoop2.6.0源码的hadoop-common-project\hadoop-common\src\main\winutils下,有一个vs.net工程,编译这个工程可以得到这一堆文件,输出的文件中,
hadoop.dll、winutils.exe 这二个最有用,将winutils.exe复制到HADOOP\bin目录,将hadoop.dll复制到C:\Windows\System32目录 (主要是防止插件报各种莫名错误,比如空对象引用啥的)
注:如果不想编译,可直接下载编译好的文件 hadoop2.6(x64)V0.2.zip
- hadoop-(3)hadoop问题汇总
- hadoop问题汇总
- Hadoop集群问题汇总
- hadoop问题汇总
- Hadoop安装,问题汇总
- hadoop问题汇总
- Hadoop问题汇总
- Hadoop 问题汇总
- hadoop问题汇总
- Hadoop 集群问题汇总
- hadoop 问题汇总
- Hadoop 相关问题汇总
- hadoop问题汇总
- Hadoop问题汇总
- hadoop namenode格式化问题汇总
- Hadoop框架搭建问题汇总
- hadoop汇总
- 【Hadoop】Hadoop/Yarn中hdfs与mapreduce相关问题汇总
- android之通知(一)
- delegate页面传值
- 微平台开发之(JS-SDK开发图像接口实例)
- 蓝桥杯:基础练习 查找整数
- NandFlash ECC 校验算法原理与实现(转)
- hadoop-(3)hadoop问题汇总
- k最近邻(k-nn)
- select2 使用笔记
- AFNetWorking无返回数据 Code=-1016
- 一对一关联关系
- 动态注册广播接收者
- .h头文件找不到报错!
- 智能手部识别与饰品推荐系统 - 珠宝店售前推荐设备 为珠宝店解决售前客流量大的接待问题
- iOS中,访问系统隐私权限时修改alert文案的方法