【Hadoop】Hadoop相关错误及解决方案

 

1:hive运行错误 :

HiveException java.lang.RuntimeException: Unable to instantiate org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient

不能实例化org.apache.hadoop.hive.ql.metadata这个包下的SessionHiveMetaStoreClient(元数据存储)这个类。

可能原因

1 hive版本过高(可能性较小)我用的hive3.0没有这个问题。

2 没有初始化元数据存储(可能性较大)执行 schematool -dbType mysql -initSchema命令初始化当前 Hive 版本的 Metastore 架构

 

2:Hadoop格式化namenode后jps命令无法显示datanode进程:

打开hdfs-site.xml里配置的datanode和namenode对应的目录,分别打开current文件夹里的VERSION,可以看到clusterID项正如日志里记录的一样,确实不一致,修改datanode里VERSION文件的clusterID 与namenode里的一致,再重新启动dfs(执行start-dfs.sh)再执行jps命令可以看到datanode已正常启动。

 

3:无法通过访问web访问hdfs,http://ip:50070

1:浏览器缓存问题,清空缓存(可能性极小);

2:未格式换namenode,Hadoop目录下执行bin/hadoop/namenode -format(一般是在初次安装配置时,可能性小);

3:namenode初始化默认端口失效,在hdfa配置文件hdfs-site.xml中添加:

<property>
  <name>dfs.http.address</name>
  <value>0.0.0.0:50070</value>
</property>

4:解决hive警告:

Establishing SSL connection without server's identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if explicit option isn't set. For compliance with existing applications not using SSL the verifyServerCertificate property is set to 'false'. You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide truststore for server certificate verification.、

不建议在没有服务器身份验证的情况下建立SSL连接。根据MySQL 5.5.45 +、5.626+和5.7.6+的要求,如果没有设置显式选项,默认情况下必须建立SSL连接。对于不使用SSL的现有应用程序,ValuyServer证书属性设置为“false”。您需要通过设置USESL= false来显式禁用SSL,或者设置USELS=true,并为服务器证书验证提供信任存储。

配置更改hive的 conf目录下hive-site.xml配置信息添加useSSL=false如下图

 

5HDFS编程:No FileSystem for scheme: hdfs错误:

在程序中添加配置信息:

configuration.set("fs.hdfs.impl", "org.apache.hadoop.hdfs.DistributedFileSystem"); 

6HDFS编程:连接超时:20000 millis timeout while waiting for channel to be ready for connect

原因有很多,在排除了很多情况后发现原来是忘记开放服务器的9000端口,

在服务器安全组规则下开放9000端口即可。

展开阅读全文

没有更多推荐了,返回首页