欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

大数据企业学习篇03_1------hive 初识

程序员文章站 2022-04-28 23:28:55
...

一、hive是什么?

<1>hive是基于Hadoop的一个数据仓库工具,可以将结构化数据映射成一张表,并提供类SQL查询查询功能。
注意:基于Hadoop的一个数据仓库工具?
*使用HDFS存储
*使用MapReduce计算
使用HQL作为查询接口***

<2>本质: 将HQL转化为MapReduce程序
<3>优点:
*灵活性和扩展性比较好:支持UDF,自定义格式等
*适合离线数据处理

二、hive架构

<1>Hive 在生态圈中的位置
大数据企业学习篇03_1------hive 初识
<2>Hive架构
大数据企业学习篇03_1------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

注意: 需要修改文件权限
HADOOP_HOME/bin/hadoop fs -mkdir /tmp
HADOOP_HOME/bin/hadoop fs -mkdir /user/hive/warehouse
HADOOP_HOME/bin/hadoop fs -chmod g+w /tmp
HADOOP_HOME/bin/hadoop fs -chmod g+w /user/hive/warehouse
<2>Hive运行日志信息位置
HIVEHOME/conf/hivelog4j.propertieshive.log.dir=/soft/hive/logshive.log.file=hive.log<3>hivelogHIVE_HOME/conf/hive-log4j.properties
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