Hive2.1.1部署

上一篇文章:HBase集群部署,我们搭建了HBase集群,今天要我们要部署安装Hive 2.1.1,就让我们开始吧~

先来简单介绍一下Hive

Hive是基于hadoop构建的一套数据仓库分析系统

它提供了丰富SQL查询方式来分析存储在HDFS中的数据

可以将SQL语句转换为Mapreduce任务进行运行

通过自己的SQL去查询分析需要的内容,这套SQL简称Hive SQL

使不熟悉MapReduce的用户很方便地利用SQL语言查询、汇总、分析数据

准备工作

1.Hadoop集群,并开启HDFS

还没有安装Hadoop集群的小伙伴,可以看一下VV的文章:Hadoop高可用(HA)集群部署

2.Hive软件包:apache-hive-2.1.1-bin.tar.gz

3.Mysql  connector:mysql-connector-java-5.1.36.jar

4.其他工具:X-shell、WinScp

为了节省大家时间!VV整理好了本篇文章所用的软件包和工具!

扫描下方二维码,关注公众号

关注后,输入“ hadoop ”即可获取地址哦~

想要更多大数据学习资料吗?赶快关注吧

回复“ 资料 ”可获取大数据学习资料,分享到朋友圈更是有额外的课件、资料赠送哦!

一.安装Mysql

默认情况下,Hive元数据存储在默认的Derby 数据库中,只能允许一个会话连接,只适合简单的测试

为了支持多用户多会话,则需要一个独立的元数据库,所以,我们使用MySQL作为元数据库

1.安装mysq

查看本系统是否安装mysql,显示只有一个mysql类库,并没有安装mysql

[root@louisvv01 ~]# rpm -qa|grep mysql

mysql-libs-5.1.73-8.el6_8.x86_64

2.使用yum安装mysql-server

[root@louisvv01 ~]# yum install mysql-server

Installed:

 mysql-server.x86_64 0:5.1.73-8.el6_8        

3.安装成功后,将mysql设置为开机自启

[root@louisvv01 ~]# chkconfig mysqld on

4.启动mysql

启动mysql成功后,我们根据下方的提示,给root用户设置一个密码,然后登陆

[root@louisvv01 ~]# /usr/bin/mysqladmin -u root password ‘123’

[root@louisvv01 ~]# mysql -u root -p123

Welcome to the MySQL monitor.  Commands end with ; or \g.

Your MySQL connection id is 7

Server version: 5.1.73 Source distribution

Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its

affiliates. Other names may be trademarks of their respective

owners.

Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the current input statement.

mysql>

mysql远程登录授权

mysql> GRANT ALL PRIVILEGES ON *.* TO ‘root’@’%’ IDENTIFIED BY ‘123’ WITH GRANT OPTION;

Query OK, 0 rows affected (0.00 sec)

mysql> FLUSH PRIVILEGES;

Query OK, 0 rows affected (0.00 sec)

创建hive数据库,退出

mysql> create database hive;

Query OK, 1 row affected (0.00 sec)

mysql> show databases;

+——————–+

| Database           |

+——————–+

| information_schema |

| hive               |

| mysql              |

| test               |

+——————–+

4 rows in set (0.00 sec)

mysql> exit

Bye

二.安装Hive

Hive仅在一台节点上安装即可。

1.使用Winscp软件将Hive软件包apache-hive-2.1.1-bin.tar.gz上传到 louisvv01节点的 /opt目录下

2.解压apache-hive-2.1.1-bin.tar.gz,并重命名

[root@louisvv01 opt]# tar -zxf apache-hive-2.1.1-bin.tar.gz

[root@louisvv01 opt]# mv apache-hive-2.1.1-bin hive-2.1.1

3.配置环境变量

#hive env

export HIVE_HOME=/opt/hive-2.1.1

export PATH=:$PATH::$HIVE_HOME/bin:

[root@louisvv01 hive-2.1.1]# source /etc/profile

4.修改配置文件

