大数据企业学习篇03_1------hive 初识
一、hive是什么?
<1>hive是基于Hadoop的一个数据仓库工具,可以将结构化数据映射成一张表,并提供类SQL查询查询功能。
注意:基于Hadoop的一个数据仓库工具?
*使用HDFS存储
*使用MapReduce计算
使用HQL作为查询接口***
<2>本质: 将HQL转化为MapReduce程序
<3>优点:
*灵活性和扩展性比较好:支持UDF,自定义格式等
*适合离线数据处理
二、hive架构
<1>Hive 在生态圈中的位置
<2>Hive架构
1.client:cli、jdbc、webUI访问hive,查询发送给driver
2.driver对SQL进行解析,并将元数据存在Metastore
3.driver对SQL进行编译,生成逻辑执行计划,并优化
4.driver执行器将逻辑执行计划转化成可以运行的物理计划。对hive来说,就是MR/TEZ/Spark
5.使用HDFS存储,使用MapReduce进行计算
三、hive常用属性配置
<1>Hive数据仓库位置配置
default
/user/hive/warehouse
注意事项
* 在仓库目录下,没有对默认的数据库default创建文件夹
* 如果某张表属于default数据库,直接在数据仓库目录下创建一个文件夹
hive.metastore.warehouse.dir
/user/hive/warehouse
注意: 需要修改文件权限
<2>Hive运行日志信息位置
hive.root.logger=INFO,DRFA
<4>在cli命令行上显示当前数据库,以及查询表的行头信息
$HIVE_HOME/conf/hive-site.xml
<property>
<name>hive.cli.print.header</name>
<value>true</value>
<description>Whether to print the names of the columns in query output.</description>
</property>
<property>
<name>hive.cli.print.current.db</name>
<value>true</value>
<description>Whether to include the current database in the Hive prompt.</description>
</property>
<5>在启动hive时设置配置属性信息
$ bin/hive –hiveconf
hive (db_hive)> set system:user.name ;
system:user.name=xiaojiangshi
hive (db_hive)> set system:user.name=xiaojiangshi ;
**注意:**此种方式,设置属性的值,仅仅在当前会话session生效
四、hive常用操作
<1>hive -e
hive -e "select * from db_hive.student ;"
<2>hive -f
$ touch hivef.sql
select * from db_hive.student ;
$ bin/hive -f /home/master/hivef.sql
$ bin/hive -f /home/master/hivef.sql > res.txt
<3>hive -i
与用户udf相互使用
<4>在hive cli命令窗口中如何查看hdfs文件系统
hive > dfs -ls / ;
<5>在hive cli命令窗口中如何查看本地文件系统
hive > !ls /home/master ;