了解Hive

  • Hive是一个基于hadoop文件系统之上的数据仓库架构
  • 提供数据ETL(抽取、转化和加载)工具、数据存储管理和大型数据集的查询和分析
  • 支持类似SQL的语句,不提供排序和查询缓存,不提供在线事物处理和实时的查询和记录级的更新,只能处理不变的大数据集
  • 将外部命令解析成MapRecude计划,交给集群处理

Hive的数据存储

  • 建立在hdfs上,没有专门的格式,没有索引,只需要建表时告诉hive列分隔符和行分隔符就可以解析数据了
  • 主要四类数据模型:
    — 表:Hive中的表和关系型数据库中的表在概念上很类似,每个表在HDFS中都有相应的目录用来存储表的数据,表名即目录名
    — 外部表:Hive中的外部表和表很类似,而是数据存放到别处,删除外部表只会删除元数据,数据不会被删除的;而删除表,该表对应的所有数据包括元数据都会被删除
    — 分区:就是表下面的子目录,分区位于表的目录下。相当于简单的索引功能,分区名不能与字段名重复
    — 桶:对指定的列计算其hash,根据hash值切分数据,相同hash值的存一个文件里,一个桶对应一个文件。分区下面也是可以建立桶的。

安装Hive

  1. 安装好hadoop
  2. 下载hive [http://apache.fayea.com/apache-mirror/hive/]
  3. 装在/usr/local/下 解压:加执行权限:chmod u+x apache-hive-0.13.1-bin.tar.gz 执行tar -zxvf apache-hive-0.13.1-bin.tar.gz
  4. 配置环境变量:vi /etc/profile 添加
    — export HIVE_HOME=/usr/local/hive0.13
    — export PATH=$HIVE_HOME/bin:$HIVE_HOME/conf
  5. 配置Hive :
    —默认没有hive-site.xml 手动创建 cp hive-default.xml.template hive-site.xml
    —修改hive-site.xml:
    • hive.metastore.warehouse.dir 指定hive的数据存储目录(为hdfs上的位置)
    • hive.exec.scratchdir 指定hive数据临时文件目录
    • 连接数据库配置:hive需要将元数据存储在RDBMS中,相当重要的。默认使用Derby数据库。
      这里修改为MySql,配置如下:
      • 这里MySQL采用rpm包安装
      • rpm -qa|grep -i mysql #查看已经安装的mysql相关包,如果系统自带有的话最好卸载掉
      • rpm -ev package_name #package_name包名 比如:mysql-server-5.0.51b-1.el5
        卸载后/var/lib/mysql中的/etc/my.cnf会重命名为my.cnf.rpmsave,/var/log/mysqld.log 会重命名为/var/log/mysqld.log.rpmsave,如果确定没用后就手工删除
      • 运行 rpm -ivh mysql-server-5.5.rpm —nodeps
      • 运行 rpm -ivh mysql-client-5.5.rpm —nodeps
      • 启动 /etc/init.d/mysql start 或 service mysql start
      • 停止 /etc/init.d/mysql stop 或 service mysql stop
      • 自动启动:察看mysql是否在自动启动列表中 /sbin/chkconfig —list
        把MySQL添加到你系统的启动服务组里面去 /sbin/chkconfig —add mysql
        把MySQL从启动服务组里面删除 /sbin/chkconfig —del mysql 查看服务状态:service mysql status
      • 修改密码 /usr/bin/mysqladmin -u root password ‘new-password’
      • 配置:将/usr/share/mysql/my-medium.cnf复制到/etc/my.cnf,以后修改my.cnf文件来修改mysql的全局设置
        将my.cnf文件中的innodb_flush_log_at_trx_commit设成0来优化[mysqld]后添加添加lower_case_table_names设成1来不区分表名的大小写
      • 安装好mysql后,就是配置hive-site.xml里的连接字符串、驱动、用户名密码
      • 将mysql驱动包放入hive安装目录lib里
  6. 启动hive:输入hive启动

配置Hive

  • 可通过hive-site.xml配置
  • 运行时配置:

    • set -v; 查看当前设定信息(set为session级的,所有set操作只对本次操作有效)
    • 等等…
  • hive建表,建分区、函数等等命令这里就不多讲了,都是死的,没意义,用到的时候百度就行了。

文章目录
  1. 1. 了解Hive
  2. 2. Hive的数据存储
  3. 3. 安装Hive
  4. 4. 配置Hive

Sides

IT技术分享博客