Hive部署及介绍

介绍——官网:hive.apache.org

(1)hive介绍
Apache Hive数据仓库
有助于使用SQL读取,编写和管理驻留在分布式存储中的大型数据集,SQL来完成大数据的统计分析
目前市面上使用多的分布式存储

distributed storage:HDFS S3 OSS COS
hdfs://hadoop000:8020/xxxxx
s3a://…
s3n://

访问Hive的方式:A command line tool and JDBC driver

(2)hive作用
Apache社区的顶级项目
Hive:facebook 解决海量的结构化日志的统计问题
刚开始时是作为Hadoop项目的一个子项目的,后面才单独成为一个项目
Hive是构建在Hadoop之上的数据仓库 适合处理离线
Hive是一个客户端,不是一个集群,把SQL提交到Hadoop集群上去运行
Hive是一个类SQL的框架, HQL和SQL的关系
Hive职责:SQL ==> MR/Spark
Hive底层支持的引擎:MR/Spark/Tez

***** 统一的元数据管理常用框架,
可互相关联,是由于基于元数据管理
SQL on Hadoop : Spark SQL/Hive/Impala/Presto 

一、部署架构
在这里插入图片描述元数据:描述数据的数据

例如mysql里面存很多行多列的数据,这张表里面表名、表字段类型
Hive数据分为两部分HDFS + 元数据(MySQL)
people.txt + people(id:int,name:string,age:int)

(1)为什么能用SQL来进行大数据统计分析?
因为有元数据的支撑,我们知道HDFS上的数据每一列字段名是什么,
字段类型是什么,数据在HDFS的什么位置

(2)mysql需要主备

二:Hive部署
1)下载:http://archive.cloudera.com/cdh5/cdh/5/hive-1.1.0-cdh5.15.1.tar.gz
2)解压: tar -zvxf hive-1.1.0-cdh5.15.1.tar.gz -C ~/app/
3)将HIVE_HOME配置到系统环境变量(~/.bash_profile)
export HIVE_HOME=/home/hadoop/app/hive-1.1.0-cdh5.15.1
export PATH= H I V E H O M E / b i n : HIVE_HOME/bin: HIVEHOME/bin:PATH
4)将MySQL驱动拷贝到$HIVE_HOME/lib
5)安装MySQL
6)修改hive的配置文件 hive-site.xml
7)启动hive

#将下载好的Hive包下载到software文件夹并解压
[hadoop@hadoop001 software]$ ll
total 429956
drwxr-xr-x. 15 hadoop hadoop      4096 Jul  6 17:59 hadoop-2.6.0-cdh5.7.0
-rw-r--r--.  1 hadoop hadoop 311585484 Jul  2 15:24 hadoop-2.6.0-cdh5.7.0.tar.gz
drwxr-xr-x. 11 hadoop hadoop      4096 Aug  9  2018 hive-1.1.0-cdh5.15.1
-rw-r--r--.  1 hadoop hadoop 128670894 Jul 16 13:25 hive-1.1.0-cdh5.15.1.tar.gz
#将解压文件创建软连接到app目录下
[hadoop@hadoop001 ~]$ cd /home/hadoop/software
[hadoop@hadoop001 software]$ ln -s /home/hadoop/software/hive-1.1.0-cdh5.15.1 /home/hadoop/app/hive
[hadoop@hadoop001 software]$ cd
[hadoop@hadoop001 ~]$ cd /home/hadoop/app/
[hadoop@hadoop001 app]$ ll
total 0
lrwxrwxrwx. 1 hadoop hadoop 43 Jul  2 10:36 hadoop -> /home/hadoop/software/hadoop-2.6.0-cdh5.7.0
lrwxrwxrwx. 1 hadoop hadoop 42 Jul 16 13:52 hive -> /home/hadoop/software/hive-1.1.0-cdh5.15.1
[hadoop@hadoop001 app]$ cd hive
[hadoop@hadoop001 hive]$ ll
#配置Hive的环境变量vi ~/.bash_profile
[hadoop@hadoop001 hive]$ cat ~/.bash_profile
...
export HIVE_HOME=/home/hadoop/app/hive
export PATH=${HIVE_HOME}/bin:$PATH
...
#官网下载MySQL官网驱动
#解压后将驱动拷贝到$HIVE_HOME/lib
[hadoop@hadoop001 lib]$ ll mysql*
-rw-r--r--. 1 hadoop hadoop 872303 Jul 16 19:08 mysql-connector-java-5.1.27-bin.jar
#Hive没有hive-site.xml文件,可以将hdfs-site.xml文件cp至hive的conf目录下
#将cp的文件重新命名,并调整参数

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

<configuration>
<property>
  <name>javax.jdo.option.ConnectionURL</name>
  <value>jdbc:mysql://hadoop001:3306/ruozedata_d7?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.cli.print.current.db</name>
<value>true</value>
</property>

<property>
<name>hive.cli.print.header</name>
<value>true</value>
</property>

</configuration>

#启动Hive
[hadoop@hadoop001 ~]$ hive
which: no hbase in (/home/hadoop/app/hive/bin:/home/hadoop/app/hadoop/bin:/home/hadoop/app/hadoop/sbin:/usr/local/mysql/bin:/usr/java/jdk1.8.0_45/bin:/usr/lib64/qt-3.3/bin:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin)
19/07/16 22:52:14 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable

