关于hive启动的相关问题记录

这篇具有很好参考价值的文章主要介绍了关于hive启动的相关问题记录。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

问题:初始化hive元数据报错

[atguigu@hadoop102 software]$ schematool -initSchema -dbType mysql -verbose

Error: Table 'CTLGS' already exists (state=42S01,code=1050)
Closing: 0: jdbc:mysql://hadoop102:3306/metastore?useSSL=false
org.apache.hadoop.hive.metastore.HiveMetaException: Schema initialization FAILED! Metastore state would be inconsistent !!
Underlying cause: java.io.IOException : Schema script failed, errorcode 2
org.apache.hadoop.hive.metastore.HiveMetaException: Schema initialization FAILED! Metastore state would be inconsistent !!
	at org.apache.hive.beeline.HiveSchemaTool.doInit(HiveSchemaTool.java:594)
	at org.apache.hive.beeline.HiveSchemaTool.doInit(HiveSchemaTool.java:567)
	at org.apache.hive.beeline.HiveSchemaTool.main(HiveSchemaTool.java:1517)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.apache.hadoop.util.RunJar.run(RunJar.java:318)
	at org.apache.hadoop.util.RunJar.main(RunJar.java:232)
Caused by: java.io.IOException: Schema script failed, errorcode 2
	at org.apache.hive.beeline.HiveSchemaTool.runBeeLine(HiveSchemaTool.java:1226)
	at org.apache.hive.beeline.HiveSchemaTool.runBeeLine(HiveSchemaTool.java:1204)
	at org.apache.hive.beeline.HiveSchemaTool.doInit(HiveSchemaTool.java:590)
	... 8 more
*** schemaTool failed ***
  • 首先想到的是删除hive在MySQL中创建的元数据库Metastore
  • 和HDFS中创建的目录关于hive启动的相关问题记录,Hive,hive,hadoop,数据仓库
  • 结果还是报错
  • 仔细一看是hive.metastore连接问题
org.apache.hadoop.hive.metastore.HiveMetaException: Failed to get schema version.
	at org.apache.hadoop.hive.metastore.tools.HiveSchemaHelper.getConnectionToMetastore(HiveSchemaHelper.java:94)
	at org.apache.hive.beeline.HiveSchemaTool.getConnectionToMetastore(HiveSchemaTool.java:169)
	at org.apache.hive.beeline.HiveSchemaTool.testConnectionToMetastore(HiveSchemaTool.java:475)
	at org.apache.hive.beeline.HiveSchemaTool.doInit(HiveSchemaTool.java:581)
	at org.apache.hive.beeline.HiveSchemaTool.doInit(HiveSchemaTool.java:567)
	at org.apache.hive.beeline.HiveSchemaTool.main(HiveSchemaTool.java:1517)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.apache.hadoop.util.RunJar.run(RunJar.java:318)
	at org.apache.hadoop.util.RunJar.main(RunJar.java:232)
Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown database 'metastore'
	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
	at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
	at com.mysql.jdbc.Util.handleNewInstance(Util.java:404)
	at com.mysql.jdbc.Util.getInstance(Util.java:387)
	at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:941)
	at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3870)
	at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3806)
	at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:871)
	at com.mysql.jdbc.MysqlIO.proceedHandshakeWithPluggableAuthentication(MysqlIO.java:1686)
	at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1207)
	at com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2254)
	at com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2285)
	at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2084)
	at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:795)
	at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:44)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
	at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
	at com.mysql.jdbc.Util.handleNewInstance(Util.java:404)
	at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:400)
	at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:327)
	at java.sql.DriverManager.getConnection(DriverManager.java:664)
	at java.sql.DriverManager.getConnection(DriverManager.java:247)
	at org.apache.hadoop.hive.metastore.tools.HiveSchemaHelper.getConnectionToMetastore(HiveSchemaHelper.java:88)

查看MySQL中的用户权限

  • 参考:https://blog.csdn.net/peterchan88/article/details/78341852
1.首先登陆用root用户登录mysql
mysql -u root -p

2.查看root下
mysql> select user,host from mysql.user where user='root';

