大数据学习之Hive数据仓库 20

一:hive概述

 

Apache Hive™数据仓库软件有助于使用SQL读取,编写和管理驻留在分布式存储中的大型数据集。

可以将结构投影到已存储的数据中。提供了命令行工具和JDBC驱动程序以将用户连接到Hive。

数据计算:mapreduce分布式计算­>难度大

hive­>SQL语句 mysql 简化开发 减少学习成本

 

二:优缺点

优点:

1)操作接口采用了sql,简化开发,减少学习成本

2)避免手写mapreduce程序

3)hive执行延迟较高,适用场景大多用在对实时性要求不强的情景

4)优点在于处理大数据

5)支持自定义函数

缺点:

1)hive的sql表达能力有限(HSQl)

2)hive效率低

 

三:hive架构

提供了一系列接口:hive shell、jdbc/odbc、webui

 

四:Hive安装

1)下载安装包

http://hive.apache.org/downloads.html

2)上传安装包

alt+p

3) 解压

tar -zxvf .tar

4) 修改配置文件

vi hive-env.sh

HADOOP_HOME=/root/training/hadoop-2.8.4

export HIVE_CONF_DIR=/root/training/hive/conf

5) 启动hive前启动hadoop集群

start-dfs.sh

start-yarn.sh

start-all.sh

6) 在hdfs上创建文件夹

hdfs dfs -mkdir /tmp

hdfs dfs -mkdir -p /user/hive/warehouse/

7) 启动hive

bin/hive

五:hive测试

1)查看数据库

show databases;

2) 使用数据库

use default;

3) 查看表

show tables;

4) 创建表

create table itstar(id int,name string);

5)插入数据

insert into itstar values(1,"hunter");

6) 查询

select * from itstar;

7) 删除表

drop table itstar;

8) 退出终端

quit;

 

六:操作数据

1)准备数据

vi  istar.txt

1 hunter

2  zhangsan

3  delireba

4  yangmi

5 baby

 

2)创建hive

create table itstar(id int,name string)

row format

delimited fields

terminated by "\t";

 

3)加载数据

load data local inpath '/root/itstar.txt' into table itstar;

 

七:配置hive元数据到mysql

为什么将原数据存在MySQL中?因为默认是将元数据信息存在Derby数据库中的,该数据库只能一个人进行操作,所以不是很好。改用MySQL存储元信息可以解决这个问题!!

 

前提:已经装好了MYSQL,关于如何在Linux中安装MySQL在上一篇文章就是如何装MySQL

1)驱动拷贝

拷贝mysql­connector­java­5.1.27­bin.jar到/root/hd/hive/lib/下

 

2)配置MetastoreMySql

-》在/root/hd/hive/conf目录下创建一个hive-site.xml

-》根据官方文档配置参数,拷贝数据到hive-site.xml文件中(hive/conf/下创建文件)

<configuration>

<property>

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

<value>jdbc:mysql://localhost:3306/metastore?createDatabaseIfNotExist=true</value>

<description>JDBC connect string for a JDBC metastore</description>

</property>

 

<property>

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

<value>com.mysql.jdbc.Driver</value>

<description>Driver class name for a JDBC metastore</description>

</property>

 

<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>199902</value>

<description>password to use against metastore database</description>

</property>

</configuration>

 

八:hive数据类型

 

posted @ 2019-05-20 15:21  大魔王阿黎  阅读(190)  评论(0编辑  收藏  举报