Hive 安装配置 & 简单使用

前言

Hive一个执行在Hadoop集群之上的Sql引擎工具,它提供类似Sql的编写方式进行对Hadoop HDFS上的文件进行查询统计。接下来我们将安装配置Hive及简单使用

准备安装文件

以下为大家准备了安装文件,也可以自己到网上下载

准备文件 下载地址
apache-hive-1.2.2-bin.tar 链接: https://pan.baidu.com/s/1dlUjcLjemTcm7jnc0HDiwQ 提取码: typ4
mysql-connector-java-5.1.43(Hive 连接mysql的驱动包) 链接: https://pan.baidu.com/s/1dlUjcLjemTcm7jnc0HDiwQ 提取码: typ4
mysql 通过yum的方式安装 yum安装
Hadoop 必须提前安装好 Hive的数据是存储在Hadoop HDFS分布式文件系统中

Mysql安装

mysql通过yum安装的方式安装默认版本即可,hive仅仅只是把表结构的元数据信息存储在mysql中。按照以下步骤100%可以成功(Centos7)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
[root@master201 Soft]# yum list mysql
一般在Centos7 yum下没有mysql(如果有直接跳转 yum install mysql步骤)
下载 mysql57-community-release-el7-8.noarch.rpm 的 YUM 源:
wget http://repo.mysql.com/mysql57-community-release-el7-8.noarch.rpm

[root@master201 Soft]# rpm -ivh mysql57-community-release-el7-8.noarch.rpm
安装完后,得到如下两个包:
mysql-community.repo
mysql-community-source.repo


[root@master201 Soft]# yum install mysql
[root@master201 Soft]# yum install mysql-server
[root@master201 Soft]# service mysqld restart

安装完毕后,运行mysql,然后在 /var/log/mysqld.log 文件中会自动生成一个随机的密码,我们需要先取得这个随机密码,以用于登录 MySQL 服务端:
[root@master201 Soft]# grep "password" /var/log/mysqld.log
2018-10-11T14:34:34.013147Z 1 [Note] A temporary password is generated for root@localhost: mi!ypm.ks9iF

[root@master201 Soft]# mysql -u root -p
输入上面获取到生成的随机密码
mysql> show databases;
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
先改密码
mysql> SET PASSWORD = PASSWORD('123456');
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
需要一个有强度的密码
mysql> SET PASSWORD = PASSWORD('Lishijia~1Q');
Query OK, 0 rows affected, 1 warning (0.00 sec)
mysql> GRANT ALL PRIVILEGES ON *.* TO root@"%" IDENTIFIED BY "Lishijia~1Q";
mysql> flush privileges;
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
4 rows in set (0.00 sec)

Hive安装

  • 上传文件至服务器master201然后解压配置环境变量

    1
    2
    3
    4
    5
    6
    7
    [root@master201 conf]# tar -xvf apache-hive-2.1.1-bin.tar.gz

    [root@master201 conf]# vi /etc/profile
    export HIVE_HOME=/home/lishijia/Soft/apache-hive-1.2.2-bin
    export PATH=$PATH:$HIVE_HOME/bin

    [root@master201 conf]# source /etc/profile
  • 修改hive-site.xml配置文件

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    [root@master201 conf]# vim hive-site.xml 

    <?xml version="1.0" encoding="UTF-8" standalone="no"?>
    <configuration>
    <property>
    <name>javax.jdo.option.ConnectionURL</name>
    <value>jdbc:mysql://localhost:3306/hive?createDatabaseIfNotExist=true&amp;characterEncoding=UTF-8&amp;useSSL=false</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>Lishijia~1Q</value>
    </property>
    </configuration>
  • 修改hive-env.sh配置文件

    1
    2
    3
    4
    5
    6
    7
    8
    9
    [root@master201 conf]# vi /home/lishijia/Soft/apache-hive-1.2.2-bin/conf/hive-evn.sh

    export JAVA_HOME=/home/lishijia/Soft/jdk1.8.0_144
    ##Hadoop安装路径
    export HADOOP_HOME=/home/lishijia/Soft/hadoop-2.7.2
    ##Hive安装路径
    export HIVE_HOME=/home/lishijia/Soft/apache-hive-1.2.2-bin
    ##Hive配置文件路径
    export HIVE_CONF_DIR=/home/lishijia/Soft/apache-hive-1.2.2-bin/conf
  • 上传Mysql 驱动包放置到Hive lib目录

    1
    [root@master201 Soft]# mv /home/lishijia/Soft/mysql-connector-java-5.1.43.jar /home/lishijia/Soft/apache-hive-1.2.2-bin/lib/
  • 删除$HADOOP_HOME/share/hadoop/yarn/lib/jline-0.9.94.jar

    1
    需要删除此文件,要不然在运行hive的时候会报错(环境Jar包冲突导致)
  • 修改日志文件

    1
    2
    复制出一个日志文件
    [root@master201 conf]# cp hive-log4j.properties.template hive-log4j.properties

