hive详解

、hive:

——————————————————————————————

·hive解释

hive是建立在hdfs之上,对数据操作分析的工具。hive存储数据结构(schema)在数据库中,处理的数据进入hdfs.

 

·hive结构

hdfs:        存储真正的数据

Meta store:元数据库:存储表结构(一般是mysql)

Hive QL Peocess English:  hive查询处理器

Execution English: 执行引擎(一般是mapreduce)

user interfaces :   命令接口 (如web ui)

 

·hive流程

大体流程如下:  

1提交作业给驱动——>2.编译器编译——3>元数据库从mysql中查出结构——>4.5返回——>6交给执行引擎—

——>7执行作业(mapreduce运行)从hdfs查询——>8.9.10返回结果

 

二、安装hive(这里把mysql数据库安装在本地)

________________________________________________________

 

1.下载hive2.1-tar.gz
2.tar开
  $>tar -xzvf hive-2.1.0.tar.gz -C /soft //tar开
  $>cd /soft/hive-2.1.0 //
  $>ln -s hive-2.1.0 hive //符号连接

3.配置环境变量
[/etc/profile]
  HIVE_HOME=/soft/hive
  PATH=…:$HIVE_HOME/bin

 

4.验证hive安装成功
  $>hive –version

 

5.配置hive,使用win10的mysql存放hive的元数据.
a)复制mysql驱动程序到hive的lib目录下。

b)配置hive-site.xml
复制hive-default.xml.template为hive-site.xml
修改连接信息为mysql链接地址,将${system:…字样替换成具体路径。
[hive/conf/hive-site.xml]

<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>密码</value>
<description>password to use against metastore database</description>
</property>
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>你的用户名</value>
<description>Username to use against metastore database</description>
</property>
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://ip地址:3306/数据库名字</value>
</property>
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
<description>Driver class name for a JDBC metastore</description>
</property>

  

 

6)在msyql中创建存放hive信息的数据库
  mysql>create database hive2 ;

 

7)初始化hive的元数据(表结构)到mysql中。
  $>cd /soft/hive/bin
  $>schematool -dbType mysql -initSchema
  注意主机防火墙会禁止端口,所以应该添加防火墙例外端口 

 

windows添加防火墙例外端口方法

进入防火墙选择高级设置

 

 

入站规则设置
1 选择 入站规则 然后 新建规则,选择 端口,然后下一步
2 选择TCP 选择特定端口 然后输入端口,如有多个端口需要用逗号隔开了 例如: 3306
3 选择允许连接
4 选择配置文件
5 输入规则名称 如:mysqlport

出站规则设置
1 选择出站规则 然后 新建规则,选择 端口,然后下一步
2 选择TCP 选择特定端口 然后输入端口,如有多个端口需要用逗号隔开了 例如: 3306
3 选择允许连接
4 选择配置文件
5 输入规则名称 如:mysqlport