hadoop常见错误解决方法
一、启动集群时
1.节点启动失败
1.1端口占用
1.1报错信息:address already in use - bind Address:50070
解决步骤:
查询端口占用:lsof -i:50070
查询到占用端口的进程:pid
杀死进程:kill -9 {pid}
1.2找不到路径
1.2报错信息(namenode):could not find dir:xxx -> 找不到namenode格式化产生的路径
格式化:hdfs namenode -format
每次格式化时都会产生新的集群id -> clusterID
/home/bigdata/hadoop/data/dfs/name/current/VERSION
1.3子节点启动失败
1.3报错信息(datanode):
/home/bigdata/hadoop/data/dfs/dn/current/VERSION
删除之前遗留的信息:dn
手动修改VERSION中的版本信息,使得一致 jps发现进程已经没有,但是重新启动集群,提示进程已经开启。原因是在linux的根目录下/tmp目录中存在启动的进程临时文件,将集群相关进程删除掉,再重新启动集群。
1.4连接失败
1.4要求输入密码
slaves -> dfs.sh、yarn.sh -> 配置免密码登录(包括启动脚本的机器)
-------------------------------------------------------------->若namenode也为datanode,启动DataNode时也会使用ssh免密登录方式开启节点
1.5进程启动成功 -> 消失
datanode,nodeManager -> logs -> retry:8032 -> shutdown
启动时用22号端口启动----->访问主节点被防火墙拦截----->尝试一定次数自动杀死进程
防火墙
二、HDFS操作
1.1报错信息:permission denied -> 权限不足
(1)伪装用户(启动hdfs进程的用户)
-------> 配置环境变量HADOOP_HOME ,HADOOP_USER_NAME
------->System.setProperty("hadoop.home",""); ~~ JAVA代码中设置
(2)hdfs-site.xml -> 关闭权限校验
1.2报错信息:无法建立通信 -> 8020
保证hdfs进程启动,查看防火漆
三、运行MR时
1.1日志位置:
(1)web的管理界面 (8088,job名点开)
(2)$HADOOP_HOME/logs/userlogs -> 三个日志文件
1.2报错信息(远程调用执行)
(1)权限不足 中间结果的临时目录无相关权限 -> hdfs dfs -chmod -R 777 /tmp
(2)结果输出目录已经存在
(3)源数据目录不存在
(4)逻辑错误
(5)accept阶段卡住不动
查看队列中是否有正在运行的MR任务
检查resourceManager/nodeManager 的防火墙是否关闭
四、HIVE启动时
1.1日志位置:在conf中指定 -> /home/${user.home} -> hive.log
1.2报错信息
(1)parseException 解析某个配置文件(hive-site.xml)的某行/列有错误,
直接去目标位置修改
(2)JDBC相关异常 -> 启动过程中读取配置文件打开MySQL
检查相关参数
(3)MySQL数据库密码修改 -> host,user唯一确定的密码(联合主键的方式实现)
密码验证信息存放位置在mysql.user ---> host,password,user,password_expired,权限相关
方式一:直接修改表 -> update mysql.user set password = password('xxx') where host = 'xx' and user = 'xx'
方式二:set password = password('root'); -> 重置密码可解决密码过期问题
添加或修改一条连接规则:
GRANT ALL PRIVILEGES ON *.* to 'user'@'host' IDENTIFIED by 'root' WITH GRANT OPTION;
FLUSH PRIVILEGES;
(4)ClassNotFountException:com.mysql.jdbc.Driver
拷贝驱动jar包至$HIVE_HOME/lib
(5)远程操作时 return code 1 (系统停止级别为1,非正常停止)
可查看hive.log,一般是/tmp/hadoop-yarn/staging/anonymous权限不足,修改文件权限即可
HWI的页面打不开时,要导入4个jar包到指定目录下。
五、SQOOP
1.错误信息(在Sqoop1.4.7中有):
Could not load org.apache.hadoop.hive.conf.HiveConf. Make sure HIVE_CONF_DIR is set correctly.
解决办法(环境变量中添加):
export HADOOP_CLASSPATH=$HADOOP_CLASSPATH:$HIVE_HOME/lib/*
source .bash_profile 2.数据上传成功,hive的warehouse无法查看:
向Hive中导入数据时指定数据元(复制Hive中的hive-site.xml至sqoop的配置文件目录下)
1.Hive默认使用derby作为数据元信息存储数据库
2.在数据导入时如果不进行配置会导致在MySQL中无法正常写入数据结构信息
3.在Hive中无法查询到表的结构信息--->将hive-site.xml移动到sqoop的conf目录下
cp /home/bigdata/apache-hive-1.2.2-bin/conf/hive-site.xml /home/bigdata/sqoop-1.4.7.bin/conf/
hadoop常见错误解决方法的更多相关文章
- Hbase常见错误解决方法
Hbase常见错误解决方法 原文转载至:https://www.jianshu.com/p/5fd74812c56c 我是通过maven管理的依赖,直接修改maven依赖中hbase的版本就可以了 ...
- Spark程序运行常见错误解决方法以及优化
转载自:http://bigdata.51cto.com/art/201704/536499.htm Spark程序运行常见错误解决方法以及优化 task倾斜原因比较多,网络io,cpu,mem都有可 ...
- jack server 常见错误解决方法【转】
本文转载自:https://blog.csdn.net/qq_27061049/article/details/70156200 jack 服务常见错误解决方法 当你编译Android时,你不需要修改 ...
- Tomcat安装教程及常见错误解决方法
目录 Tomcat安装教程及常见错误解决方法 一.安装前准备 ·熟悉自己电脑的操作系统版本(32位or64位) ·保证电脑上已经装好JDK,并且已经设置好环境变量. 二.Tomcat安装教程(以Tom ...
- C#常见错误解决方法
1.能提供Visual Studio开发工具包吗? 解决方法: Visual Studio 2017开发环境下载地址: https://www.visualstudio.com/zh-hans/dow ...
- maven 常见错误解决方法
1. 最重要的一点,使用国内镜像,比如 oschina.net 的镜像: 搜 jar 推荐:http://maven.outofmemory.cn/,速度极快. 2. 错误:Could not res ...
- File already exists: filesystem '/path/file', transaction svn常见错误解决方法
前言 多人任务基本都会用到SVN,于是提交的时候如果不先更新在提交或者操作顺序不对,会经常出现错误,其中File already exists: filesystem这个就是个常见问题,上网找了半天没 ...
- 用Rvm安装Ruby,Rails运行环境及常见错误解决方法
一.安装Rvm 1.下载安装Rvm $ curl -L https://get.rvm.io | bash -s stable 此时可能出现错误:"gpg: 无法检查签名:找不到公钥&quo ...
- maven编译常见错误解决方法整理
程序包com.sun.xml.internal.ws.spi不存在 当maven项目里面有用到JDK内部的一些类,接口(如:com.sun.xml.internal.ws.spi.ProviderIm ...
随机推荐
- JAVA类加载和初始化
JAVA类的加载和初始化 一.类的加载和初始化过程 JVM将类的加载分为3个步骤: 1.加载(Load):class文件创建Class对象. 2.链接(Link) 3.初始化(Initialize) ...
- Oracle 存储结构三
Oracle数据库服务器自动管理空间的方法 段空间的分配 空间以区间的形式分配给段,区间是一组连续的Oracle块.每个数据文件都有一个位图,来描述文件中块的状态,块可能是空闲的,也可能是区间中已分配 ...
- oracle 子查询的几个种类
1.where型子查询: select cat_id,good_id,good_name from goods where good_id in (selct max(good_id) from go ...
- Node调试
之前调试node代码简单粗暴,直接在代码打印日志,控制台观察日志,效率低下~ 原来后端node代码也可以通过Chrome断点调试,以下是调试方法. (1)找到node启动的进程 ps aux|grep ...
- 课时9.HTML发展史(了解)
这个图片里的时间不用都记住,只需要记住一些特殊的,1993年,1995年(在W3C接手以后,才有了真正意义上的标准),1999年这几个时间 WHATWG的目的是推广HTML的标准,HTML5是浏览器厂 ...
- 利用Docker设置Node.js
docker是一个开源的应用容器引擎,可以为我们提供安全.可移植.可重复的自动化部署的方式.docker采用虚拟化的技术来虚拟化出应用程序的运行环境.如上图一样.docker就像一艘轮船.而轮船上 ...
- go语言的指针
什么是指针 一个指针变量指向了一个值的内存地址.(也就是我们声明了一个指针之后,可以像变量赋值一样,把一个值的内存地址放入到指针当中.) 类似于变量和常量,在使用指针前你需要声明指针.指针声明格式如下 ...
- scala (4) 可变数组和不可变数组
在scala中数组分为不可变长数组(在immutable包下)和可变长数组(在mutable包下) 不可变长数组指的是长度不可变,但是数组中角标对应的元素的值是可变的 可变数组指的是长度和数组中角标对 ...
- hadoop运维笔记
一. 故障处理部分 1.1. spark提交任务报错java.lang.NoClassDefFoundError: com/alibaba/fastjson/JSON 报错原因: 在运行环境没有找 ...
- #define定义数据溢出的问题
使用合泰单片机做一个小东西,使用 #define TIMER_COUNT (30*60*1000) 时,发现结果老是不对,后来想想,是不是数据溢出了,一查果然是这样.看来是stm32用多了,总以为#d ...