Hive简单使用

在master201输入hive命令进入sql命令控制台

  • Hive命令行输出不显示列名,或者显示的列名带表名

    1
    2
    3
    4
    hive> set hive.cli.print.header=true;

    控制不显示表名
    hive> set hive.resultset.use.unique.column.names=false;
  • 创建数据库

    1
    2
    3
    4
    5
    6
    7
    8
    9
    hive> create database lishijia;
    hive> show databases;
    OK
    default
    lishijia
    Time taken: 0.049 seconds, Fetched: 2 row(s)
    hive> use lishijia;
    OK
    Time taken: 0.05 seconds
  • 创建表(默认内部表,删除表hdfs数据同步删除)

    1
    hive> create table st_article(sentence string) ROW FORMAT DELIMITED lines terminated by '\n';
  • 导入数据(本地数据)

    1
    hive> load data local inpath '/home/lishijia/Documents/hive/the_man_of_property.txt' into table st_article;
  • 查询数据

    1
    hive> select * from st_article limit 10;
  • 查看数据文件存放目录

    以下的/user/hive/warehouse目录是默认的,也可以在hive-site.xml当中指定

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    [root@master201 hive]# hadoop fs -ls /
    Found 3 items
    drwxr-xr-x - root supergroup 0 2018-10-07 21:16 /lishijia
    drwx------ - root supergroup 0 2018-10-11 22:57 /tmp
    drwxr-xr-x - root supergroup 0 2018-10-11 23:00 /user
    [root@master201 hive]# hadoop fs -ls /user/hive/
    Found 1 items
    drwxr-xr-x - root supergroup 0 2018-10-11 23:12 /user/hive/warehouse
    [root@master201 hive]# hadoop fs -ls /user/hive/warehouse
    Found 1 items
    drwxr-xr-x - root supergroup 0 2018-10-11 23:11 /user/hive/warehouse/lishijia.db
    [root@master201 hive]# hadoop fs -ls /user/hive/warehouse/lishijia.db
    Found 1 items
    drwxr-xr-x - root supergroup 0 2018-10-11 23:11 /user/hive/warehouse/lishijia.db/st_article
    [root@master201 hive]# hadoop fs -ls /user/hive/warehouse/lishijia.db/st_article
    Found 1 items
    -rwxr-xr-x 2 root supergroup 632209 2018-10-11 23:11 /user/hive/warehouse/lishijia.db/st_article/the_man_of_property.txt
  • 外部表创建(外部表,删除表hdfs数据照样保留)

    1
    2
    3
    create external table st_article_ext(sentence string)
    row format delimited fields terminated by '\n'
    stored as textfile location '/lishijia/input/the_man_of_property.txt';
  • Hive创建分区表(hdfs存储会根据dt字段创建不同的目录)

    1
    2
    3
    create table st_article_partion(sentence string)
    partitioned by(dt string)
    row format delimited fields terminated by '\n';

总结

以上完成了mysql hive的安装,以及hive的基本使用方法。

Hadoop2.7.2集群安装

分享到 评论