zoukankan      html  css  js  c++  java
  • mac OSX 上 brew install hive

    本文介绍brew install hive并修改默认的metastore存储方案,改Derby数据库为mysql的方法以及可能遇到的问题的解决方案。

    1. 通过homebrew安装hive

    1
    brew install hive

    2. 添加hadoop和hive的环境变量

    1
    2
    3
    4
    5
    6
    sudo vim ~/.bash_profile
     
    export HADOOP_HOME=/usr/local/Cellar/hadoop/hadoop.version.no
    export HIVE_HOME=/usr/local/Cellar/hive/hive.version.no/libexec
     
    source ~/.bash_profile

    3. 下载mysql connector

    1
    2
    3
     
    sudo cp mysql-connector-java-5.1.15/mysql-connector-java-5.1.22-bin.jar /usr/local/Cellar/hive/hive.version.no/libexec/lib/

    4. 创建mysql metastore

    1
    2
    3
    4
    mysql> CREATE DATABASE metastore;
    mysql> USE metastore;
    mysql> CREATE USER 'hiveuser'@'localhost' IDENTIFIED BY 'password';
    mysql> GRANT SELECT,INSERT,UPDATE,DELETE,ALTER,CREATE ON metastore.* TO 'hiveuser'@'localhost';

    5. 配置hive的配置文件

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    cd /usr/local/Cellar/hive/hive.version.no/libexec/conf
    cp hive-default.xml.template hive-site.xml
     
    #添加或者编辑如下内容
    <property>
      <name>javax.jdo.option.ConnectionURL</name>
      <value>jdbc:mysql://localhost/metastore</value>
    </property>
    <property>
      <name>javax.jdo.option.ConnectionDriverName</name>
      <value>com.mysql.jdbc.Driver</value>
    </property>
    <property>
      <name>javax.jdo.option.ConnectionUserName</name>
      <value>hiveuser</value>
    </property>
    <property>
      <name>javax.jdo.option.ConnectionPassword</name>
      <value>password</value>
    </property>
    <property>
      <name>datanucleus.fixedDatastore</name>
      <value>false</value>
    </property>

    6. 测试hive是否工作

    1
    2
    3
    $ hive;
    hive > show tables;
    hive> create table temp_table temp_col string;

    7. Revoke few permissions on the mysql metastore

    1
    2
    $ mysql
    mysql> REVOKE ALTER,CREATE ON metastore.* FROM 'hiveuser'@'localhost';

    9. Further troubleshooting : 
    (a) If you get a bin log error saying statement format is not support. Login to your mysql console as root

    $ mysql -uroot
    mysql > SET GLOBAL binlog_format = 'ROW';
    
    

    (b) You could also try reading the logs as follows. Logs can be emitted to the bash prompt while running hive by setting hive.root.logger to INFO,console.

    $ hive -hiveconf hive.root.logger=INFO,console
    
    

    (c)You could also read the raw hive logs which is usually located at /tmp/user_name/hive.log

     
    (d)If you still have any errors, feel free to comment.
     
     
    在配置完成后,可能遇到的问题解决方案
    一,Reference error
    解决方案:
            使用sequel pro, 修改hive用户的权限,添加Reference的global权限。
     
    二,启动hive时遇到的" Caused by: java.net.URISyntaxException: Relative path in absolute URI: ${system:java.io.tmpdir%7D/$%7Bsystem:user.name%7D "
     
    解决方案:
     
    修改hive-site.xml 配置中的以下key value即可:
     
    <name>hive.exec.scratchdir</name>
    <value>/tmp/hive-${user.name}</value>
     
     <name>hive.exec.local.scratchdir</name>
     <value>/tmp/${user.name}</value>
     
    <name>hive.downloaded.resources.dir</name>
    <value>/tmp/${user.name}_resources</value>
     
    <name>hive.scratch.dir.permission</name>
        <value>733</value>
     
    restart hive metastore and hiveserver2 
  • 相关阅读:
    数据库字段太多,批量快速建立实体类方法(适合大量字段建立实体类)
    SQL service 中的 ”输入SQL命令窗口“ 打开了 “属性界面” 回到 ”输入SQL命令窗口“
    计算机软件编程英语词汇集锦
    编程常用英语词汇
    svn上传和下载项目
    当启动tomcat时出现tomcat setting should be set in tomcat preference page
    Implicit super constructor Object() is undefined for default constructor. Must define an explicit constructor
    eclipse中选中一个单词 其他相同的也被选中 怎么设置
    Spring Boot的@SpringBootApplication无法引入的问题
    最全的SpringCloud视频教程
  • 原文地址:https://www.cnblogs.com/ToDoToTry/p/5349753.html
Copyright © 2011-2022 走看看