Hive2.1.1的安装(hadoop版本2.7.3)

来源:互联网 发布:ptc是什么软件 编辑:程序博客网 时间:2024/05/29 10:33

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_101export HADOOP_HOME=/usr/local/hadoop/hadoop-2.6.0export HIVE_HOME=/usr/local/hive-2.1.1export 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 -prootgrant 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用户在Spark(Linux系统的主机名,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的元数据信息表

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 被洪水淹过的猪后期怎么办 做睾丸阴囊彩超阴茎突然勃起怎么办 阴茎冠状沟皮肤感染总不愈合怎么办 不小心咬到孩子破皮了怎么办 小孩子不小心碰到脸黑了一块怎么办 眼睛不小心碰到了里面红了怎么办 八个月宝宝睾丸还沒掉下来怎么办 孩子背部皮肤有一块皮肤很脏怎么办 洗浴种心搓背老板不给发工资怎么办 半个月小鸡屁骨下垂眼睛紧闭怎么办 在学校走廊把老师撞倒了怎么办 裤衩给孩子买的有点肥怎么办 到交警队立案后医疗费没了怎么办 交警扣车车里的贵重东西没了怎么办 睾丸内囊肿割了又长怎么办 我把别人的卵子踢碎了怎么办 两岁宝宝不小心被猫抓出血怎么办 两岁宝宝小蛋蛋肿了怎么办 吃大胺片过敏蛋皮又痛又痒怎么办 刚出生二十天宝宝蛋蛋有疝气怎么办 宝宝八个月蛋蛋一个没掉下来怎么办 引产23天同房内射肚子疼怎么办l 房东禁止养宠物如果养了怎么办 圆通快递退回但没有签收记录怎么办 信用卡没有收到又退回去了怎么办 新疆不给邮寄快递被退回运费怎么办 淘宝上已付款还在想留言怎么办 b超显示肾结石但x光看不到怎么办 洗脚让洗脚妹摸射精了怎么办 在新疆塔城干活不给工资怎么办 挨打了屁股肿的又大又硬怎么办 李贞将军有关电影小腿肌腱疼怎么办 朋友老婆老是背地里说我坏话怎么办 当你听到别人在背后说你时怎么办 分手了和前任是同事需要见面怎么办 和附近的人聊天他约你见面怎么办 微信约妹子发完红包拉黑了怎么办 户口本被前妻扣着不能结婚怎么办 部队当兵户口没注销退伍回去怎么办 没打疫苗的狗狗咬了我的嘴巴怎么办 新车被撞了还没上牌怎么办?