Hive的安装及配置

1.将hive的压缩包拷到/usr/local目录进行解压

[root@namenode local]# tar -zxvf apache-hive-1.2.1-bin.tar.gz 

2.将/usr/local/apache-hive-1.2.1-bin/conf目录下的hive-default.xml.template 复制为hive-site.xml
因为默认会首先加载hive-default.xml.template文件再加载hive-site.xml文件

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

3.将hive-site.xml文件中的内容删掉,并替换成如下内容
使用vi命令进入编辑模式后,删除到最后一行

:.,$-1d   

下面的配置文件配置的是远程mysql

<configuration>  

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

<property>  
  <name>javax.jdo.option.ConnectionURL</name>  
  <value>jdbc:mysql://192.168.1.10: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>123456</value>  
</property>  

<property>  
  <name>hive.metastore.uris</name>  
  <value>thrift://192.168.57.5:9083</value>  
</property>  

</configuration>  

4.将hive的命令加入环境变量中,设置环境变量的文件为/etc/profile
修改完成/etc/profile文件后需要重新加载环境变量配置文件,才可生效
[

root@namenode apache-hive-1.2.1-bin]# source /etc/profile

5.进入mysql中

[root@namenode bin]# mysql -p -uroot -S /tmp/mysql3306.sock

6.将mysql中user表中用户名为空的两条数据删除,得到如下结果

mysql> select user,host from user;
+------+-----------+
| user | host      |
+------+-----------+
| root | %         |
| root | 127.0.0.1 |
| root | localhost |
+------+-----------+
3 rows in set (0.00 sec)

7.这个是远程的,元数据可以使用本地的,可以使用远程的,这要选远程,这样后面使用spark-sql的时候
可以避免再次配置

8.元数据 hive元数据就是存储hive里面的关于数据的信息的(不是数据本身)
hive在执行的时候,会去mysql里面获取这些数据信息.

hive在hdfs里面数据的存储位置:

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

远程数据源提供的端口:

<property>  
  <name>hive.metastore.uris</name>  
  <value>thrift://192.168.57.5:9083</value>  
</property>  

9.在使用前,要开启hive的数据源服务

 nohup hive --service metastore  &

nohup是防止中断信号(就是防止你关闭连接后,metastore也被关闭),&是后台运行

 nohup hive --service metastore  &

启动完成后查看vi nohup.out文件无报错信息,证明启动成功

ps -ef|grep hive

10.启动hive

[root@namenode apache-hive-1.2.1-bin]# hive

11.使用show databases命令

hive> show databases;
OK
default
Time taken: 0.67 seconds, Fetched: 1 row(s)

12.在hive中新建一个数据库syc

hive> create database syc;
OK
Time taken: 0.656 seconds

13.查看新建的数据库syc

hive> show databases;
OK
default
syc
Time taken: 0.099 seconds, Fetched: 2 row(s)

14.此时查看mysql中的hive数据库(存的是hive的元数据)

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| hive               |
| logs               |
| message            |
| mysql              |
| performance_schema |
| test               |
+--------------------+
7 rows in set (0.00 sec)

15.进入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

16.查看mysql中hive数据库的表

mysql> show tables;
+--------------------------+
| Tables_in_hive           |
+--------------------------+
| cds                      |
| database_params          |
| dbs                      |
| func_ru                  |
| funcs                    |
| global_privs             |
| part_col_stats           |
| partitions               |
| roles                    |
| sds                      |
| sequence_table           |
| serdes                   |
| skewed_col_value_loc_map |
| skewed_string_list       |
| tab_col_stats            |
| tbls                     |
| version                  |
+--------------------------+
17 rows in set (0.00 sec)

17.查看dbs表(dbs表中告诉了我们hive中存在hdfs中的数据都放在了哪里)

mysql> select * from dbs;
+-------+-----------------------+-------------------------------------------------+---------+------------+------------+
| DB_ID | DESC                  | DB_LOCATION_URI                                 | NAME    | OWNER_NAME | OWNER_TYPE |
+-------+-----------------------+-------------------------------------------------+---------+------------+------------+
|     1 | Default Hive database | hdfs://namenode:9000/user/hive/warehouse        | default | public     | ROLE       |
|     2 | NULL                  | hdfs://namenode:9000/user/hive/warehouse/syc.db | syc     | root       | USER       |
+-------+-----------------------+-------------------------------------------------+---------+------------+------------+
2 rows in set (0.00 sec)

17.mysql的元数据则存在了information_schema数据库中

16.查看http://192.168.1.10:50070/explorer.html#/user/hive/warehouse/中可以浏览到hdfs中的syc数据

17.hive数据库
hive数据库里的表存储了hive的相关元数据
hive里面就是存储了这些信息
在hive中建立了新的数据库syc,那么mysql数据库的dbs表里面就有这个信息了。
这就是数据库的元数据。
这儿是hive的元数据,其实mysql也有元数据的。mysql的元数据在这。
元数据就是数据的定义信息。
hive的元数据,托管到了mysql里面,因为默认的derby只能使用单连接,不能多用户同时访问。

刚才在hive里面建立了syc的数据库
所以在hdfs里面多了一个目录
/user/hive/warehouse/syc.db
这目录存放syc数据库里面的数据

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值