Hive入门及安装

概念

hive可以将hdfs上结构化的文件映射成一张表,并使用类sql的方式操作. 因为使用mapreduce是在是太麻烦了~

hive的架构

在这里插入图片描述
原理

  • 用户写了个sql语句提交给driver
  • driver中的解析器解析HQL语法,交给编译器
  • 编译器取metastore获取元信息
  • 编译器结合元数据,进行编译
  • 优化器进行优化
  • driver将计划交给执行引擎
  • 执行引擎发送给yarn
  • yarn提交job并执行
  • 执行引擎接收返回的结果
  • 结果通过drive返回给用户接口

关键的一步就是sql语句如何转化为mapredeuce程序,这个就是HIve完成的工作.

安装与配置

[root@mypc01 local]# tar -zxvf apache-hive-2.1.1-bin.tar.gz -C /usr/local
[root@mypc01 local]# mv apache-hive-2.1.1-bin/ hive
[root@mypc01 local]# vi /etc/profile
# 添加如下内容:
export HIVE_HOME=/usr/local/hive
export PATH=$HIVE_HOME/bin:$PATH
#让profile生效
[root@mypc01 local]# source /etc/profile

配置hive-site.xml

<!-- 该参数主要指定Hive的数据存储目录  -->
<property>
    <name>hive.metastore.warehouse.dir</name>
    <value>/user/hive/warehouse</value>
    <description>location of default database for the warehouse</description>
  </property>
<!-- 该参数主要指定Hive的临时文件存储目录  -->
 <property>
    <name>hive.exec.scratchdir</name>
    <value>/tmp/hive</value>
    <description>HDFS root scratch dir for Hive jobs which gets created with write all (733) permission. For each connecting user, an HDFS scratch dir: ${hive.exec.scratchdir}/&lt;username&gt; is created, with ${hive.scratch.dir.permission}.</description>
  </property>

启动首先要启动hadoop和yarn,因为mr需要用到

[root@mypc01 hadoop]# start-dfs.sh
[root@mypc01 hadoop]# start-yarn.sh

启动hive

hive

配置hive的元数据库为mysql

为了数据安全,可以单独设置hive存储元数据的数据库,比如mysql
安装mysql过程略
设置hive的元数据库为mysql,需要修改hive-site.xml配置文件,如下
其中3306 是mysql提供服务的端口号

[root@mypc01 ~]# lsof -i:3306
COMMAND  PID  USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
mysqld  1031 mysql   21u  IPv6  20809      0t0  TCP *:mysql (LISTEN)
<!--配置mysql的连接字符串-->
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://mypc01:3306/hive?createDatabaseIfNotExist=true</value>
<description>JDBC connect string for a JDBC metastore</description>
</property>
<!--配置mysql的连接驱动-->
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
<description>Driver class name for a JDBC metastore</description>
</property>
<!--配置登录mysql的用户-->
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>root</value>
<description>username to use against metastore database</description>
</property>
<!--配置登录mysql的密码-->
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>123456</value>
<description>password to use against metastore database</description>
</property>

另外,要将
将mysql的驱动包mysql-connector-java-5.1.28-bin.jar上传到$HIVE_HOME/lib下.
之后初始化

bin/schematool -initSchema -dbType mysql
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值