[root@louisvv01 opt]# cd /opt/hive-2.1.1/

[root@louisvv01 hive-2.1.1]# cd conf/

将template初始化配置文件,复制一份

[root@louisvv01 conf]# cp hive-env.sh.template hive-env.sh

[root@louisvv01 conf]# cp hive-default.xml.template hive-site.xml

修改hive-env.sh文件,添加如下内容

[root@louisvv01 conf]# vim hive-env.sh

export JAVA_HOME=/opt/jdk1.8.0_91

export HADOOP_HOME=/opt/hadoop-2.7.3

export HIVE_DIR=/opt/hive-2.1.1

export HIVE_CONF_DIR=/opt/hive-2.1.1/conf

修改hive-site.xml文件

删除所有配置项,并添加如下内容:

<configuration>

<property>

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

<value>jdbc:mysql://louisvv01:3306/hive?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>123</value>                                

</property>

</configuration>

使用winscp将mysql-java-connector包上传到$HIVE_HOME/lib下

5.启动Hive

Hive2.1.1的启动需要先执行schematool命令进行初始化 

[root@louisvv01 hive-2.1.1]# schematool -dbType mysql -initSchema

Metastore connection URL: jdbc:mysql://louisvv01:3306/hive?createDatabaseIfNotExist=true

Metastore Connection Driver : com.mysql.jdbc.Driver

Metastore connection User: root

Starting metastore schema initialization to 2.1.0

Initialization script hive-schema-2.1.0.mysql.sql

Initialization script completed

schemaTool completed

可在mysql中查看hive元数据信息表

mysql> show databases;

+——————–+

| Database           |

+——————–+

| information_schema |

| hive               |

| mysql              |

| test               |

+——————–+

4 rows in set (0.01 sec)

mysql> use hive

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)

进入hive shell

[root@louisvv01 hive-2.1.1]# hive

hive>

下面就来测试一下hive好不好用吧

查看数据库

hive> show databases;

OK

default

Time taken: 1.344 seconds, Fetched: 1 row(s)

创建名为test的数据库

hive> create database test;

OK

Time taken: 0.443 seconds

再次查看数据库,刚才创建好的test库已存在

hive> show databases;

OK

default

test

Time taken: 0.062 seconds, Fetched: 2 row(s)

使用test库

hive> use test;

OK

Time taken: 0.072 seconds

创建一张表people(默认为内部表),表中有三个字段,name,age,blog,声明分隔符为 \t

hive> create table people(name String,age bigint,blog String) row format delimited fields terminated by ‘\t’;

OK

Time taken: 0.589 seconds

在louisvv01本地有一个数据文件,内容如下,将改文件上传到HDFS上

[root@louisvv01 ~]# cat test.txt

louisvv 18 www.louisvv.com

why 17 blog.whysdomain.com/blog/

pqt 16 www.qt7mira.com

[root@louisvv01 ~]# hadoop fs -put test.txt /

[root@louisvv01 ~]# hadoop fs -ls /

Found 4 items

drwxr-xr-x   – root supergroup          0 2017-12-07 16:59 /hbase

-rw-r–r–   3 root supergroup         83 2017-12-11 15:58 /test.txt

drwx——   – root supergroup          0 2017-12-11 15:42 /tmp

drwxr-xr-x   – root supergroup          0 2017-12-11 15:50 /user

下面在hive中加载数据文件

hive> load data inpath ‘/test.txt’ into table people;

Loading data to table test.people

OK

Time taken: 1.405 seconds

查看people表中的信息

hive> select * from people;

OK

louisvv 18 www.louisvv.com

why 17 blog.whysdomain.com/blog/

pqt 16 www.qt7mira.com

Time taken: 2.141 seconds, Fetched: 3 row(s)

到此,我们的Hive搭建成功!

感谢您的支持,记得点赞和关注哦!

赫墨拉

我是一个喜爱大数据的小菜鸡,这里是我分享我的成长和经历的博客

You may also like...

发表评论

电子邮件地址不会被公开。