CentOS7之hbase、hive安装配置

本文介绍centos7中hbase、hive安装配置以及一些个人发现的问题。
1、hbase2.2.2安装配置
这里推荐一篇专业文章:
http://dblab.xmu.edu.cn/blog/2442-2/#more-2442
按照所述步骤即可完成。
注意:

  1. 安装所需的hadoop配置安装可见我的另一篇博文:https://blog.csdn.net/qq_43175022/article/details/105106505
    里面有我安装是发现的很多问题及解决方法,希望能帮助你。

2、遇到的问题
1、错误: 找不到或无法加载主类 org.apache.hadoop.hbase.util.GetJavaProperty:
这里推荐一篇专业文章:
https://blog.csdn.net/pycrossover/article/details/102627807
按照所述的最后一大点步骤即可完成。
注意:
第一个要修改的地方,先把add_to_cp_if_exists “${HBASE_HOME}/hbase-server/target”该行删掉,再添加文章中的两行

我自己并没有成功,这方法应该存在什么缺陷

3、hive3.1.2安装配置
这里推荐一篇专业文章:
http://dblab.xmu.edu.cn/blog/2440-2/
按照所述步骤即可完成。
注意:

  1. 第二点的mysql链接包下载页面中,要选择与plotform independent(系统无关包)下载,下载tar.gz压缩包
  2. mysql在centos安装时已经安装,没有安装的也可以用
    sudo yum -y install mysql
    
    进行安装。
    但是注意:
    centos中,MariaDB代替了mysql数据库,浏览以下文章即可解决问题:
    https://blog.csdn.net/qq_38286347/article/details/85060407
  3. 安装指导文章里面有三点时遇到的问题,请仔细对比自己是否遇到。
  4. 在第一点的配置文件更新中,不止要更新hive.site.xml文件,还需要更新同样在conf目录下的hive-env.sh和hive-log4j2.properties文件,可以参考以下文章:
    https://www.e-learn.cn/content/linux/2366822
    其中,请自行根据安装目录修改配置目录;log文件中的logs文件夹需要自己新建。

4、遇到的问题
1、Loading class com.mysql.jdbc.Driver'. This is deprecated. The new driver class iscom.mysql.cj.jdb
这是因为使用近期的较新的mysql-jdbc链接包时,xml文件的语句需要更新,因此,打开hive.site.xml文件:

     <property>
        <name>javax.jdo.option.ConnectionDriverName</name>
        <value>com.mysql.jdbc.Driver</value>
    </property>

修改为:

     <property>
        <name>javax.jdo.option.ConnectionDriverName</name>
        <value>com.mysql.cj.jdbc.Driver</value>
    </property>

即可
2、Caused by: javax.jdo.JDOFatalInternalException: Error creating transactional connection factory
这个原因时缺少mysql-jdbc.jar链接包,按照上述我的注意事项,就不会有这个问题
3、javax.jdo.JDODataStoreException: Required table missing : “VERSION” in Catalog “” Schema “”.
这个是由于前面的问题没有解决,导致的缺少表。解决方法:
运行以下命令初始化表即可:

bin/schematool -dbType mysql -initSchema

4、DataNucleus.Persistence: Property datanucleus.cache.level2 unknown - will be
启动hive时,会输出[INFO]和[WARN]加以上信息的语句,虽然对hive使用无影响,但看着很不舒服,百度的解决方法是通过在hive-log4j2.properties文件中输入语句来限制输出等级,但我不会,希望我能找到方法,如果有人知道,麻烦告知一些,十分感谢
至于输出信息[INFO]、[WARN]等相关内容,可以参考以下文章:
https://blog.csdn.net/iteye_1005/article/details/81922259

========================================================
更新
今天因为hbase问题无法解决,因此我把hbase删除了,因为没有hbase,hive也能启动。
我删除hbase后,启动时遇到了:
Caused by: org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.hdfs.server.namenode.SafeModeException): Cannot create directory /tmp/hive/hadoop/b06。。。. Name node is in safe mode.

解决方法:
查看报错信息,会有提示解决办法的,如下
Use “hdfs dfsadmin -safemode leave” to turn safe mode off.
即,使用该命令:

hdfs dfsadmin -safemode leave

解除安全模式

删除hbase后,无法找到主类错误没有了,info和warn信息也没了。

========================================================
再更新
1、后续学习需要安装sqoop,这个组件也需要安装hbase,所以不得已又安装了一边hbase,安装上述方法再来了一边,还是一样的问题。
查阅多番资料,了解到重新下载HBase 2.0.5进行安装,可以解决上述问题。
贴一段摘自官网的建议:官网链接

Hadoop 2.x is recommended.

Hadoop 2.x is faster and includes features, such as short-circuit
reads (see Leveraging local data), which will help improve your HBase
random read profile. Hadoop 2.x also includes important bug fixes that
will improve your overall HBase experience. HBase does not support
running with earlier versions of Hadoop. See the table below for
requirements specific to different HBase versions.

Hadoop 3.x is still in early access releases and has not yet been
sufficiently tested by the HBase community for production use cases.
[建议使用Hadoop 2.x.
Hadoop 2.x速度更快,并且包含一些功能,例如短路读取(请参阅利用本地数据),这将有助于改善HBase随机读取配置文件。Hadoop 2.x还包含重要的错误修复程序,可以改善您的整体HBase体验。HBase不支持与早期版本的Hadoop一起运行。有关不同HBase版本的特定要求,请参阅下表。
Hadoop 3.x仍处于早期访问版本中,尚未经过HBase社区对生产用例的充分测试。]

2、hbase查询jar包问题
启动hbase时,会输出以下信息:

SLF4J: Found binding in [jar:file:/usr/local/hbase/lib/slf4j-log4j12-1.7.25.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/usr/local/hadoop/share/hadoop/common/lib/slf4j-log4j12-1.7.25.jar!/org/slf4j/impl/StaticLoggerBinder.class]

意思是:查找到相关jar包有两个包的功能是一样的。
解决方法:移除其中的一个,这里我选择的是hbase中的slf4j-log4j12-1.7.25.jar

3、hive查询jar包问题:
启动hive时,会输出以下信息:

SLF4J: Found binding in [jar:file:/usr/local/hive/lib/log4j-slf4j-impl-2.10.0.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/usr/local/hadoop/share/hadoop/common/lib/slf4j-log4j12-1.7.25.jar!/org/slf4j/impl/StaticLoggerBinder.class]

意思同上:也是查找到相关jar包有两个包的功能是一样的。
解决方法也差不多:移除其中的一个,这里我选择的是hive中的log4j-slf4j-impl-2.10.0.jar

再更新参考自:
https://blog.csdn.net/az9996/article/details/88920035?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-12.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-12.nonecase

========================================
再再更新
启动hive时,会输出以下信息:

WARN: 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.6.26+和5.7.6+的要求,如果不设置显式选项,则必须建立默认的SSL连接。您需要通过设置useSSL=false显式地禁用SSL,或者设置useSSL=true并为服务器证书验证提供信任存储

解决方法:在hive配置文件hive-site.xml中(目录:./conf)修改javax.jdo.option.ConnectionURL参数的value值,在后面添加:

&amp;useSSL=false

猜你喜欢

转载自blog.csdn.net/qq_43175022/article/details/105984759