grant all on *.* to 'root'@'hadoop102' identified by 'hadoop';

4.测试是否能登录
mysql -u root -h 'hadoop102' -phadoop
  • 使用初始化命令还是报错,继续往下查
org.apache.hadoop.hive.metastore.HiveMetaException: Failed to get schema version.
Underlying cause: java.sql.SQLException : Access denied for user 'root'@'hadoop102' (using password: YES)
SQL Error code: 1045
org.apache.hadoop.hive.metastore.HiveMetaException: Failed to get schema version.

检查 MySQL 服务的状态

显示 MySQL 服务的状态以及相关的日志信息,包括任何错误消息或警告
sudo systemctl status mysqld.service

start 命令启动
sudo systemctl start mysqld.service
  • 之前由于内存原因,删掉了MySQL解压后的相关文件,于是开始重新走一遍安装步骤

问题:登入MySQL报错

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
  • 解决:使用“ln -s /storage/db/mysql/mysql.sock /var/lib/mysql/mysql.sock”命令,将正确的socket文件位置,软链接到提示错误的socket文件路径位置
  • 试了还是不行,在此基础上重启mysql就好了,systemctl restart mysqld
  • 参考文章:https://blog.csdn.net/Aria_Miazzy/article/details/92803246
    关于hive启动的相关问题记录,Hive,hive,hadoop,数据仓库
  • 新建 Hive 元数据库
    关于hive启动的相关问题记录,Hive,hive,hadoop,数据仓库

初始化 Hive 元数据库,成功

schematool -initSchema -dbType mysql -verbose

关于hive启动的相关问题记录,Hive,hive,hadoop,数据仓库

hiveserver2 启动失败

metastore未正常启动
  • [atguigu@hadoop202 hive]$ nohup hive --service hiveserver2 2>&1 &
java.lang.RuntimeException: Unable to instantiate org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient
...
Caused by: MetaException(message:Could not connect to meta store using any of the URIs provided. Most recent failure: org.apache.thri
ft.transport.TTransportException: java.net.ConnectException: 拒绝连接 (Connection refused)
...
Caused by: java.net.ConnectException: 拒绝连接 (Connection refused)
...
Caused by: java.lang.RuntimeException: Unable to instantiate org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient
  • 查看元数据库是否启动
ps aux | grep metastore
  • 一开始查到的
    关于hive启动的相关问题记录,Hive,hive,hadoop,数据仓库
  • 启动 metastore
[atguigu@hadoop202 hive]$ hive --service metastore

关于hive启动的相关问题记录,Hive,hive,hadoop,数据仓库

HiveServer2 未正常启动

当时的原因是引擎问题,安装配置了tez引擎

<property>
   <name>hive.execution.engine</name>
   <value>tez</value>
</property>

bin/beeline连接不了

[atguigu@hadoop102 hive]$ bin/beeline -u jdbc:hive2://hadoop102:10000 -n 用户名 -p 密码

Error: Could not open client transport with JDBC Uri: jdbc:hive2://hadoop102:10000: Failed to open new session: java.lang.RuntimeExce
ption: org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.security.authorize.AuthorizationException): User: link999 is not allowed to impersonate anonymous (state=08S01,code=0)Beeline version 3.1.2 by Apache Hive
  • 在hadoop的配置文件core-site.xml增加如下配置,重启hdfs,其中“xxx”是连接beeline的用户,将“xxx”替换成自己的用户名即可。最关键的是一定要重启hadoop
    <property>
        <name>hadoop.proxyuser.xxx.hosts</name>
        <value>*</value>
    </property>
    <property>
        <name>hadoop.proxyuser.xxx.groups</name>
        <value>*</value>
    </property>
  • “*”表示可通过超级代理“xxx”操作hadoop的用户、用户组和主机

  • 主要原因是hadoop引入了一个安全伪装机制,使得hadoop 不允许上层系统直接将实际用户传递到hadoop层,而是将实际用户传递给一个超级代理,由此代理在hadoop上执行操作,避免任意客户端随意操作hadoop

  • 参考文章https://blog.csdn.net/qq_35746739/article/details/119032729

  • beeline 的常用参数文章来源地址https://www.toymoban.com/news/detail-846057.html

