关于Hive(二) 运行Hive和Hive与传统数据库比较

配置Hive

1 执行引擎

    > hive.execution.engine 执行引擎 默认为mr

    > 目前引擎    MapReduce, Tez, Spark

    > 设置引擎     hive > set hive.execution.engine=Tez

2 日志记录

    > 日志位置

        ${java.io.tmpdir}/${user.name}/hive.log

        /tmp/root/hive.log

    > 设置日志位置    %hive -hiveconf hive.log.dir='/tmp/${user.name}'

    > 配置存放    conf/hive-log4j.properties,修改日志级别和日志相关设置

    > 调试信息发送到控制台    hive -hiveconf hive.root.logger=DEBUG,console

Hive服务

hive --service help

    > cli    shell环境,默认

    > hiveserver2    Thrift服务器    hive.server2.thrift.port

    > beeline    嵌入方式工作Hive命令行/JDBC连接hiveserver2

    > hwi    Hive的Web接口

    > jar    类路径同时包含Hadoop和Hive

    > metastore    metastore单独作为进程进行,默认metastore服务和Hive服务运行在同一个进程中

Hive客户端

    hive --service hiveserver2 以服务器方式运行Hive,可以使用JDBC, ODBC或者Thrift连接

    关于Hive(二) 运行Hive和Hive与传统数据库比较_第1张图片

metastore

    > 存放元数据

    > 两部分:服务和后台数据

Derby

    > Hive内嵌数据库Derby,内嵌metastore配置

    > 只有一个Derby可以访问磁盘数据,第二个会话报错

Mysql

    > 本地metastore配置/远程metastore配置,多会话

    > hive.metastore.uris


与传统数据库比较

> 模式

    > 传统数据库在数据加载时强制确定表的模式,"写时模式"

    > Hive加载数据时不进行数据验证,在查询时进行,"读时模式"

> 更新 事务 索引

    > HDFS不支持就地文件更新,需要插入更新删除一起操作,这些操作要建立在事务的基础上

    > Hive索引能够加快查询速度

        > 紧凑索引和位图索引

> 除了Hive, Hadoop上可以使用的SQL技术

    > Cloudera Impala

    > Spark SQL 

    > HortonWorks Stingers

    > Apache Drill



你可能感兴趣的:(Hadoop,Hive)