• Hive2.1.1的安装


    Hive2.1.1的安装

      1. Hive简介 
        • 1.1 在Hadoop生态圈中属于数据仓库的角色。Hive能够管理Hadoop中的数据,同时可以查询Hadoop中的数据。它提供了一系列的工具,可以用来进行数据提取转化加载(ETL),这是一种可以存储、查询和分析存储在Hadoop中的大规模数据的机制。
        • 1.2 Hive定义了简单的类SQL查询语言,称为HQL ,它允许熟悉SQL的用户查询数据。同时,这个语言也允许熟悉MapReduce开发者的开发自定义的mapper和reducer来处理内建的mapper和reducer无法完成的复杂的分析工作。
        • 1.3 本质上讲,Hive是一个SQL解析引擎。Hive可以把SQL查询转换为MapReduce中的job然后在Hadoop执行。Hive有一套映射工具,可以把SQL转换为MapReduce中的job,可以把SQL中的表、字段转换为HDFS中的文件(夹)以及文件中的列。这套映射工具称之为metastore,一般存放在derby、mysql中。
        • 1.4 Hive的表其实就是HDFS的目录,按表名把文件夹分开。如果是分区表,则分区值是子文件夹,可以直接在M/R的Job里使用这些数据。
      2. Hive的系统架构 
        Hive的系统架构 
        • 2.1 用户接口主要有三个:CLI,JDBC/ODBC和WebUI 
          CLI,即Shell命令行 
          JDBC/ODBC是Hive的Java,与使用传统数据库JDBC的方式类似 
          WebUI是通过浏览器访问Hive
        • 2.2 Hive将元数据存储在数据库中(metastore),支持mysql、derby。Hive中的元数据包括表的名字、表的列和分区及其属性、表的属性(是否为外部表等)、表的数据所在目录等
        • 2.3 解释器、编译器、优化器完成HQL查询语句从词法分析、语法分析、编译、优化以及查询计划(plan)的生成。生成的查询计划存储在 HDFS 中,并在随后有MapReduce调用执行
        • 2.4 Hive的数据存储在HDFS中,大部分的查询由MapReduce完成(包含 * 的查询,比如select * from table不会生成MapRedcue任务,where后的条件是partition也不会生成M/R任务)
      3. 安装Hive

        • 3.1 下载Hive 
          下载Hive当前稳定版,将下载的apache-hive-2.1.1-bin.tar.gz拷贝到/root/Downloads目录下,解压到/usr/local目录下 
          tar -zxvf apache-hive-2.1.1-bin.tar.gz -C /usr/local/ 
          进入到/usr/local目录下,将解压后的文件重命名为hive-2.1.1 
          mv apache-hive-2.1.1-bin/ hive-2.1.1
        • 3.2 设置环境变量 
          vi /etc/profile

          export JAVA_HOME=/usr/local/java/jdk1.8.0_101
          export HADOOP_HOME=/usr/local/hadoop/hadoop-2.6.0
          export HIVE_HOME=/usr/local/hive-2.1.1
          export PATH=.:$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$HIVE_HOME/bin
          • 1
          • 2
          • 3
          • 4
          • 1
          • 2
          • 3
          • 4

          使配置立即生效 
          source /etc/profile 
          hive没有提供hive –version这种方式查看版本,执行hive --help查看 
          hive --help查看安装

        • 3.3 设置Hive的配置文件 
          在目录$HIVE_HOME/conf/下,执行命令 
          cp hive-log4j2.properties.template hive-log4j2.properties拷贝一份重命名 
          修改property.hive.log.dir = /usr/local/hive-2.1.1/logs/ 
          暂时只配置这些
        • 3.4 启动Hive 
          Hadoop集群要先启动

          Starting from Hive 2.1, we need to run the schematool command below as an initialization step. For example, we can use “derby” as db type.

            $ $HIVE_HOME/bin/schematool -dbType <db type> -initSchema
          • 1
          • 1

          这是Hive的官方文档上描述的,Hive2.1的启动需要先执行schematool命令 
          由于Hive默认内嵌的是derby数据库,先使用默认的数据库运行 
          执行schematool -dbType derby -initSchema进行初始化 
          执行初始化 
          执行命令hive进入到Hive Shell操作 
          进入到hive

        此时Hive安装成功。 
        默认情况下,Hive的元数据保存在了内嵌的derby数据库里,但一般情况下生产环境使用MySQL来存放Hive元数据。

      4. 安装MySQL 
        参见Linux下安装MySQL
      5. MySQL的驱动包放置到$HIVE_HOME/lib目录下 
        下载MySQL驱动,本机使用的版本是mysql-connector-Java-5.1.36-bin.jar
      6. 修改Hive的配置文件 
        参见3.3,在目录$HIVE_HOME/conf/下,执行命令cp hive-default.xml.template hive-site.xml拷贝重命名 
        将hive-site.xml里面的property属性配置全部删除,Hive会加载默认配置。添加如下配置,Hive连接MySQL的配置

        <property>
            <name>javax.jdo.option.ConnectionURL</name>
            <value>jdbc:mysql://spark:3306/hive?createDatabaseIfNotExist=true</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>root</value>
        </property>
        • 1
        • 2
        • 3
        • 4
        • 5
        • 6
        • 7
        • 8
        • 9
        • 10
        • 11
        • 12
        • 13
        • 14
        • 15
        • 16
        • 1
        • 2
        • 3
        • 4
        • 5
        • 6
        • 7
        • 8
        • 9
        • 10
        • 11
        • 12
        • 13
        • 14
        • 15
        • 16
      7. 启动Hive 
        Hadoop集群要先启动

        • 7.1 执行命令hive 
          出现不能实例化metadata的错误 
          不能实例化metadata 
          以及MySQL连接被拒绝的错误 
          hive不能连接到MySQL
        • 7.2 首先解决MySQL连接被拒绝问题

          mysql -uroot -proot
          grant all privileges on *.* to root@'spark' identified by 'root';
          flush privileges;
          exit;
          • 1
          • 2
          • 3
          • 4
          • 1
          • 2
          • 3
          • 4

          MySQL远程权限 
          *.*代表全部数据库的全部表授权,也可以指定数据库授权,如test_db.*; 
          all privileges代表全部权限,也可以insert,update,delete,create,drop等; 
          允许root用户在SparkLinux系统的主机名,IP映射)进行远程登陆,并设置root用户的密码为root。 
          flush privileges告诉服务器重新加载授权表。

        • 7.3 解决不能实例化metadata的错误 
          参见3.4,Hive2.1的启动需要先执行schematool命令进行初始化 
          schematool -dbType mysql -initSchema 
          MySQL数据库初始化

        • 7.4 再次执行hive,进入到Hive Shell 
          进入到Hive Shell 
          此时Hive和MySQL连接安装部署成功。
      8. 查看MySQL数据库 
        hive-site.xml配置的是jdbc:mysql://spark:3306/hive?createDatabaseIfNotExist=true,即如果不存在hive数据库会创建 
        默认MySQL里的数据库 
        MySQL数据库 
        此时在MySQL里查看数据库,多出了hive数据库 
        多生成了hive数据库 
        查看hive数据库里的表

        use hive;
        show tables;
        • 1
        • 2
        • 1
        • 2

        查看hive数据库里的表 
        可以看到Hive的元数据信息表

  • 相关阅读:
    【数学】Codeforces Round #470 (Div2) B
    【数学】At Coder 091 D题
    【2-SAT】The Ministers’ Major Mess UVALive – 4452
    【二分答案+2-SAT】Now or later UVALive
    【栈模拟dfs】Cells UVALive
    浅谈2-SAT(待续)
    【交叉染色法判断二分图】Claw Decomposition UVA
    【拓扑排序或差分约束】Guess UVALive
    【欧拉回路】UVA
    周总结8.15
  • 原文地址:https://www.cnblogs.com/hmy-blog/p/6506422.html
Copyright © 2020-2023  润新知