hive-1.1.0-cdh5.6.0手册(一)

Posted ZeroTeam_麒麟

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了hive-1.1.0-cdh5.6.0手册(一)相关的知识,希望对你有一定的参考价值。

Hive新手配置

环境

系统版本下载地址
CentOS6.5 64x下载地址
hadoop2.6.0下载地址
Hive1.1.0下载地址

Hive是什么

Hive 是基于 Hadoop 构建的一套数据仓库分析系统,它提供了丰富的
SQL 查询方式来分析存储在 Hadoop 分布式文件系统中的数据
可以将结构化的数据文件映射为一张数据库表,并提供完整的 SQL 查询功能,
可以将 SQL 语句转换为 MapReduce 任务进行运行,通过自己的 SQL 去 查询分析需要的内容,这套 SQL 简称 Hive SQL。

Hive的工作原理

MapReduce 开发人员可以把自己写的 Mapper 和 Reducer 作为插件支持 Hive 做更复杂的数据分析。 它与关系型数据库的 SQL 略有不同,但支持了绝大多数的语句(如 DDL、DML)以及常见的聚合函数、连接查询、条件查询等操作。

  Hive 不适合用于联机(online) 事务处理,也不提供实时查询功能。它最适合应用在基于大量不可变数据的批处理作业。Hive 的特点是可 伸缩(在Hadoop 的集群上动态的添加设备),可扩展、容错、输入格式的松散耦合。Hive 的入口是DRIVER ,执行的 SQL 语句首先提交到 DRIVER 驱动,然后调用 COMPILER 解释驱动, 最终解释成 MapReduce 任务执行,最后将结果返回。

Hive的架构

(1)用户接口主要有三个:CLI,Client 和 WUI。其中最常用的是
CLI,Cli启动的时候,会同时启动一个Hive副本。 Client是Hive的客户
端,用户连接至Hive Server。在启动 Client模式的时候,需要指出
Hive Server所在节点,并且在该节点启动Hive Server。 WUI是通过
浏览器访问Hive。

(2)Hive将元数据存储在数据库中,如mysql、 derby(默认)。 Hive中的
元数据包括表的名字,表的列和分区及其属性,表的属性(是否为外
部表等),表的数据所在目录等。

(3)解释器、编译器、优化器完成HQL查询语句从词法分析、语法
分析、编译、优化以及查询计划的生成。生成的查询计划存储在HDFS
中,并在随后有MapReduce调用执行。

(4)Hive的数据存储在HDFS中,大部分的查询、计算由
MapReduce完成(包含的查询,比如select from tbl不会生成
MapRedcue任务)。

Hive的三种模式

1)单用户模式

该模式是将元数据存储在derby(Hive)默认的数据库中,而且你再linux那个目录启动将会在该目录生成metastore_db文件,那么你要你以后需要在指定的目录访问才能找到原先存储的元数据,该模式用于测试

2)多用户模式
远程服务器模式。用于非Java客户端访问元数据库,在服务器端启动
MetaStoreServer,客户端利用Thrift协议通过MetaStoreServer访问
元数据库

3)远程服务器模式
用于非Java客户端访问元数据库,在服务器端启动
MetaStoreServer,客户端利用Thrift协议通过MetaStoreServer访问
元数据库

配置环境变量

vi /etc/profile

#HIVE
HIVE_HOME=/opt/hadoop/hive-1.1.0-cdh5.6.0
PATH=$PATH:$HIVE_HOME/bin
export HIVE_HOME PATH

刷新环境变量配置
source /etc/profile

启动default-site.xml Hive默认配置

刚刚配置完环境变量,可以直接启动hive

[root@ch01 hive-1.1.0-cdh5.6.0]# hive
which: no hbase in (/usr/java/jdk1.7.0_79/bin:/usr/java/jdk1.7.0_79/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/opt/hadoop/hadoop-2.6.0-cdh5.6.0/bin:/opt/hadoop/hadoop-2.6.0-cdh5.6.0/sbin:/opt/hadoop/zookeeper-3.4.5-cdh5.6.1/bin:/root/bin:/opt/hadoop/hadoop-2.6.0-cdh5.6.0/bin:/opt/hadoop/hadoop-2.6.0-cdh5.6.0/sbin:/opt/hadoop/zookeeper-3.4.5-cdh5.6.1/bin:/opt/hadoop/hive-1.1.0-cdh5.6.0/bin)

Logging initialized using configuration in jar:file:/opt/hadoop/hive-1.1.0-cdh5.6.0/lib/hive-common-1.1.0-cdh5.6.0.jar!/hive-log4j.properties
WARNING: Hive CLI is deprecated and migration to Beeline is recommended.
hive>

配置Hive

在Hive-1.1.0版本后没有hive-default.xml和hive-site.xml

所以我们需要自己去配置

hive-site.xml常用命令

#mysql 数据配置

javax.jdo.option.ConnectionURL
jdbc:mysql://192.168.2.251:3306/hive?createDatabaseIfNotExist=true
JDBC connect string for a JDBC metastore

#加载mysql jdbc驱动包

javax.jdo.option.ConnectionDriverName
com.mysql.jdbc.Driver
Driver class name for a JDBC metastore

<property>
  <name>javax.jdo.option.ConnectionUserName</name>
  <value>root</value>
  <description>username to use against metastore database</description>
</property>

<property>
  <name>javax.jdo.option.ConnectionPassword</name>
  <value>root</value>
  <description>password to use against metastore database</description>
</property>

#配置hive ui
<!--  hwi  -->
<property> 
<name>hive.hwi.war.file</name>
<value>lib/hive-hwi-1.1.0-cdh5.6.0.jar</value>
<description>This sets the path to the HWI war file, relative to $HIVE_HOME. </description>
</property>

<property>
<name>hive.hwi.listen.host</name>
<value>0.0.0.0</value>
<description>This is the host address the Hive Web Interface will listen on</description>
</property> 

<property>
<name>hive.hwi.listen.port</name> 
<value>9999</value> 
<description>This is the port the Hive Web Interface will listen on</description>
</property>
#配置 Hive 临时文件存储地址
<!--
<property>
  <name>hive.exec.scratchdir</name>
  <value>/yuqi_dir/hive/tmp/hive-$user.name</value>
  <description>Scratch space for Hive jobs</description>
</property>

<property>
  <name>hive.exec.local.scratchdir</name>
  <value>/yuqi_dir/hive/tmp/$user.name</value>
  <description>Local scratch space for Hive jobs</description>
</property>


<property>
  <name>hive.metastore.warehouse.dir</name>
  <value>/yuqi_dir/hive/warehouse</value>
  <description>location of default database for the warehouse</description>
</property>
-->
</configuration>

如果是将hive的元数据(Namenode)信息存储在mysql上,需要在hive/lib目录下添加mysql的驱动包。
驱动包地址

待更新···

以上是关于hive-1.1.0-cdh5.6.0手册(一)的主要内容,如果未能解决你的问题,请参考以下文章

生产故障|Kafka ISR频繁伸缩缩引发性能急剧下降原因分析

生产故障|Kafka ISR频繁伸缩缩引发性能急剧下降原因分析

生产故障|Kafka ISR频繁伸缩缩引发性能急剧下降原因分析

可拉伸的 UIButton 图像

如何制作可拉伸的自定义 UITablecell

如何在 Javascript 中制作可拉伸的聊天气泡?