Logging initialized using configuration in jar:file:/home/hadoop/software/hive-1.1.0-cdh5.15.1/lib/hive-common-1.1.0-cdh5.15.1.jar!/hive-log4j.properties
WARNING: Hive CLI is deprecated and migration to Beeline is recommended.
hive> 

完成Hive的部署

三、Hive
1、(1)Hive的文件位置
默认的Hive数据存放在HDFS上:/user/hive/warehouse
/user/hive/warehouse这个路径是有参数是可以进行控制的,
Hive数据存放的HDFS的路径,如果要调整,就把这个参数设置到hive-site.xml中去

 <property>
     <name>hive.metastore.warehouse.dir</name>
     <value>xxxx</value>
  </property>

default数据库对应的目录是hive.metastore.warehouse.dir
所以创建一张表,Hive中的表其实对应的就是HDFS上的一个目录,默认文件的名字就是tablename

(2)Hive的信息配置
hive的信息是可以配置在hive-site.xml里面 全局
同时命令行中也能设置 当前session

第一种方式:
以set hive.cli.print.current.db为例,在命令行里面设置用set,可调整 =
set 参数; 查看当前参数的值
set 参数=值; 真正的设置参数对应的值

第二种方式:
了解 hive --hiveconf k=v --hiveconf k=v

(3)Hive的存储方式:
Hive中的数据在HDFS上都是以文件夹/文件的方式存储的
database
table
partition
bucket
注:location默认的是在hdfs上use/werehost上面,自己指定的是不带DB的,需要创建
例如:create table xxx(id int,name string)

(4)删除:
DROP (DATABASE|SCHEMA) [IF EXISTS] database_name [RESTRICT|CASCADE];
DROP DATABASE IF EXISTS d7_hive2 CASCADE;
数据库删除的时候,只要库下有表,默认就不能删除
CASCADE慎用

2、SQL:DDL DML
DDL:数据定义语言,例如创建修改删除
DDL:create delete alter
DML: SQL
每一个SQL语句底层都有相应的元数据信息做关联
在Hive里面创建的表在mysql中查看

mysql> use ruozedata_d7
Database changed
mysql> show tables;
+---------------------------+
| Tables_in_ruozedata_d7    |
+---------------------------+
| bucketing_cols            |
| cds                       |
| columns_v2                |
| database_params           |
| dbs                       |
| func_ru                   |
| funcs                     |
| global_privs              |
| part_col_stats            |
| partition_key_vals        |
| partition_keys            |
| partition_params          |
| partitions                |
| roles                     |
| sd_params                 |
| sds                       |
| sequence_table            |
| serde_params              |
| serdes                    |
| skewed_col_names          |
| skewed_col_value_loc_map  |
| skewed_string_list        |
| skewed_string_list_values |
| skewed_values             |
| sort_cols                 |
| tab_col_stats             |
| table_params              |
| tbls                      |
| version                   |
+---------------------------+
29 rows in set (0.00 sec)
查看数据库在HDFS对应的文件路径
mysql> select * from dbs;
+-------+-----------------------+-------------------------------------------+---------+------------+------------+
| DB_ID | DESC                  | DB_LOCATION_URI                           | NAME    | OWNER_NAME | OWNER_TYPE |
+-------+-----------------------+-------------------------------------------+---------+------------+------------+
|     1 | Default Hive database | hdfs://hadoop001:9000/user/hive/warehouse | default | public     | ROLE       |
+-------+-----------------------+-------------------------------------------+---------+------------+------------+
1 row in set (0.00 sec)
查看HIVE版本信息
mysql> select * from version;
+--------+-----------------+-------------------+-----------------------------------+
| VER_ID | SCHEMA_VERSION  | SCHEMA_VERSION_V2 | VERSION_COMMENT                   |
+--------+-----------------+-------------------+-----------------------------------+
|      1 | 1.1.0-cdh5.15.1 | NULL              | Set by MetaStore hadoop@10.9.0.62 |
+--------+-----------------+-------------------+-----------------------------------+
1 row in set (0.00 sec)
查看对应的表数据
mysql> select * from tbls;
+--------+-------------+-------+------------------+--------+-----------+-------+-----------+---------------+--------------------+--------------------+
| TBL_ID | CREATE_TIME | DB_ID | LAST_ACCESS_TIME | OWNER  | RETENTION | SD_ID | TBL_NAME  | TBL_TYPE      | VIEW_EXPANDED_TEXT | VIEW_ORIGINAL_TEXT |
+--------+-------------+-------+------------------+--------+-----------+-------+-----------+---------------+--------------------+--------------------+
|      1 |  1563267428 |     1 |                0 | hadoop |         0 |     1 | ruozedata | MANAGED_TABLE | NULL               | NULL               |
+--------+-------------+-------+------------------+--------+-----------+-------+-----------+---------------+--------------------+--------------------+
1 row in set (0.00 sec)
查看对应表的字段信息
mysql> select * from columns_v2;
+-------+---------+-------------+-----------+-------------+
| CD_ID | COMMENT | COLUMN_NAME | TYPE_NAME | INTEGER_IDX |
+-------+---------+-------------+-----------+-------------+
|     1 | NULL    | age         | int       |           2 |
|     1 | NULL    | id          | int       |           0 |
|     1 | NULL    | name        | string    |           1 |
+-------+---------+-------------+-----------+-------------+
3 rows in set (0.00 sec)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值