安装Apache Hive-2.3.3

1、Hive是什么

1.1、Hive是数据仓库

数据仓库英文名DataWarehouse,可简写为DW或DWH。数据仓库 ,由数据仓库之父比尔·恩门(Bill Inmon)于1990年提出,主要功能仍是将组织透过资讯系统之联机事务处理(OLTP)经年累月所累积的大量资料,透过数据仓库理论所特有的资料储存架构,作一有系统的分析整理,以利各种分析方法如联机分析处理(OLAP)、数据挖掘(Data Mining)之进行,并进而支持如决策支持系统(DSS)、主管资讯系统(EIS)之创建,帮助决策者能快速有效的自大量资料中,分析出有价值的资讯,以利决策拟定及快速回应外在环境变动,帮助建构商业智能(BI)。往白了说数据仓库就是用来作为查询分析的数据库,很少用来插入,修改,删除

2.2、Hive是解释器、编译器、优化器、执行器

简单的将就是说HQL会被Hive解释,编译,优化并生成查询计划,一般情况而言查询计划会被转化为MapReduce任务进而执行。

2、Hive架构

  • 对外接口 :命令行接口CLI、客户端接口Client 、WebGUI接口WUI;
  • 元数据存储:通常在关系型数据库,如mysql、oracle;
  • Driver:包含解释器、编译器、优化器、序列反序列化、UDF、执行器;
  • Hadoop:HDFS用来进行MapReduce分布式计算;

3、Hiive的安装

  • 3.1 前置--安装mysql 5.7+
  • 3.2 准备--tar包apache-hive-2.3.3
  • 3.3 配置--hive-site.xml配置
  • 3.4 辅助--使用可视化工具zeppelin-0.7.3-bin-all

4、准备工作

  • 1.访问 hive官网 ,下载对应版本hive的tar包
  • 2. 解压tar包,到指定文件夹目录下 
//解压hive的tar包,到指定的app目录下
$ tar -zxvf apache-hive-2.3.3-bin.tar.gz -C ../app

  •  3. 修改文件夹名,此步骤可忽略
//修改包名
$ mv apache-hive-2.3.3-bin apache-hive-2.3.3

 

5、 配置hive-site.xml

1. 使用hive-default.xml.template,创建hive-site.xml

//进入hive/conf文件夹下
$ cd apache-hive-2.3.3/conf/

//拷贝hive-default.xml.template ,重命名为 hive-site.xml
$ cp hive-default.xml.template hive-site.xml

 

2. 修改元数据数据库地址, javax.jdo.option.ConnectionURL;

//修改hive-site.xml配置
$ vi hive-site.xml

//1. 按 i 键,进入编辑状态
//2. 按 / 键,查找 javax.jdo.option.ConnectionURL

//修改如下
<property>
    <name>javax.jdo.option.ConnectionURL</name>
    <value>jdbc:mysql://localhost:3306/hive?autoReconnect=true&amp;useUnicode=true&amp;createDatabaseIfNotExist=true&amp;characterEncoding=utf8&amp;useSSL=false&amp;serverTimezone=UTC</value>
</property>

 3. 修改元数据数据库驱动,javax.jdo.option.ConnectionDriverName;

// 按 / 键,查找 javax.jdo.option.ConnectionDriverName

//修改如下
<property>
    <name>javax.jdo.option.ConnectionDriverName</name>
    <value>com.mysql.jdbc.Driver</value>
</property>

4. 修改元数据数据库用户名,javax.jdo.option.ConnectionUserName;

//按 / 键,查找 javax.jdo.option.ConnectionUserName

//修改如下
<property>
    <name>javax.jdo.option.ConnectionUserName</name>
    <value>root</value>
</property>

5. 元数据数据库登陆密码,javax.jdo.option.ConnectionPassword

//按 / 键, 查找  javax.jdo.option.ConnectionPassword

//修改如下
<property>
    <name>javax.jdo.option.ConnectionPassword</name>
    <value>root</value>
</property>

6.  修改hive数据仓库存储地址(在hdfs上具体存储地址),hive.metastore.warehouse.dir;

//按 / 键,查找 hive.metastore.warehouse.dir

//默认 /user/hive/warehouse ,这里不进行调整
//修改如下
<property>
    <name>hive.metastore.warehouse.dir</name>
    <value>/user/hive/warehouse</value>
</property>

7.  配置其他路径;

//1. 配置 hive.querylog.location

//修改如下
<property>
    <name>hive.querylog.location</name>
    <value>/home/hadoop/opt/tmp/hive</value>
</property>


//2. 配置 hive.server2.logging.operation.log.location

//修改如下
<property>
    <name>hive.server2.logging.operation.log.location</name>
    <value>/home/hadoop/opt/tmp/hive/operation_logs</value>
</property>

//3. 配置 hive.exec.local.scratchdir

//修改如下
<property>
    <name>hive.exec.local.scratchdir</name>
    <value>/home/hadoop/opt/tmp/hive</value>
</property>

//4. 配置 hive.downloaded.resources.dir

