-
1.Hive基本信息
- 1.官网:http:// hive.apache.org
- 2. Facebook(开源) : 去解决海量
- 3. 构建在hadoop之上的数据仓库
- hdfs :hive的数据是存储在hdfs之上的
- yarn :hive的作业可以跑在yarn之上的
- mapreduce :hive的作业可以用MR的方式去运行
- 4. 如何使用
- 1. 定义了一种类sql的语言 : 类似sql又不完全相同
- 2. 适用于离线/批处理
- 3. 开发就是sql => mr作业 =>yarn上去运行
- Hive底层引擎
- MR : SQL => MR (默认)
- Tez : SQL => Tez
- Spark : SQL => Spark
spqrkaql 去处理hive里面的数据
hive on spark => hive的引擎是spark (生产上不多用)
spark on hive => sparksql 查询 hive 里面的表
- 4.
- 5.版本介绍
- x.y.x
- x 大版本
- y 小版本
- z 小版本的bug fix
- x.y.x
- 6.hive的特点
- 1.简单易用
- 2. 扩展性好
- 1. sql功能角度 :udf
- 2. 数据存储 和 计算角度:hadoop进行拓展
- 3. Metastore 【Hive的元数据管理】
- sparksql presto impala 只要能够访问hive Metastore 就可以访问Hive表中的数据【可以共享Metastore】
-
2.Hive的架构
- 元数据 :描述数据的数据
- 表的名字
- 字段的名i在
- 字段的类型
- 创建这
- 数据存储地方
- 元数据 :描述数据的数据
- 常见问题
- 1.共同点 : sql
- 2. 延时性 : hive适用于离线计算 慢
- 3. 事物 : 都支持
- 4. 不用updata delete (hive里面有 但不用)
- 5. 分布式 都支持
- 6. 成本 :廉价
- 数据体量 :量很大
-
3.Hive部署
- 1.上传 rz
- 2.解压 [hadoop@bigdata13 software]$ tar -zxvf ./apache-hive-3.1.2-bin.tar.gz -C ~/app/
- 3.软连接:[hadoop@bigdata13 app]$ ln -s ./apache-hive-3.1.2-bin/ hive
- 3.配置环境变量
路径:/home/hadoop/app/hive/bin [hadoop@bigdata13 bin]$ vim ~/.bashrc #HIVE_HOME export HIVE_HOME=/home/hadoop/app/hive export PATH=${PATH}:${HIVE_HOME}/bin
- source ~/.bashrc
- 配置 hive 元数据库 【hive 整合MySQL】
- 路径:/home/hadoop/app/hive/conf
[hadoop@bigdata13 conf]$ cp hive-default.xml.template hive-site.xml
[hadoop@bigdata13 conf]$ vim hive-site.xml 【清空其他内容 只留下面diamante】<configuration> <property> <name>javax.jdo.option.ConnectionURL</name> <value>jdbc:mysql://bigdata13: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>123456</value> </property> <property> <name>hive.cli.print.header</name> <value>true</value> </property> <property> <name>hive.cli.print.current.db</name> <value>true</value> </property> </configuration>
- 路径:/home/hadoop/app/hive/conf
- 把mysql驱动包 放置 hive lib下面
- 初始化元数据库
schematool -dbType mysql -initSchema - Hive 默认是有一个数据库(hive)存在的 :default
-
4.入门
- 1.mysql> select * from VERSION;
- 2.创建一张表
- 创建表:create table test(name string);
- 插入数据:insert into test values ('罗子岱');
- hive 数据有两种:
- 1.元数据 =》 MySQL
- TBLS 存的是Hive里面表的信息
- DBS 存的是Hive 数据库相关的信息
- COLUMNS_V2 存的是Hive table里面的字段信息
- DATABASE_PARAMS 存的是Hive 数据库相关的信息
- 2.table 数据 =》 存在hdfs
- hdfs://bigdata13:9000/user/hive/warehouse
- 一个hive表 会被拆分成N个表在mysql里面进行存储
- hive 运行的日志在 /tmp/hadoop/hive.log 中
路径:/home/hadoop/app/hive [hadoop@bigdata13 hive]$ mkdir logs 路径:/home/hadoop/app/hive/conf [hadoop@bigdata13 conf]$ cp hive-log4j2.properties.template hive-log4j2.properties [hadoop@bigdata13 conf]$ vim hive-log4j2.properties 修改路径 property.hive.log.dir = /home/hadoop/app/hive/logs/
- 1.元数据 =》 MySQL
- 3. 配置Hive参数
- 1.Command Line Interface 【命令行显示相关参数】
- hive.cli.print.header
- hive.cli.print.current.db
显示数据库名 - hive.metastore.warehouse.dir 【了解 default数据库默认存储位置】
- hive.cli.print.header
- 2.如何查看参数默认值?
set key; 查看参数默认值
set key=value; 设置参数的值 - 3.参数配置优先级:
- 1.session 设置参数 【仅仅是当前session有效】
- 2.hive-site.xml 【全局生效的】
<property> <name>hive.cli.print.header</name> <value>true</value> </property> <property> <name>hive.cli.print.current.db</name> <value>true</value> </property>
- 3.hive --hiveconf hive.cli.print.current.db=false; => 【当前session有效】
-
hive -help :
-e sql 语句
-f sql文件//无需进入hive内就可以查询表格 [hadoop@bigdata13 ~]$ hive -e "select * from test"
//编辑脚本查询表 [hadoop@bigdata13 ~]$ vim test1.sql select * from test; [hadoop@bigdata13 ~]$ hive -f ./test1.sql
- 调度平台:crontab 、azkanban、xxl
- DDL:Data Definition Language
- Database:
hive 默认有一个数据库 default 路径:/user/hive/warehouse- 1.创建数据库
- CREATE [REMOTE] (DATABASE|SCHEMA) [IF NOT EXISTS] database_name
[COMMENT database_comment]
[LOCATION hdfs_path]
[MANAGEDLOCATION hdfs_path]
[WITH DBPROPERTIES (property_name=property_value, ...)]; -
//创建数据库 hive (default)> create database bigdata_hive;
- 创建到其他路径
create database bigdata_hive2 LOCATION '/data/bigdata_hive2'; - 创建表 加参数
create database bigdata_hive3 WITH DBPROPERTIES ('creator'='doublehappy', 'create_dt'="2099-11-29");
- CREATE [REMOTE] (DATABASE|SCHEMA) [IF NOT EXISTS] database_name
- 2.查看数据库
- show databases;
- show databases like "bigdata_hive*"
- desc database bigdata_hive3;
- desc database EXTENDED bigdata_hive3;
- 1.创建数据库
- 1.Command Line Interface 【命令行显示相关参数】
- 1.mysql> select * from VERSION;
Hive day01
于 2022-11-29 23:52:27 首次发布