一、启动集群时
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/