hadoop学习之--Hive笔记

10 篇文章 0 订阅

简介

1、hive:数据仓库平台

2、facebook 2008年捐献给Apache

3、HiveQL类sql的语言 具有ETL 功能(抽取转换加载)不支持更新、索引、事物

4、可以看成是SQL到MapReduce的映射器

5、提供Hive Shell 、JDBC/ODBC、Thrift客户端、Web管理接口  

适用环境:

1、不能提供排序和查询cache功能,不能提供在线事务处理,不提供实时查询和记录级的更新

2、Hive能很好的处理不变的大规模数据集上的批量任务

3、可扩展性和延展性

4、容错和低约束的数据输入格式

Hive的组成

1、用户接口:Hive shell、thrift客户端、web

2、thrift服务器

3、元数据库:Derby、Mysq

4、解析器:解释器、编译器、优化器、执行器。查询计划由Mapreduce调用执行

5、Hadoop:数据仓库和查询计划存储在HDFS上,计算过程由MapReduce执行

Hive体系:


架构图:


Hive安装

一、内嵌模式:元数据保持在内嵌的Derby模式,只允许一个会话连接

      1、环境变量:HIVE_HOME

      2、$ cp hive-default.xml.template hive-site.xml

            $cp hive-log4j.properties.template hive-log4j.properties

     3、配置${HIVE_HOME}/bin/hive-config.sh

              添加如下配置到文件末尾:

   export HIVE_HOME=/home/admin/app/hive-0.13.1
export HADOOP_HOME=/home/admin/hadoop-2.2.0
export JAVA_HOME=/usr/java/jdk1.6.0

二、本地独立模式:在本地安装Mysql,把元数据放到Mysql内

在内嵌模式基础上继续安装
安装Mysql并启动服务
在Mysql中为hive建立账号,并授予足够的权限,例如hive账号,授予all privileges
用上述账号登陆mysql,然后创建数据库,比如名叫hive,用于存放hive的元数据
在本地安装mysql客户端
配置hive-site.xml文件,指出使用本地Mysql数据库,已经连接协议,账号、口令等
把mysql-connector-java-x.x.x.jar复制到hive的lib目录下
启动hive能进入shell表示安装成功

1、用root用户安装Mysql数据库

默认的密码在:

2、安装mysql client和mysql devel

3、启动mysql服务

4、登陆重置密码

      

5、本地连接测试


6、开放客户端连接(允许任何IP地址的客户端用mysql账户来访问)


7、创建hadoop相关用户并授权

mysql> create user 'hadoop' identified by '123456';

mysql> grant all on *.* to hadoop@'%' with grant option;
用hadoop用户登录mysql并创建Hive专用数据库

# mysql -uhadoop -p123456

mysql> create database hive;

8、配置hive_site.xml文件:





9、把JDBC驱动包解压后拷贝到${HIVE_HOME}/lib下


10、测试连接


三、远程模式:元数据放置在远程的Mysql数据库

远程模式安装是把metastore配置到远程机器
在独立模式基础上进行如下配置:
修改hive-site.xml的javax.jdo.option.ConnectionURL参数,调整主机名为远程机的主机名
配置hive.metastore.uris参数

<property>	 
    <name>hive.metastore.uris</name>  
    <value>thrift://remoteHost:9083</value> 
    <description>Thrift uri for the remote metastore. Used by metastore client to connect to remote metastore.
    </description> 
</property>

Hive 的服务

默认的服务,提供命令行接口,可直接编写HiveQL语句并执行、执行HiveQL语句

hive> select * from table_name;
设置和查看临时变量:



导入jar包(jar包存在)

hive> add jar hivejar.jar
创建函数(类存在)

hive> create temporary function udfTest as ‘com.cstore.udfExample’
也可以在本地系统的命令行运行Hive的shell

$ hive –e ‘select * from table_name;’(执行HiveQL语句)

$ hive –-config /hive/conf (重新载入新的配置文件)

$ hive –-service hiveserver (启动服务)



JDBC/ODBC支持
Hive允许支持JDBC协议的应用程序连接到Hive
当Hive启动了hiveserver服务后,客户端通过Java的Thrift和Hive服务器进行通信,连接过程如下:

开启hiveserver服务:

$ hive –-service hiveserver 50000(端口号)

建立与Hive的连接

Class.forName(“org.apache.hadoop.hive.jdbc.HiveDriver”);

Connection con = DriverManager.getConnection(“jdbc:hive://<host_name>:50000/default”,”hive”,”123456”);

支持ODBC的应用程序也可以连接到Hive服务端,连接机制与JDBC类似


Thrift服务
Hive的Thrift是一种跨语言服务的可伸缩软件框架
Thrift结合了强大的软件堆栈的代码生成引擎,可以无缝地与C++、C#、Java、Python、PHP和Ruby结合
Thrift允许用户简单地定义文件中的数据类型和服务接口,编译器生成代码来实现RPC客户端和服务器之间的通信
Hive内部集成了Thrift服务,支持在多种编译语言中使用Hive命令
元数据服务
元数据保存了表的属性和服务信息
元数据存储在RDBMS中,比如MySQL、Derby


Web接口
Hive Web Interface(hwi)是Hive提供的Web接口
通过Web接口,可以方便地执行与Hive shell上的命令具有功能相同的操作
开启Hive的web服务  

$ nohup hive --service hwi >hwi.log &
在浏览器中输入地址

http://192.168.136.101:9999/hwi

hive-hwi-0.13.1图形界面配置

hive0.13.1没有hwi.war包。

去源码中找到hwi/web/包。
先用zip 打包成.zip文件,然后在修改后缀名。

hwi/web 打包成.zip文件

修改配置文件:hive-site.xml 增加如下三个参数项:

<property>
<name>hive.hwi.listen.host</name>
<value>0.0.0.0</value>
</property>
<property>
<name>hive.hwi.listen.port</name>
<value>9999</value>
</property>
<property>
<name>hive.hwi.war.file</name>
<value>lib/hive-hwi-0.13.1.war</value>                                                                             
</property>

hive --service hwi

如有下报错:
Problem accessing /hwi/. Reason:


    Unable to find a javac compiler;
com.sun.tools.javac.Main is not on the classpath.
Perhaps JAVA_HOME does not point to the JDK.
It is currently set to "/usr/java/jdk1.7.0_55/jre"

解决办法:
 cp /usr/java/jdk1.7.0_55/lib/tools.jar  /usr/local/hive/lib/
 hive --service hwi   重启即可。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值