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

Hive新手配置

环境

系统 版本 下载地址
CentOS 6.5 64x 下载地址
hadoop 2.6.0 下载地址
Hive 1.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的驱动包。
驱动包地址

待更新···

猜你喜欢

转载自blog.csdn.net/qq_26840065/article/details/56675596