01-Hive综述(hive的安装、修改配置、基本使用)

 写在前面的话:

该系列博文是我学习《 Hive源码解析与开发实战》视频课程的一个笔记,或者说总结,暂时没有对视频中的操作去做验证,只是纯粹的学习记录。

有兴趣看该视频的博友可以留言,我会共享出来,相互交流学习 ^.^。

*********************************************************************************************************

1、Hadoop的生态系统:

  

2、日志分析系统:

  

基于Hadoop的日志分析系统:

3、Hive介绍:

  

  

  

4、Hive环境搭建:

 

hive.metastore.warehouse.dir 表示在hdfs上存储的一个路径
hive.querylog.location 表示操作日志,存放位置

首先解压到指定目录中去(这里以0.13为例,实际是用的0.9.0版本):

 

Hive默认使用一个内嵌的数据库Derby,这个数据库有个缺点就是单session,意思就是说在一个目录下启动hive,并创建一个表后,如果在另外的一个目录下,再启动时,

通过show tables 不能查看到存在该表。

因此我们可以通过配置,来使用myql作为hive存储元数据的数据库,这样就可以解决这个问题:不管在哪个目录下启动hive,所有的修改操作都可以看到。

做实验:

如果默认derby的话:

show tables后会产生下面两个文件:

 

切换目录后启动hive,会产生一个目录和文件,当show tables的时候,不能看到之前创建的test1表;

将Hive的元数据库配置为mysql的配置操作:

主要是修改hive根目录下conf目录下hive-site.xml(这个文件是从hive-default.xml.template拷贝重命名来的,默认是先加载这个文件,然后如果有hive-site.xml,再加载hive-site.xml,当然相应的配置,hive-site.xml会覆盖掉之前的默认配置):

默认配置是derby的,我们将该相应配置的四个属性修改为mysql的相应配置就可以了:

修改后:

主要修改url、驱动名字、mysql的用户名和密码。

修改后退出hive,重启启动hive,就可以生效了。

使用mysql后,就不会出现修改或者创建表,切换目录启动后查看不到的情况,也就是说当多个用户使用的时候大家的修改都是可以看到的,但如果是derby每个用户的修改,其他用户看不到。

5、Hive基本使用:

 

浏览器的方式启动访问:

通过JDBC的方式访问:

首先以第三种方式启动hive:

如果想后台运行 在启动命令后面加&符号。

启动后,写java代码进行访问:

 

 

总结记忆:

  1、设置msql为hive的数据库:  

         Hive默认情况下使用derby这个内嵌的数据库,这个数据库有个特点:如果我们再某个目录下启动hive并创建一张表,然后退出hive,切换目录,然后启动hive,查看表时,不能查看到之前创建的表,也就是说derby的单session的,多个用户之间的相关表操作修改不能共享;为此,我们需要将hive存放元数据的数据库修改为mysql。

         具体配置是在hive-site.xml中修改四个配置属性,主要是配置url、驱动名字以及mysql用户名和密码,默认这四个属性是设置为derby,因此可以将关于derby的这四个默认属性注释掉,然后重新写四个mysql的属性;

  2、对hive进行访问和操作:

    1> 通过命令行的方式;

    2> 通过web的方式,在浏览器访问和浏览;

    3> 启动HiveServer,通过代码进行访问操作hive;

原文地址:https://www.cnblogs.com/lordcheng/p/7466238.html