//修改如下
<property>
    <name>hive.downloaded.resources.dir</name>
    <value>/home/hadoop/opt/tmp/_resources</value>
</property>

8.  配置错误日志

//按 esc 键,退出编辑;
//按 wq 键,保存编辑;

//查看 /conf 
$ ll 

//拷贝 hive-log4j2.properties.template ,并命名为 hive-log4j2.properties
$ cp hive-log4j2.properties.template hive-log4j2.properties

//编辑 hive-log4j2.properties
$ vi hive-log4j2.properties

//按 i 键,进入编辑状态
//配置输出log文件
property.hive.log.dir = /home/hadoop/opt/hive

6、 初始化hive元数据 

1.  初始化schema,schematool -dbType mysql -initSchema

//使用 schematool, 初始化 schema 
[hadoop@hadoop000 apache-hive-2.3.3]$ bin/schematool -dbType mysql -initSchema

2. 补充初始化 schema 时,会出现Underlying cause: java.lang.ClassNotFoundException: com.mysql.jdbc.Driver异常,这里是因为缺少mysql连接驱动,这里使用 mysql-connector-java 5.1.38;

//下载mysql-connector的jar包
[hadoop@hadoop000 lib]$ wget http://central.maven.org/maven2/mysql/mysql-connector-java/5.1.38/mysql-connector-java-5.1.38.


//检查mysql驱动是否下载完成
[hadoop@localhost lib]$ ll | grep mysql
-rw-rw-r--. 1 hadoop hadoop   983911 Dec 16  2015 mysql-connector-java-5.1.38.jar
-rw-r--r--. 1 hadoop hadoop     7954 Dec 20  2016 mysql-metadata-storage-0.9.2.jar

再次执行初始化,出现 schemaTool completed ,说明初始化成功;

3.  登录mysql,查看初始化后的hive库

//登录mysql
# mysql -uroot -proot


//查看数据库
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| hive               |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
5 rows in set (0.00 sec)

//使用 hive
mysql> use hive;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed

//查看hive下,所有表,发现是 57 张,说明初始化成功
mysql> show tables;
+---------------------------+
| Tables_in_hive            |
+---------------------------+
| AUX_TABLE                 |
| BUCKETING_COLS            |
| CDS                       |
| COLUMNS_V2                |
| COMPACTION_QUEUE          |
| COMPLETED_COMPACTIONS     |
| COMPLETED_TXN_COMPONENTS  |
| DATABASE_PARAMS           |
| DBS                       |
| DB_PRIVS                  |
| DELEGATION_TOKENS         |
| FUNCS                     |
| FUNC_RU                   |
| GLOBAL_PRIVS              |
| HIVE_LOCKS                |
| IDXS                      |
| INDEX_PARAMS              |
| KEY_CONSTRAINTS           |
| MASTER_KEYS               |
| NEXT_COMPACTION_QUEUE_ID  |
| NEXT_LOCK_ID              |
| NEXT_TXN_ID               |
| NOTIFICATION_LOG          |
| NOTIFICATION_SEQUENCE     |
| NUCLEUS_TABLES            |
| PARTITIONS                |
| PARTITION_EVENTS          |
| PARTITION_KEYS            |
| PARTITION_KEY_VALS        |
| PARTITION_PARAMS          |
| PART_COL_PRIVS            |
| PART_COL_STATS            |
| PART_PRIVS                |
| ROLES                     |
| ROLE_MAP                  |
| SDS                       |
| SD_PARAMS                 |
| SEQUENCE_TABLE            |
| SERDES                    |
| SERDE_PARAMS              |
| SKEWED_COL_NAMES          |
| SKEWED_COL_VALUE_LOC_MAP  |
| SKEWED_STRING_LIST        |
| SKEWED_STRING_LIST_VALUES |
| SKEWED_VALUES             |
| SORT_COLS                 |
| TABLE_PARAMS              |
| TAB_COL_STATS             |
| TBLS                      |
| TBL_COL_PRIVS             |
| TBL_PRIVS                 |
| TXNS                      |
| TXN_COMPONENTS            |
| TYPES                     |
| TYPE_FIELDS               |
| VERSION                   |
| WRITE_SET                 |
+---------------------------+
57 rows in set (0.00 sec)

 7、 启动hive

1. 使用hiveserver2启动hive,启动前需要修改hadoop代理访问权限:

找到hadoop的core-site.xml,添加如下配置:

<property>
  <name>hadoop.proxyuser.hadoop.hosts</name>
  <value>*</value>
</property>
<property>
  <name>hadoop.proxyuser.hadoop.groups</name>
  <value>*</value>
</property>

2. hive的访问方式分为两种:

  1). beeline,该方式仅支持本地机器进行操作;

       启动方式如下:$ bin/beeline -u jdbc:hive2://127.0.0.1:10000 -n hadoop

       -n : 代理用户

       -u : 请求地址

  2). hiveserver2,该方式可提供不同的机器进行调用;

       启动方式如下:$ bin/hiveservice2

       查看是否已开放端口:netstat -ant | grep 10000

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值