美文网首页
Hive架构 & 安装Hive并配置MYSQL作为metasto

Hive架构 & 安装Hive并配置MYSQL作为metasto

作者: alexlee666 | 来源:发表于2019-10-15 18:24 被阅读0次

    一、Hive架构

    Hive 架构图

    其中:

    • client连接Hive的三种方式:
      • CLI:Hive自带的shell;
      • JDBC/ODBC:比如Beeline;
      • Web UI:Hive的Web界面。

    关于三种连接方式详解可以参考博客:https://www.cnblogs.com/qingyunzong/p/8715925.html#_label2

    • metastore:metadata可以存储在三种metastore中,包括:内嵌式元存储(即Derby)、本地元存储(最常见的MYSQL)、远程元存储(最常见的MYSQ)。

    • 数据存储:业务数据存储在HDFS中(外部表)或者Hive中(Hive内部表可以配置hive.metastore.warehouse.dir);

    • 计算引擎:MapReduce;

    注:图中的HDFS是1.X版本的。


    二、安装并配置MYSQL作为metastore

    2.1 安装Hive

    简单来说官网下载hive安装包,配置环境变量即可。

    2.2 增加配置项到hdfs-site.xml等配置文件中

    必须在hdfs-site.xml中添加如下配置,否则hadoop会自动在/Users/ycaha/tmp目录下创建name等目录,这样的结果就是机器重启后自动删除,从而导致重启机器后namenode因为找不到NameNode路径而无法启动。

    
    <property>
      <name>dfs.namenode.name.dir</name>
      <value>/Users/ycaha/software-package-install/hadoop_install/namenode_name_dir</value>
    </property>
    
    <property>
      <name>dfs.datanode.data.dir</name>
      <value>/Users/ycaha/software-package-install/hadoop_install/datanode_data_dir</value>
    </property>
    
    <property>
      <name>dfs.replication</name>
      <value>3</value>
    </property>
    
    <property>
      <name>dfs.namenode.secondary.http-address</name>
      <value>127.0.0.1:9001</value>
    </property>
    
    

    还需要在core-site.xml中设置ha.zookeeper.quorum 和 hive.zookeeper.quorum:

    
    <configuration>
      <!-- 指定hdfs的nameservice为ns1 -->
      <property>
        <name>fs.defaultFS</name>
        <value>hdfs://ns1/</value>
      </property>
      <!-- 指定hadoop临时目录 -->
      <property>
        <name>hadoop.tmp.dir</name>
        <value>/home/hadoop/app/hadoop-2.4.1/tmp</value>
      </property>
      <!-- 指定zookeeper地址 -->
      <property>
        <name>ha.zookeeper.quorum</name>
        <value>s104:2181,s106:2181,s108:2181</value>
      </property>
    
    </configuration>
    
    

    之后必须要对HDFS的NameNode重新格式化:

    
    hadoop namenode format
    
    

    2.3 配置MYSQL

    在mysql数据库中新建名为mysql的数据库,设置用户名密码均为hive(也可以是其他的)。

      1. 在mysql中创建名为hive的数据库;
      1. 登陆mysql:执行mysql -uroot -proot
      1. 创建新数据库: mysql> create database hive;
      1. 创建新用户:mysql> create user 'hive'@'%' IDENTIFIED BY 'hive';
      1. 授权hive用户的权限(允许访问数据库hive中的所有表):mysql> GRANT all ON hive.* TO hive@'%' IDENTIFIED BY 'hive';
      1. 立即启用修改:mysql> flush privileges;

    另附其他一些常用操作:

    revoke  all  on  *.*  from tester;  --取消用户所有数据库(表)的所有权限 ;
    delete  from mysql.user  where  user='tester';  --删除用户 ;
    drop  database  [数据库名称]; --删除数据库
    
    

    2.4 在hive-site.xml中添加MYSQL的user、pass等信息

    <!-- 插入一下代码 -->
    
    <property>
      <name>javax.jdo.option.ConnectionUserName</name>用户名(这4是新添加的,记住删除配置文件原有的哦!)
      <value>hive</value>
    </property>
    
    <property>
      <name>javax.jdo.option.ConnectionPassword</name>密码
      <value>hive</value>
    </property>
    
    <property>
      <name>javax.jdo.option.ConnectionURL</name>mysql
      <value>jdbc:mysql://127.0.0.1:3306/hive</value>
    </property>
    
    <property>
      <name>javax.jdo.option.ConnectionDriverName</name>mysql驱动程序
      <value>com.mysql.jdbc.Driver</value>
    </property>
    
    <!-- 到此结束代码 -->
    

    三、运行hive并查看日志

    运行hive shell并查看详细运行日志:

    hive --hiveconf hive.root.logger=DEBUG,console
    
    

    如有错误之处,敬请指正!

    相关文章

      网友评论

          本文标题:Hive架构 & 安装Hive并配置MYSQL作为metasto

          本文链接:https://www.haomeiwen.com/subject/jdtemctx.html