Option Description  
--autoCommit=[true/false] ---进入一个自动提交模式:beeline --autoCommit=true  
--autosave=[true/false]   ---进入一个自动保存模式:beeline --autosave=true  
--color=[true/false]    ---显示用到的颜色:beeline --color=true  
--delimiterForDSV= DELIMITER ---分隔值输出格式的分隔符。默认是“|”字符。  
--fastConnect=[true/false]  ---在连接时,跳过组建表等对象:beeline --fastConnect=false  
--force=[true/false]    ---是否强制运行脚本:beeline--force=true  
--headerInterval=ROWS   ---输出的表间隔格式,默认是100: beeline --headerInterval=50  
--help ---帮助  beeline --help  
--hiveconf property=value  ---设置属性值,以防被hive.conf.restricted.list重置:beeline --hiveconf prop1=value1   
--hivevar name=value   ---设置变量名:beeline --hivevar var1=value1  
--incremental=[true/false]  ---输出增量
--isolation=LEVEL  ---设置事务隔离级别:beeline --isolation=TRANSACTION_SERIALIZABLE  
--maxColumnWidth=MAXCOLWIDTH ---设置字符串列的最大宽度:beeline --maxColumnWidth=25  
--maxWidth=MAXWIDTH ---设置截断数据的最大宽度:beeline --maxWidth=150  
--nullemptystring=[true/false]  ---打印空字符串:beeline --nullemptystring=false  
--numberFormat=[pattern]     ---数字使用DecimalFormat:beeline --numberFormat="#,###,##0.00"  
--outputformat=[table/vertical/csv/tsv/dsv/csv2/tsv2] ---输出格式:beeline --outputformat=tsv   
--showHeader=[true/false]   ---显示查询结果的列名:beeline --showHeader=false  
--showNestedErrs=[true/false] ---显示嵌套错误:beeline --showNestedErrs=true  
--showWarnings=[true/false] ---显示警告:beeline --showWarnings=true  
--silent=[true/false]  ---静默方式执行,不显示执行过程信息:beeline --silent=true  
--truncateTable=[true/false] ---是否在客户端截断表的列     
--verbose=[true/false]  ---显示详细错误信息和调试信息:beeline --verbose=true  
-d <driver class>  ---使用一个驱动类:beeline -d driver_class  
-e <query>  ---使用一个查询语句:beeline -e "query_string"  
-f <file>  ---加载一个文件:beeline -f filepath  多个文件用-e file1 -e file2
-n <username>  ---加载一个用户名:beeline -n valid_user  
-p <password>  ---加载一个密码:beeline -p valid_password  
-u <database URL> ---加载一个JDBC连接字符串:beeline -u db_URL

