时光印记:2020年6月16日

hive学习笔记

一、hive入门

1.1 什么是hive

  Hive:由Facebook开源用于解决海量结构化日志的数据统计。
  Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张表,并提供类SQL查询功能
  hive就像是Hadoop的客户端,自己只做(翻译官)
  本质是:将HQL转化成MapReduce程序

  • Hive处理的数据存储在HDFS
  • Hive分析数据底层的实现是MapReduce
  • 执行程序运行在Yarn上
1.2 hive架构原理
hive架构原理.PNG
  1. 用户接口:Client
    CLI(hive shell)、JDBC/ODBC(java访问hive)、WEBUI(浏览器访问hive)
  2. 元数据:Metastore
    元数据包括:表名、表所属的数据库(默认是default)、表的拥有者、列/分区字段、表的类型(是否是外部表)、表的数据所在目录等;
    默认存储在自带的derby数据库中,推荐使用MySQL存储Metastore
  3. Hadoop
    使用HDFS进行存储,使用MapReduce进行计算。
  4. 驱动器:Driver
    (1)解析器(SQL Parser):
    将SQL字符串转换成抽象语法树AST,这一步一般都用第三方工具库完成,比如antlr;对AST进行语法分析,比如表是否存在、字段是否存在、SQL语义是否有误。
    (2)编译器(Physical Plan):
    将AST编译生成逻辑执行计划。
    (3)优化器(Query Optimizer):
    对逻辑执行计划进行优化。
    (4)执行器(Execution):
    把逻辑执行计划转换成可以运行的物理计划。对于Hive来说,就是MR/Spark。

Hive通过给用户提供的一系列交互接口,接收到用户的指令(SQL),使用自己的Driver,结合元数据(MetaStore),将这些指令翻译成MapReduce,提交到Hadoop中执行,最后,将执行返回的结果输出到用户交互接口。

二、hive安装部署

2.1 hive安装
2.1.1 hive依赖的环境
  1. 把apache-hive-1.2.1-bin.tar.gz上传到linux的/opt/software目录下
  2. 解压apache-hive-1.2.1-bin.tar.gz到/opt/module/目录下面
[tldq@centos1 software]$ tar -zxvf apache-hive-1.2.1-bin.tar.gz -C /opt/module/
  1. 修改apache-hive-1.2.1-bin.tar.gz的名称为hive
[tldq@centos1 module]$ mv apache-hive-1.2.1-bin/ hive
  1. 修改/opt/module/hive/conf目录下的hive-env.sh.template名称为hive-env.sh
[tldq@centos1 conf]$ mv hive-env.sh.template hive-env.sh
  1. 配置hive-env.sh文件
    (a)配置HADOOP_HOME路径
    export HADOOP_HOME=/opt/module/hadoop
    
    (b)配置HIVE_CONF_DIR路径
    export HIVE_CONF_DIR=/opt/module/hive/conf
    
2.1.2 Hadoop集群配置
  1. 必须启动hdfs和yarn
[tldq@centos1 hadoop]$ sbin/start-dfs.sh
[tldq@centos2 hadoop]$ sbin/start-yarn.sh
  1. 在HDFS上创建/tmp和/user/hive/warehouse两个目录并修改他们的同组权限可写
[tldq@centos1 hadoop]$ bin/hadoop fs -mkdir /tmp
[tldq@centos1 hadoop]$ bin/hadoop fs -mkdir -p /user/hive/warehouse

[tldq@centos1 hadoop]$ bin/hadoop fs -chmod g+w /tmp
[tldq@centos1 hadoop]$ bin/hadoop fs -chmod g+w /user/hive/warehouse
2.1.3 Hive基本操作

(1)启动hive

[tldq@centos1 hive]$ bin/hive

(2)查看数据库

hive> show databases;

(3)打开默认数据库

hive> use default;

(4)显示default数据库中的表

hive> show tables;

(5)创建一张表

hive> create table student(id int, name string);

(6)显示数据库中有几张表

hive> show tables;

(7)查看表的结构

hive> desc student;

(8)向表中插入数据

hive> insert into student values(1000,"ss");

(9)查询表中数据

hive> select * from student;

(10)退出hive

hive> quit;
2.2 安装MySql
2.2.1 安装包准备
  1. 查看mysql是否安装,如果安装了,卸载mysql(如果没有,就不用卸载)
    (1)查看
    [root@centos1 桌面]# rpm -qa|grep mysql
    mysql-libs-5.1.73-7.el6.x86_64
    
    (2)卸载
    [root@centos1 桌面]# rpm -e --nodeps mysql-libs-5.1.73-7.el6.x86_64
    
  2. 解压mysql-libs.zip文件到当前目录
    [root@centos1 software]# unzip mysql-libs.zip
    [root@centos1 software]# ls
    mysql-libs.zip
    mysql-libs
    
  3. 进入到mysql-libs文件夹下
    [root@centos1 mysql-libs]# ll
    总用量 76048
    -rw-r--r--. 1 root root 18509960 3月  26 2015 MySQL-client-5.6.24-1.el6.x86_64.rpm
    -rw-r--r--. 1 root root  3575135 12月  1 2013 mysql-connector-java-5.1.27.tar.gz
    -rw-r--r--. 1 root root 55782196 3月  26 2015 MySQL-server-5.6.24-1.el6.x86_64.rpm
    
2.2.2 安装MySql服务器
  1. 安装mysql服务端
    [root@centos1 mysql-libs]# rpm -ivh MySQL-server-5.6.24-1.el6.x86_64.rpm
    
  2. 查看产生的随机密码
    [root@centos1 mysql-libs]# cat /root/.mysql_secret
    OEXaQuS8IWkG19Xs
    
  3. 查看mysql状态
    [root@centos1 mysql-libs]# service mysql status
    
  4. 启动mysql
    [root@centos1 mysql-libs]# service mysql start
    
2.2.3 安装MySql客户端
  1. 安装mysql客户端
    [root@centos1 mysql-libs]# rpm -ivh MySQL-client-5.6.24-1.el6.x86_64.rpm
    
  2. 链接mysql
QR Code
微信扫一扫,欢迎咨询~

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 155-2731-8020
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

手机不正确

公司不为空