学习Hive(一)初识Hive、基于Hadoop搭建Hive、HSql基础

1、hive就是对hdfs的数据进行mapreduce操作。hive就是一个数据仓库,运行时元数据信息存储在关系型数据库。

学习Hive(一)初识Hive、基于Hadoop搭建Hive、HSql基础_第1张图片

2、学习Hive(一)初识Hive、基于Hadoop搭建Hive、HSql基础_第2张图片

       1、hive上传并解压。将mysql-connector放入hive的lib下,环境变量添加上。  记得装个mysql(yum install mysql,开启mysqld服务,授权。)

       2、将hive-xxx(忘记了好像是tem什么的).xml改为hive-site.xml。删除其中的property部分改为:

          


  hive.metastore.warehouse.dir
  /user/hive_remote/warehouse

 

  javax.jdo.option.ConnectionURL
  jdbc:mysql://node02:3306/hive_remote?createDatabaseIfNotExist=true


  javax.jdo.option.ConnectionDriverName
  com.mysql.jdbc.Driver


  javax.jdo.option.ConnectionUserName
  root


  javax.jdo.option.ConnectionPassword
  123

 

3、删除/opt/soft/hadoop-2.6.5/share/hadoop/yarn/lib/下的,并将hive中的该包放入。

4、完成,hive命令使用客户端。

 

 

3、学习Hive(一)初识Hive、基于Hadoop搭建Hive、HSql基础_第3张图片

首先,MetaStore Server 处与之前无改变。Client处只添加server连接信息和路径即可。

学习Hive(一)初识Hive、基于Hadoop搭建Hive、HSql基础_第4张图片

4、启动服务端:hive --service metastore

5、服务端开启:hive

 

三、HIVE数据结构

学习Hive(一)初识Hive、基于Hadoop搭建Hive、HSql基础_第5张图片注意其中的strut_type 结构体。类似java中的类,可包含多种类型的属性。

建表语句:注意属性前不要加空格

create table psn
(
id int,
name string,
likes array,
address map
)
row format delimited
fields terminated by ','
collection items terminated by '-'
map keys terminated by ':';

 

注意:查询表的详细元数据信息可以使用desc formatted psn(查询的表明);

实战中 insert into ... values基本不用。

插入数据语句:load data local inpath '/root/data/data' into table psn;此为从所在本地加载数据插入数据库。

使用select * from psn;查看数据。

注意:我使用hdfs dfs -put data /user/hive/warehouse/psn/data2在表目录下再添加文件后,再执行select发现data2的数据也在展示列!!!说明两件事:1、Hive展示是读取表目录下的文件执行。2、有一些默认配置使hive能够访问hdfs.

官网片段(从此可以看出来环境变量是必须要配置的):学习Hive(一)初识Hive、基于Hadoop搭建Hive、HSql基础_第6张图片

 

外部表创建:下面第一个为外部表,第二个为内部表。内部表产生在了配置文件中配置的目录,而外部表是按照写sql自定义的

create external table psn2
(
id int,
name string,
likes array,
address map
)
row format delimited
fields terminated by ','
collection items terminated by '-'
map keys terminated by ':'
location '/usr/';

注意,内部表与外部表再删除时都会删除Hive表信息,Mysql元信息。但是内部表会删除路径下的数据文件。而外部表不会。

你可能感兴趣的:(大数据)