如何用Hive“傻瓜式”搭建数据仓库—Hive安装部署

一、前言:

数据仓库主要用来用来存储公司或者企业的历史数据,即日积月累的数据。

1数据库与数据仓库区别:

关系型数据库是基于事务性的,数据仓库是根据主题构建的。

2使用示例:

l 用户使用天然气的大数据分析

l 电影票房分析收视率等

l 百度搜索关键词分析热词

Hive简介:可爱的小蜜蜂

1Hive是建立在Hadoop之上的数据仓库基础架构工具,可以将结构化的数据文件映射为一张数据库表。

2、用来进行数据提取--->转化--->加载(ETLExtract-Transform-Load

3Hive定义了简单的类SQL查询语言(HQL)SQL语句转译成M/RMap/ReduceJob,然后在Hadoop上执行

4Hive表其实对应的就是HDFS中的目录

5Hive表存储的是元数据,真正的数据保存在HDFS中的文件里面

6Hive表中的数据不用insert入库,而是用Hadoop -put命令上传数据到HDFS目录中

7Hive数据仓库里面可以创建多个数据库

Hive安装部署

1、安装条件:

Hive安装在Hadoop集群上,要求Hadoop集群已正常启动

2、解压安装Hive

a、从Hive官网下载

https://mirrors.tuna.tsinghua.edu.cn/apache/hive/hive-2.1.1/apache-hive-2.1.1-bin.tar.gz

b、将Hive安装包apache-hive-2.1.1-bin.tar.gz复制到/home/lizh/devtool

c、解压安装 tar -zxvf apache-hive-2.1.1-bin.tar.gz

d、配置Hive的环境变量 /etc/profile,然后执行source /etc/profile使环境变量生效

# Hive environment  

export HIVE_HOME=/home/lizh/devtool/apache-hive-2.1.1-bin

export PATH=$HIVE_HOME/bin:$HIVE_HOME/conf:$PATH

 

四、Hive安装部署——metastore

1HivemetastoreHive元数据

2metastoreHive元数据的集中存放地

3metastore使用hive内嵌的derby数据库作为存储引擎

4derby缺点:一次只能打开一个会话

5、可以使用MySQL作为Hive的外置存储引擎,存放metastore

五、安装MySQL

l Windows版本

l Linux版本

六、Hive安装部署——配置MySQL

配置MySQL作为Hive metastore的存储

上传MySQL的驱动【mysql-connector-java-5.1.31.jar】到

/home/lizh/devtool/apache-hive-2.1.1-bin/lib目录下,MySQL5.6版本需要5.1.31及以上版本。

七、Hive安装部署-配置hive-site

配置Hivehive-site.xml文件,该文件最初不存在,需要在conf目录下复制模板文件【hive-default.xml.template】重命名为【hive-site.xml】,内容如下:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>  

<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>  

<configuration>  

   <property>  

        <name>javax.jdo.option.ConnectionURL</name>  

        <value>jdbc:mysql://172.10.10.69:3306/hive?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>  

    <property>    

   <name>hive.metastore.schema.verification</name>    

   <value>false</value>    

    <description>    

    Enforce metastore schema version consistency.    

    True: Verify that version information stored in metastore matches with one from Hive jars.  Also disable automatic    

          schema migration attempt. Users are required to manully migrate schema after Hive upgrade which ensures    

          proper metastore schema migration. (Default)    

    False: Warn if the version information stored in metastore doesn't match with one from in Hive jars.    

    </description>    

 </property>   

</configuration>

八、Hive安装部署-配置hive-env

配置Hivehive-env.sh文件,该文件最初不存在,需要在conf目录下复制模板文件【hive-env.sh.template】重命名为【hive-env.sh】。

该配置文件主要用来和Hadoop进行关联。内容如下:

HADOOP_HOME=/home/lizh/devtool/hadoop-2.7.3

export HIVE_CONF_DIR=/home/lizh/devtool/apache-hive-2.1.1-bin/conf

export HIVE_AUX_JARS_PATH=/home/lizh/devtool/apache-hive-2.1.1-bin/lib

九、启动Hive

在命令提示符下输入:hive命令,会在MySQL中自动生成Hive数据库。

MySQL中查看Hive的元数据信息。

十、Hive数据仓库学习

1、创建数据仓库:school

create database if not exists school;

2、在数据仓库中创建表,并查看表

use school;

//创建学生表:列用tab分割

create external table student(tid int,tname string)  

comment '学生表'  

row format delimited  

fields terminated by '\t'  

stored as textfile

//查看表结构

desc student;

//显示所有表

show tables;

 

 

//构造数据文件student.txt

10001 zhangsan

10002 lisi

10003 wangwu

10004 xiaoli

10005 xiaomao

10006 xiaohua

10007 xiaowang

10008 laowang

10009 刘德华

10010 张学友

10011 xiaoli

 

//把文件导入到Hive数据库

//从本地文件系统中导入数据到Hive

load data local inpath '/home/lizh/devtool/hadoop-2.7.3/student.txt' into table student;

//HDFS上导入数据到Hive

load data inpath '/user/lizh/dataHdfs/input/student.txt' into table student;

3、统计姓名相同的学生人数

select tname,count(*) from student group by tname;

4、删除表

DROP TABLE student;

 

 

 

词汇解释:

l 元数据:数据库的名称,所属,包含的表名称,表字段结构等信息称为元数据。

l ETL,是英文 Extract-Transform-Load 的缩写,用来描述将数据从来源端经过抽取(extract)、转换(transform)、加载(load)至目的端的过程。ETL一词较常用在数据仓库,但其对象并不限于数据仓库。

l start-all.sh 启动Hadoop

l jps查看Hadoopjpsjdk提供的一个查看当前Java进程的小工具, 可以看做是JavaVirtual Machine Process Status Tool的缩写。非常简单实用。详细【http://blog.csdn.net/wisgood/article/details/38942449

l Hive中删除表时候,如果提示错误【MySQL server version for the right syntax to use near 'OPTION SQL_SELECT_LIMIT=DEFAULT' at line 1】,说明MySQL版本和mysql-connector-java-5.1.31.jar版本不匹配。

 

Hadoop后台界面:http://172.10.10.69:50070

 

导入数据参考:http://blog.csdn.net/lifuxiangcaohui/article/details/40588929

 

 

 

http://www.cnblogs.com/ggjucheng/archive/2013/01/04/2844393.html

http://bestchenwu.iteye.com/blog/2171795

  • 0
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值