精华内容
下载资源
问答
  • Hive初始化元数据库这是一个大数据开发人员必会操作,下面开干! 文章目录0、准备工作1、登录MySQL数据库2、MySQL创建hive数据库3、打开Hive客户端,初始化数据仓库4、查看Hive数据仓库中是否有库、表5、查看...

    Hive初始化元数据库这是一个大数据开发人员必会操作,下面开干!



    0、准备工作

    在hive-site.xml中做好jdbc配置

    <property>
        <name>javax.jdo.option.ConnectionURL</name>
        <value>jdbc:mysql://IP:port/hive_metastore_1?allowMultiQueries=true&amp;useSSL=false&amp;verifyServerCertificate=false</value>
    </property>
    
    <property>
        <name>javax.jdo.option.ConnectionUserName</name>
        <value>root</value>
    </property>
    
    <property>
        <name>javax.jdo.option.ConnectionPassword</name>
        <value>password</value>
    </property>
      
    <property>
        <name>javax.jdo.option.ConnectionDriverName</name>
        <value>com.mysql.jdbc.Driver</value>
    </property>
    

    注意细节:(安全大于天)
    实际过程中,不要使用mysql数据库root用户
    另外着重需要注意的地方是,数据库密码加密应该提高复杂度(大、小写字母,数字,特殊字符)


    1、登录MySQL数据库

    (版本5.7.27,部署文档在下一篇,敬请期待!)
    mysql -uroot -p

    2、MySQL创建hive数据库

    create database hive_metastore_1;

    3、打开Hive客户端,初始化元数据仓库

    schematool -dbType mysql -initSchema --verbose

    1

    初始化成功!

    2

    beeline> Initialization script completed
    schemaTool completed
    

    4、查看Hive元数据仓库中是否有库、表

    show databases;
    show tables;
    2

    5、查看MySQL数据库中创建的hive数据库

    1

    2

    6、测试hive元数据仓库

    创建数据库、事务表

    1

    2

    建库

    create database test;

    建事务表

    create table test_table_1(id int,name string) clustered by(id) into 2 buckets stored as orc tblproperties('transactional'='true');
    

    做技术,一定要严谨!!!

    展开全文
  • Thu Jul 01 07:32:02 EDT 2021 WARN: Establishing SSL connection without server's identity verification is not ... org.apache.hadoop.hive.metastore.HiveMetaException: Failed to get schema version.
  • 序言无论是使用何种语言进行编程,碰到的第一个问题莫过于乱码的问题,而使用数据库的时候,也大致差不多。 hive使用元数据库来记录相关hdfs数据文件和数据库表之间的映射关系,...

    序言

        无论是使用何种语言进行编程,碰到的第一个问题莫过于乱码的问题,而使用数据库的时候,也大致差不多。

        hive使用元数据库来记录相关hdfs数据文件和数据库表之间的映射关系,当创建的数据库是使用中文注释的时候,那么就会碰到乱码问题。

    HIVE元数据库乱码

        1 问题现象

        创建一个ods层的表,使用中文进行注释,发现不能显示乱码:

        2 检查元数据库编码

        数据库显示为乱码,第一时间检查元数据库的编码,看是否是utf8编码。

        发现数据库编码为latin1,从而要将数据库编码修改为utf8.

    //修改mysql的配置文件my.cnf,在mysqld的配置下加上字符编码为utf8
    [root@KEL1 ~]# diff /etc/my.cnf /etc/my.cnf.bak 
    28,32d27
    < character-set-server=utf8 
    < [client]
    < default-character-set=utf8 
    < [mysql]
    < default-character-set=utf8
    //重启mysqld进程
    [root@KEL1 ~]# systemctl restart mysqld
    //检查配置是否生效
    mysql> show variables like 'char%';
    +--------------------------+----------------------------+
    | Variable_name            | Value                      |
    +--------------------------+----------------------------+
    | character_set_client     | utf8                       |
    | character_set_connection | utf8                       |
    | character_set_database   | utf8                       |
    | character_set_filesystem | binary                     |
    | character_set_results    | utf8                       |
    | character_set_server     | utf8                       |
    | character_set_system     | utf8                       |
    | character_sets_dir       | /usr/share/mysql/charsets/ |
    +--------------------------+----------------------------+
    8 rows in set (0.01 sec)
    //删除hive的元数据库,进行重新初始化
    mysql> drop database hive;
    Query OK, 53 rows affected (0.12 sec)
    

        3 重新初始化元数据库

        使用schemtool工具进行重新初始化元数据库:

    [root@KEL1 bin]# schematool -dbType mysql -initSchema
    Metastore connection URL:   jdbc:mysql://localhost:3306/hive?createDatabaseIfNotExist=true
    Metastore Connection Driver :   com.mysql.cj.jdbc.Driver
    Metastore connection User:   root
    Starting metastore schema initialization to 1.2.0
    Initialization script hive-schema-1.2.0.mysql.sql
    Initialization script completed
    schemaTool completed
    

        检查数据库的字符编码:

        检查表的编码:

    mysql> show create table PARTITIONS;
    

        发现表的编码依旧没发生变化,所以此时去使用中文的时候,其实依旧会出现乱码。

        4 检查初始化脚本

        在进行初始化的时候,可以看到下面一句话,表示初始化脚本的名称:

    Initialization script hive-schema-1.2.0.mysql.sql
    //找到脚本所在的路径
    [root@KEL1 apache-hive-1.2.2]# cd scripts/metastore/upgrade/mysql/
    [root@KEL1 mysql]# ls -l hive-schema-1.2.0.mysql.sql 
    -rw-r--r-- 1 root root 35192 Feb 22 04:45 hive-schema-1.2.0.mysql.sql
    

        查看其中的内容:

        可以看到建表语句中,指定了字符集。

        使用sed命令替换建表语句中的字符集:

    [root@KEL1 mysql]# sed -i 's/CHARSET=latin1/CHARSET=utf8/g' *.sql
    [root@KEL1 mysql]# sed -i 's/latin1_bin/utf8_general_ci/g' *.sql
    [root@KEL1 mysql]# sed -i 's/latin1/utf8/g' *.sql
    

        检查是否替换成功:

        

        5 重新初始化

        重新初始化执行命令如下:

    [root@KEL1 bin]# schematool -dbType mysql -initSchema
    Metastore connection URL:   jdbc:mysql://localhost:3306/hive?createDatabaseIfNotExist=true
    Metastore Connection Driver :   com.mysql.cj.jdbc.Driver
    Metastore connection User:   root
    Starting metastore schema initialization to 1.2.0
    Initialization script hive-schema-1.2.0.mysql.sql
    Error: Specified key was too long; max key length is 3072 bytes (state=42000,code=1071)
    org.apache.hadoop.hive.metastore.HiveMetaException: Schema initialization FAILED! Metastore state would be inconsistent !!
    *** schemaTool failed ***
    

        发现出现报错创建索引超出长度导致元数据状态不一致。

    //组成索引列总长度大于3072 bytes时报错
    CREATE INDEX PCS_STATS_IDX ON PART_COL_STATS (DB_NAME,TABLE_NAME,COLUMN_NAME,PARTITION_NAME) USING BTREE;
    

        将表PART_COL_STAS中的PARTION_NAME的长度替换为640即可(否则会导致索引无法创建):

        下图上为报错未创建索引,下为正常创建索引:

        再次进行初始化成功:

        进行检查:

        查看元数据库中的信息:

        

    展开全文
  • 执行hive初始化数据库出现问题 schematool -initSchema -dbType mysql -verbose 然后报错 Schema initialization FAILED! Metastore state would be inconsistent 二、解决方法 1、先删除多出来的2个文件/文件夹 ...

    一、出现的问题

    执行hive初始化源数据库出现问题

    schematool -initSchema -dbType mysql -verbose
    

    然后报错
    Schema initialization FAILED! Metastore state would be inconsistent

    二、解决方法

    1、先删除多出来的2个文件/文件夹

    有个d***.log(刚才忘了记录一下,忘了叫啥名),
    rm -rf metastore_db

    2、看一下数据库里面的metastore数据库

    应该是没有表的,如果有,就删了metastore重建

    3、确认一下hive-site.xml

    看看这个文件有没有出错,可能只是多个符号,或者配置的名字打错了,
    细心确认

    附上我的hive-site.xml,
    (1)连接地址写上你自己的节点和数据库,
    (2)修改用户名和密码
    (3)修改目录,端口等。。。

    <?xml version="1.0"?>
    <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
    <configuration>
        <property>
            <name>javax.jdo.option.ConnectionURL</name>
            <value>jdbc:mysql://Master:3306/metastore?useSSL=false</value>
        </property>
    
        <property>
            <name>javax.jdo.option.ConnectionDriverName</name>
            <value>com.mysql.jdbc.Driver</value>
        </property>
    
        <property>
            <name>javax.jdo.option.ConnectionUserName</name>
            <value>root</value>
        </property>
    
        <property>
            <name>javax.jdo.option.ConnectionPassword</name>
            <value>******</value>
        </property>
    
        <property>
            <name>hive.metastore.warehouse.dir</name>
            <value>/user/hive/warehouse</value>
        </property>
    
        <property>
            <name>hive.metastore.schema.verification</name>
            <value>false</value>
        </property>
    
        <property>
            <name>hive.metastore.uris</name>
            <value>thrift://Master:9083</value>
        </property>
    
        <property>
        <name>hive.server2.thrift.port</name>
        <value>10000</value>
        </property>
    
        <property>
            <name>hive.server2.thrift.bind.host</name>
            <value>Master</value>
        </property>
    
        <property>
            <name>hive.metastore.event.db.notification.api.auth</name>
            <value>false</value>
        </property>
        
        <property>
            <name>hive.cli.print.header</name>
            <value>true</value>
        </property>
    
        <property>
            <name>hive.cli.print.current.db</name>
            <value>true</value>
        </property>
    
        <!--Spark依赖位置-->
      <property>
        <name>spark.yarn.jars</name>
        <value>hdfs://Master:8020/spark-jars/*</value>
      </property>
      
      <!--Hive执行引擎-->
      <property>
        <name>hive.execution.engine</name>
        <value>spark</value>
      </property>
    </configuration>
    
    展开全文
  • 输入schematool -initSchema -dbType mysql -verbose初始化 Hive 元数据库 报错 去/opt/module/hive/conf下找到hive-site.xml 查看密码发现不对 我的密码是123 将000000修改为123 修改后再次初始化成功

     输入schematool -initSchema -dbType mysql -verbose初始化 Hive 元数据库 报错

     去/opt/module/hive/conf下找到hive-site.xml 查看密码发现不对 我的密码是123

     将000000修改为123

    修改后再次初始化成功

     

    展开全文
  • 启动hive-metastore和hive-server2 用beeline连接hive报错 [root@node04 hive]# beeline Beeline version 0.13.1-cdh5.3.0 by Apache Hive beeline&gt; !connect jdbc:hive2://172.16.145.114:10000 hive scan ...
  • 我将debby数据库换成Mysql数据库的时候,按照配置修改好配置文件后,使用初始化数据库的命令 schematool -dbType mysql -initSchema 初始化数据库的时候出现了下面这个问题: 这里是因为用户atguigu的权限有问题...
  • Hive初始化元数据常见报错

    千次阅读 2019-06-04 11:42:12
    目录 Hive数据相关配置 一、hive的配置 二、mysql数据库配置 ... hive初始化元数据常见的报错 Hive数据相关配置 一、hive的配置 下面是Hive存储”的存储位置为MySQL数据库,必要...
  • 1、数据库连接权限问题 Underlying cause: java.sql.SQLException : null, message from server: "Host 'bigdata01' is not allowed to connect to this MySQL server" SQL Error code: 1130 Underlying cause: ...
  • hive初始化mysql数据库报错

    千次阅读 2019-04-30 22:26:39
    [root@master bin]# schematool -initSchema -dbType mysql Metastore connection URL: jdbc:mysql://192.168.89.128:3306/hive?createDatabaseIfNotExist=true&useSSL=false Metastore Connection Driver...
  • hadoop的hive初始化元数据库报错 怎么解决
  • 虽然两次错误都不一样,但是很奇怪的是明明更改了hive-site.xml的配置,为什么初始化还是提示的derby内容,我也搜了很多,加了很多配置信息,但是还是没用,这里我的错误原因是因为一开始我就想当然的直接给hive-...
  • 大数据之hive——数据初始化

    千次阅读 2021-03-03 17:41:42
    数据初始化命令: schematool -dbType mysql -initSchema 控制台日志 SLF4J: Class path contains multiple SLF4J bindings. SLF4J: Found binding in [jar:file:/home/sweet/software/apache-hive-2.3.6-bin...
  • hive启动报错没有初始化元数据库:Unable to instantiate org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStolient 一、mysql数据库创建Hive元数据库hive mysql> create database hive; mysql> grant all...
  • (1)是否将MySQL的JDBC驱动拷贝到Hive的lib目录下: sudo cp /opt/software/mysql-connector-java-5.1.37.jar $HIVE_HOME/lib (2)是否在$HIVE_HOME/conf目录下新建hive-site.xml文件,文件的内容可以百度下 ...
  • 初始化元数据需要使用cdh hive中的schematool 脚本工具进行初始化初始化脚本位置为cloudera/parcels/CDH/lib/hive/bin/ 接下来执行初始化命令 ./schematool -initSchema -dbType mysql --verbose 执行报错: ...
  • 初始化命令 $ schematool -initSchema -dbType mysql -verbose 报错信息 SLF4J: Class path contains multiple SLF4J bindings. SLF4J: Found binding in [jar:file:/usr/local/apache-hive-3.1.2-bin/lib/log4j-...
  • 初始化数据库时报如下错误 :org.apache.hadoop.hive.metastore.HiveMetaException: Failed to get schema version. 2020-06-30 08:25:09,985 WARN [main] util.HeapMemorySizeUtil: hbase.regionserver.global....
  • hive初始化源数据失败!

    千次阅读 2019-04-29 00:20:29
    schematool -dbType mysql -initSchema ... to hive@localhost identified by ‘hive’; //给hive权限 flush privileges; //更新 schematool -dbType mysql -initSchema //再更新数据 解决
  • hive初始化数据库失败

    千次阅读 2019-09-19 16:04:57
    org.apache.hadoop.hive.metastore.HiveMetaException: Failed to load driver 原因:缺少jdbc驱动,于是添加jdbc...重新初始化: schematool -dbType mysql -initSchema 出现如下图所示,则表示初始化成功: ...
  • hive初始化数据库报错

    2019-09-16 16:45:53
    进行初始化数据库时显示报错 ``` root@hadoop1:/usr/local/hive/bin# schematool -dbType mysql -initSchema --verbose SLF4J: Class path contains multiple SLF4J bindings. SLF4J: Found binding in [jar:...
  • 初始化元数据命令 schematool -dbType mysql -initSchema
  • hadoop hive schema初始化数据库权限失败的解决办法 SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation. SLF4J: Actual binding is of type [org.apache.logging.slf4j.Log4...
  • 今天配置hive 犯了一个问题:下载的hive tar.gz 里的conf目录只有一个 hive-default.xml.template,于是我就cp 了一份命名为:hive-default.xml 结果弄上去总是出现一个问题,就是我在 bin/ 运行hive 创建的...
  • 执行如下命令: 报错 解决方法:删除创建的数据库,重新再创建一次。 就没问题了 ~
  • 今天同学来问我,他说他的Hive初始化MySQL都尝试了半天了,甚至都重装MySQL了,还是初始化失败。 我过去瞅了一眼,他的hive-site.xml文件中,标签对内部多了几个空格,将空格删除就好了。 这也算是H...
  • hive元数据初始化遇到的坑

    千次阅读 2019-07-26 11:50:14
    ERROR 1862 (HY000): Your password has expired. To log in you must change it using a client that supports expired passwords. 解决办法: 1.在my.cnf mysqld 部分加入 ... #跳过数据库权限验证 [mysqld] skip-...
  • Hive安装中数据初始化遇到的坑

    千次阅读 2019-05-29 10:55:26
    在已经部署了hadoop的linux中,安装hive,并数据用MySQL数据库hive-default.xml.template 是坑中之最。 1.需要修改文件名。注意!这个文件名需要改。 cp hive-default.xml.template hive-site.xml cp ...
  • hive数据库初始化失败

    2021-10-24 18:24:31
    90%的hive数据库初始化失败的原因都是配置文件没整明白,咱们可以看看hive-env.sh.template 这句话的意思是: <! ——警告! ! 这个文件是自动生成的,只用于文档的目的! --> <! ——警告! ! 你对这个...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 13,982
精华内容 5,592
关键字:

hive初始化元数据库