hadoop报错解决方案---安装系列三

 

 

 

 

 

操作过程中主要出现以下几个错误:
Unsupported major.minor version 51.0


处理办法:
eclipse下的项目的jdk环境和liux下的jdk环境不一致,将windows下的eclipse中的jdk环境与linux的环境更改一致
切换linux的jdk版本为1.7:
上传jdk7压缩包并解压
配置jdk变量 vi /etc/profile
在终端里面输入:
alternatives  --install   /usr/bin/java  java  /usr/local/jvm/jdk1.7.0_79/bin/java 300
alternatives  --install   /usr/bin/java  java  /usr/lib/jvm/jdk1.8.0_101/bin/java 300  
jdk1.8.0_101为之前安装的jdk 如想切换至1.8 还需更改环境变量/etc/profile
红色部分自行修改目录(安装JDK的目录)
接着执行alternatives  --config  java


输入想要切换的jdk序号
Java -version


在myeclipse里添加1.7的jdk,创建java项目时选择jdk版本为1.7


重启hadoop集群报错:
java.net.BindException: Port in use: 0.0.0.0:50070
Caused by: java.net.BindException: Address already in use


处理办法:
1)sudo lsof -i:端口 -P
2)sudo kill -9 PID
以50070端口为例:
sudo lsof -i:50070 -P
控制台输出内容:
COMMAND  PID USER   FD   TYPE             DEVICE SIZE/OFF NODE NAME
  java   6501 root  189u  IPv4 0x782e003217773193      0t0  TCP *:50070 (LISTEN)
然后kill掉:
sudo kill -9 6501
hadoop主节点缺少NameNode
log信息:
java.io.FileNotFoundException:/home/hadoop/app/dfs/name/in_use.lock (Permission denied)
处理办法:
有两种场景出现
1):在原来正常的时候,有一次突然使用了原来不同的用户启动了一次hadoop。这种场景会产生一个in_use.lock 文件夹在你设置的目录中,这时候可以删除这个文件夹直接,然后重新启动
2):在格式化hadoop的时候和当期启动的用户不是同一个,也会导致该问题。这个时候可以使用格式化hadoop的那个用户重新启动hadoop。也可以解决此错误。


hadoop主节点缺少SecondaryNameNode
log信息:
Cannot lock storage /home/hadoop/app/tmp/dfs/namesecondary. The directory is already locked
处理办法:删除该目录


java项目运行不报错
处理办法:
新建一个文件,命名为“log4j.properties”,放到src目录下。向里填入一下信息:
log4j.rootLogger=INFO, stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d %p [%c] - %m%n
log4j.appender.logfile=org.apache.log4j.FileAppender
log4j.appender.logfile.File=target/spring.log
log4j.appender.logfile.layout=org.apache.log4j.PatternLayout
log4j.appender.logfile.layout.ConversionPattern=%d %p [%c] - %m%n
保存后重新运行


通过java接口向hbase插入一张表时报错:
 [org.apache.hadoop.util.NativeCodeLoader] - Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
2017-03-15 14:09:11,318 ERROR [org.apache.hadoop.util.Shell] - 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.
处理办法:
到github下载https://github.com/srccodes/hadoop-common-2.2.0-bin,同样也可以适用于hadoop2.6.X
配置windows系统环境变量HADOOP_HOME和PATH,其中HADOOP_HOME的变量值为hadoop-common-2.2.0-bin-master的存放目录
重启eclipse


启动zookeeper时报错:
Unexpected exception, exiting abnormally java.net.BindException: Address already in use
处理办法:
用 sudo lsof -i:2181,发现了2181端口被占用了,kill掉进程 
(之前用root用户启动过zookeeper,端口被占用)




.8.向account表中插入数据时报错:
No server address listed in hbase:meta for region account,,1489571988348.199cbfbbfa0c172de72760708c5ed5aa. containing row fy1
scan ‘account’表,同样报相同的错误:


处理办法:
查看16010界面,发现account表


在java代码里将表名更改为online regions的表 并更改其列族名

 

 

 

 

 

posted @ 2017-04-30 16:28  Dlimeng  阅读(16)  评论(0)    收藏  举报  来源