数据仓库

一、hive概述

图片 1

       Hive是依据Hadoop
的八个【数据仓库工具】,能够将结构化的数据文件映射为一张数据库表,并提供不难的
sql 查询功用,能够将 sql 语句调换为 MapReduce
职分扩充运作。使用SQL来极快完结简单的MapReduce
总结,不必支付特意的MapReduce
应用,学习开支低,拾贰分切合数据饭馆的总计深入分析。

    【数据宾馆】German名字为Data Warehouse,可简写为 DW 或
DWH。数据宾馆,是为集团全部等级的决策拟定进度,提供具备品类数据帮衬的韬略集结。它是单个数据存款和储蓄,出于深入分析性报告和表决支持指标而创设。为急需专门的职业智能的小卖部,提供指点业务流程修正、监视时间、费用、性能甚至调控。一句话回顾:
 数据酒店是用来做 查询深入分析的数据库,
基本不用来做插入,订正,删除操作。

 1、数据管理分类

(1卡塔尔国联机事务管理OLTP(on-linetransaction processing卡塔尔国  

  OLTP是守旧的关系型数据库的注重选用,首若是骨干的、经常的事务管理,比方银行贸易。OLTP系统重申数据库内部存款和储蓄器功用,重申内部存款和储蓄器种种指标的命令率,重申绑定变量,重申并发操作;

 

(2卡塔尔国联机剖析管理P
OLAP(On-Line AnalyticalProcessing卡塔尔国

  OLAP是数据酒馆系统的重要采取,扶植复杂的解析操作,侧重决策扶助,况兼提供直观易懂的查询结果。OLAP系统则强调数据拆解解析,重申SQL实行市集,重申磁盘I/O,重申分区等。

 

 

—类比表

图片 2

 

 

2.hive架构原理

客商接口首要有四个:CLI命令行,Client 和 WUI。

图片 3

(1卡塔 尔(阿拉伯语:قطر‎最常用的是
CLI 命令行,Cli运转的时候,会同不常间起步多少个Hive别本;
Client是Hive的客商端,客商连接至Hive Server。

在开发银行Client方式的时候,须要提出Hive
Server所在节点,并且在该节点运转Hive Server。
WUI是通过浏览器访谈Hive。

(2卡塔尔国Hive将
元数据存款和储蓄在数据库中,如mysql、 derby 。
Hive中的元数据富含表的名字,表的列和分区及其天性,表的性质(是不是为外

 部表等卡塔尔,表的数码所在目录等。

(3卡塔 尔(英语:State of Qatar)解释器、编写翻译器、优化器达成HQL查询语句从词法解析、语法深入分析、编写翻译、优化甚至查询安顿的变迁。生成的询问布署存储在HDFS中,

并在随着有MapReduce调用实施。

(4卡塔 尔(英语:State of Qatar)Hive的数量存款和储蓄在HDFS中,超过一半的查询、总括由MapReduce完成(包含*的查询,比如select
* from tbl不会生成MapRedcue职务卡塔尔

 

 二、hive搭建及二种方式

 1.hive的搭建

 

 1.1、安装
Hive安装情状甚至前提表达:首先,Hive 是依据于 hadoop 系统的,因而在运维Hive 早先须要保险已经搭建好 hadoop 集群碰着。

—安装八个关系型数据
mysql

图片 4

 

1.2、配置蒙受变量:(相仿于上面这样,跟以前hadoop50%.x 配置同样卡塔 尔(英语:State of Qatar)


HADOOP_HOME=/**/*

HIVE_HOME=$*/**/*

1.3、替换和增添相关 jar
包–改进 HADOOP_HOMEshare/hadoop/yarn/lib 目录下的
jline-*.jar将其替换到 黄疸E_HOMElib 下的 jline-2.12.jar。

–将 hive 连接
mysql 的 jar 包:mysql-connector-java-5.1.32-bin.jar拷贝到 hive
解压目录的 lib 目录下

1.4、改过配置文件(选择3 种格局里哪后生可畏种卡塔尔国见二种安装情势
1.5、启动
hive:bin/hive

 

2.三种格局: (内嵌格局/本地格局/远程格局)

 2.1
内嵌形式

这种设置方式的元数据是内嵌在Derby数据库中的,只好同意三个会话连接,数据会存放到HDFS上。

这种艺术是最轻巧易行的囤积格局,只需要hive-site.xml做如下配置便可(注:使用
derby 存款和储蓄格局时,运行 hive 会在当

前目录生成三个derby 文件和三个 metastore_db)

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:derby:;databaseName=metastore_db;creat
e=true</value> </property>
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>org.apache.derby.jdbc.EmbeddedDriver</value>
</property>
<property>
<name>hive.metastore.local</name>
<value>true</value>
</property>
<property>
<name>hive.metastore.warehouse.dir</name>
<value>/user/hive/warehouse</value>
</property>
</configuration>

 

 2.2 本地方式

 这种设置方式和嵌入式的分别在于,不再使用内嵌的
Derby 作为元数据的存款和储蓄媒介物,而是选拔此外数据库举个例子 MySQL
来囤积元数据且是叁个多用户的情势

运维多少个客商client 连接到二个数据库中。这种方式近似作为集团里面同不平时候利用
Hive。这里有一个前提,每叁个客商必必要有对 MySQL 的探问义务,即每

叁个顾客端使用者须求了然MySQL 的顾客名和密码才行。这种存储格局索要在地面运营八个 mysql
服务器,并作如下配置(上面两种采纳 mysql 的主意,

急需将 mysql 的
jar 包拷贝到$心悸E_HOME/lib 目录下)。

注: mysql-connector-java-5.1.32-bin.jar拷贝到
hive 解压目录的 lib 目录下

 (jar包 链接:
密码:4k6w)

 vim hive-site-xml   配置如下:

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
    <!--数据仓库的位置,默认是/user/hive/warehouse-->
<name>hive.metastore.warehouse.dir</name>
<value>/user/hive_rlocal/warehouse</value>
</property>
<property>
    <!--控制hive是否连接一个远程metastore服务器还是开启一个本地客户端jvm-->
<name>hive.metastore.local</name>
<value>true</value>
</property>
<property>
    <!--JDBC连接字符串,默认jdbc:derby:;databaseName=metastore_db;create=true-->
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://node03/hive_remote?createDatabaseIfNotExist=t
rue</value>
</property>
<property>
    <!--JDBC的driver,默认org.apache.derby.jdbc.EmbeddedDriver-->
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
</property>
<property>
    <!--username,默认APP-->
<name>javax.jdo.option.ConnectionUserName</name>
<value>root</value>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>123456</value>
</property>

 

 

启动:

①敞开集群(hive要求重视集群);  service  iptables stop     zkServer.sh
start   start-all.sh

②打开mysql服务器:先在mysql中链接到客商端,本机创设的数据库名叫hive

图片 5

 

 再到客户端:service  mysqld start    —–> mysql  -u root   -p  
(客商名/密码)

 图片 6

 

 ③启动hive:  执行hive

图片 7

 

牛刀小试:

创建一个数据库:zhangsan

hive> show databases;
OK
default
wuxiong
Time taken: 0.051 seconds, Fetched: 2 row(s)
hive> create  database  zhangsan;
OK
Time taken: 0.113 seconds
hive> show databases;
OK
default
wuxiong
zhangsan
Time taken: 0.046 seconds, Fetched: 3 row(s)
hive> 

 

是不是见到成效:①查看集群对应的目录 :  
 hive-site-xml配置文件中已定义了目录的存放地点:/user/hive/warehouse  
 ——>展开node02节点(active)

图片 8

②本地mysql数据库hive中查看:hive_remote
 —–>dbs—–>会发现:

 图片 9

 

 ok,数据库成立实现!存放地方也能找到!

接上述’zhangsan’数据库继续创造一张表:

 use   zhangsan;

 图片 10

查找:①mysql—>hive—–>hive_remote——>TBLS

图片 11

 ②集群中:

图片 12

 2.3 远程形式

     
 remote:这种存款和储蓄方式索要在远端服务器运维一个 mysql 服务器,并且供给在
Hive 服务器运营 meta服务。本机配置了

四个节点:node01、node02、node03,node01辰月配备了mysql,未来以node02为服务端,node03为客商端依次配置系统文件

hive-site.xml 

 node02配置如下:

 

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
    <property>
        <name>hive.metastore.warehouse.dir</name>
        <value>/user/hive/warehouse</value>
    </property>
    <property>
        <name>javax.jdo.option.ConnectionURL</name>
        <value>jdbc:mysql://node01:3306/hive2?createDatabaseIfNotExist=true</value>
    </property>
    <property>
        <name>javax.jdo.option.ConnectionDriverName</name>
        <value>com.mysql.jdbc.Driver</value>
    </property>
    <property>
        <name>javax.jdo.option.ConnectionUserName</name>
        <value>root</value>
    </property>
    <property>
        <name>javax.jdo.option.ConnectionPassword</name>
        <value>123456</value>
    </property>
</configuration>

 

 

node03配置如下:

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
    <property>
        <name>hive.metastore.warehouse.dir</name>
        <value>/user/hive/warehouse</value>
    </property>
    <property>
        <name>hive.metastore.local</name>
        <value>false</value>
        </property>
    <property>
        <name>hive.metastore.uris</name>
        <value>thrift://node01:9083</value>
    </property>
</configuration>

 

启动:

node02 (服务端):  hive –server  metastore

node03(客户端):启动 hive

 

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注

*
*
Website