CentOS7下Hadoop2.9.2、Hive 2.3.6安装与实践

参考的安装文章地址:https://blog.csdn.net/pengjunlee/article/details/81607890

实际安装的版本为: hadoop 2.9.2, hive 2.3.6;操作系统:centos 3.10.0-957.1.3.el7.x86_64

但安装步骤与原文相同,可直接参考。

操作实录:

1、hive中建立数据后,会在hdfs中出现对象的库名.db的文件夹

文章中,我们使用了create语句进行hive建表,建表之后,再通过show create table 语句,可以看到表信息如下:

hive> show create table user_sample;
OK
CREATE TABLE `user_sample`(
  `user_num` bigint, 
  `user_name` string, 
  `user_gender` string, 
  `user_age` int)
ROW FORMAT SERDE 
  'org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe' 
WITH SERDEPROPERTIES ( 
  'field.delim'=',', 
  'serialization.format'=',') 
STORED AS INPUTFORMAT 
  'org.apache.hadoop.mapred.TextInputFormat' 
OUTPUTFORMAT 
  'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat'
LOCATION
  'file:/user/hive/warehouse/user_test.db/user_sample'
TBLPROPERTIES (
  'transient_lastDdlTime'='1569339780')

可见,表user_sample对应着文件: /user/hive/warehouse/user_test.db/user_sample

建表的目的是为了和数据文件进行映射;建立表之后(默认建立在default库中),hive会在hdfs上建立对应的文件夹,文件夹的名字就是表名称;

mysql中的元数据信息,这涉及到hive的内部工作机制:

MariaDB [hive]> select * from DBS;
+-------+-----------------------+----------------------------------------+-----------+------------+------------+
| DB_ID | DESC                  | DB_LOCATION_URI                        | NAME      | OWNER_NAME | OWNER_TYPE |
+-------+-----------------------+----------------------------------------+-----------+------------+------------+
|     1 | Default Hive database | file:/user/hive/warehouse              | default   | public     | ROLE       |
|     2 | NULL                  | file:/user/hive/warehouse/user_test.db | user_test | root       | USER       |
+-------+-----------------------+----------------------------------------+-----------+------------+------------+

字段信息:

MariaDB [hive]> select * from COLUMNS_V2;
+-------+---------+-------------+-----------+-------------+
| CD_ID | COMMENT | COLUMN_NAME | TYPE_NAME | INTEGER_IDX |
+-------+---------+-------------+-----------+-------------+
|     1 | NULL    | user_age    | int       |           3 |
|     1 | NULL    | user_gender | string    |           2 |
|     1 | NULL    | user_name   | string    |           1 |
|     1 | NULL    | user_num    | bigint    |           0 |
+-------+---------+-------------+-----------+-------------+

由此可见,我们在hive中建立一张表,实际上包含以下内容:

(1)在mysql中记录这张表的定义;

(2)在hdfs中创建目录;

(3)只要把数据文件放到目录下,就可以在hive中进行查询了;

(4)因此,不同的hive只要是操作的同一个mysq,同一个hdfs集群,看到的数据是一致的;

2、hive2支持spark作为engine

配置在hive-site.xml中,name: hive.execution.engine。默认为mr,可以修改为spark,替代mr提升效率

CentOS7下Hadoop2.9.2、Hive 2.3.6安装与实践_第1张图片

 

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