到了这里,关于关于hive启动的相关问题记录的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • 关于hive无法正常启动(个人存档)

    关于hive无法正常启动(个人存档)

    #此文仅作为本人问题解决过程存档 环境:VM、CentOS、Xshell 问题:输入hive后无法正常启动hive,并有如下提示 错误原因:hdfs 和yarn没有完全启动(主要是namenode无法正常启动) 解决方法: 1. jps 查看当前进行进程 2. hadoop namenode -format  格式化hdfs系统(参考链接: (27条消息) h

    2024年02月05日
    浏览(11)
  • Hadoop历险记(七 Hive配置和启动hiveservice2服务)

    Hadoop历险记(七 Hive配置和启动hiveservice2服务)

    之前讲了hive的元数据,它存储着hiveSQL映射和hdfs具体文件数据的对应关系。 但是元数据存在单独的mysql中 直接将它暴露给外部是不安全的,所以hive特别增加了一个元数据服务。 它作为元数据和外部客户端之间的一个中间人。 metastore有三种服务配置模式 同时也可以说这是h

    2024年02月03日
    浏览(31)
  • hive磁盘空间相关问题报错

    hive磁盘空间相关问题报错

    报错:Error: Error while processing statement: FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.mr.MapRedTask. java.net.ConnectException: Your endpoint configuration is wrong; For more details see: http://wiki.apache.org/hadoop/UnsetHostnameOrPort (state=08S01,code=1) 分析:本报错在进行hive计算过程中出现的,原因

    2024年02月10日
    浏览(12)
  • Hive beeline客户端启动报错Could not open client transport with JDBC Uri: jdbc:hive2://hadoop101:10000: Fail

    Hive beeline客户端启动报错Could not open client transport with JDBC Uri: jdbc:hive2://hadoop101:10000: Fail

    在安装hive的时候,启动hiveserver2后,启动beeline客户端报错如下: Could not open client transport with JDBC Uri: jdbc:hive2://hadoop101:10000: Failed to open new session: java.lang.RuntimeException: org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.security.authorize.AuthorizationException): User: root is not allowed to impersonate

    2024年02月11日
    浏览(12)
  • 大数据之Hadoop数据仓库Hive

    大数据之Hadoop数据仓库Hive

    Hive 是一个构建在 Hadoop 之上的数据仓库,它可以将结构化的数据文件映射成表,并提供类 SQL 查询功能,用于查询的 SQL 语句会被转化为 MapReduce 作业,然后提交到 Hadoop 上运行。 特点: 简单、容易上手 (提供了类似 sql 的查询语言 hql),使得精通 sql 但是不了解 Java 编程的人也

    2024年02月01日
    浏览(16)
  • Hive初始化遇到的问题:org.apache.hadoop.hive.metastore.HiveMetaException: 失败加载驱动程序

    Hive初始化遇到的问题:org.apache.hadoop.hive.metastore.HiveMetaException: 失败加载驱动程序 在大数据领域,Hive是一个常用的数据仓库工具,它构建在Hadoop之上,提供了一种类似于SQL的查询语言,用于处理大规模的数据集。然而,有时在Hive的初始化过程中,可能会遇到一些错误。其中

    2024年02月08日
    浏览(15)
  • HDFS 跨集群数据同步(hive,hadoop)

    两个不同的HDFS 集群数据迁移( A集群的数据 - B 集群) 采用的是 SHELL 脚本  按表进行; 日期分区进行; #!/bin/bash ##################### #创建人:DZH #创建日期: 2020-04 #内容: 数据迁移 ##################### ##################################### [ \\\"$#\\\" -ne 0 ] FILE=$1 path=$(cd `dirname $0`; pwd) ############## 获取执

    2024年04月27日
    浏览(56)
  • 大数据技术之Hadoop学习(七)——Hive数据仓库

    大数据技术之Hadoop学习(七)——Hive数据仓库

    目录 素材 一、数据仓库简介 1、数据仓库的认识 (1)数据仓库是面向主题的。 (2)数据仓库是随时间变化的。 (3)数据仓库相对稳定 (4)OLTP和OLAP 2、数据仓库的结构 (1)数据源 (2)数据存储及管理 (3)OLAP 服务器 (4)前端工具 3、数据仓库的数据模型 (1)星状模

    2024年02月17日
    浏览(34)
  • Spark、RDD、Hive 、Hadoop-Hive 和传统关系型数据库区别

    Spark、RDD、Hive 、Hadoop-Hive 和传统关系型数据库区别

    Hive Hadoop Hive 和传统关系型数据库区别 Spark 概念 基于内存的分布式计算框架 只负责算 不负责存 spark 在离线计算 功能上 类似于mapreduce的作用 MapReduce的缺点 运行速度慢 (没有充分利用内存) 接口比较简单,仅支持Map Reduce 功能比较单一 只能做离线计算 Spark优势 运行速度快

    2024年02月13日
    浏览(14)
  • hive查看数据库出现org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient

    hive查看数据库出现org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient

    在启动hive后,使用show databses查看数据库时发现,出现了这个错误 根据搜索查找以及分析得知:可能是hive的数据库MySQL在安装的时候没有初始化,初始化数据库即可 schematool -dbType mysql -initSchema  1.在MySQL中删除元数据 drop database metastore; 2.进入hive中的bin里面 ,输入格式化命令

    2024年02月07日
    浏览(15)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包