Hive的安装及Hive入门

Hive简介

1:企业中的数据大部分都是结构化(不是结构化的也都会转换成结构化) 我们可以使用JAVA进行分析处理数据,也可以使用mysql进行处理数据
2;最终的数据都会存储在HDFS中 我们可以使用MR程序进行分析处理数据, (JAVA特点:代码臃肿,逻辑复杂,效率低,但比较稳定)
3:SQL的特点 : 可以满足各种分析统计的需求,
**SQL统计解析语义 ,然后可以进行优化,最后传输到 MR模板 中 这个解析数据的过程有点复杂,为了简化程序员的操作时间和流程
4:这时候就有了一个工具 HIVE
HIVE 主要就是用来操作sql里的解析—优化—转换的过程 Hive处理的数据都存储在HDFS上,执行程序运行在YARN上

Hive的优点

1)操作接口采用类SQL语法,提供快速开发的能力(简单、容易上手)。HQL
2)避免了去写MapReduce,减少开发人员的学习成本。
3)Hive的执行延迟比较高,因此Hive常用于数据分析,对实时性要求不高的场合。(历史数据)
4)Hive优势在于处理大数据,对于处理小数据没有优势,因为Hive的执行延迟比较高。
5)Hive支持用户自定义函数,用户可以根据自己的需求来实现自己的函数。

Hive的缺点

1.Hive的HQL表达能力有限 (1)迭代式算法无法表达 递归算法 (2)数据挖掘方面不擅长(数据挖掘和算法,机器学习)
2.Hive的效率比较低 (1)Hive自动生成的MapReduce作业,通常情况下不够智能化 (2)Hive调优比较困难,粒度较粗(快)

Hive的安装

  1. mysql数据 远程连接权限

1)linux中登录mysal:mysql -uroot -proot
2) set global validate_password_policy=0;
3) set global validate_password_length=1;
这个两个设置以后 密码很简单不会报错
4) 设置允许远程连接linux: grant all privileges on . to ‘root’@’%’ identified by ‘root’ with grant option;
5) 刷新:flush privileges;

  1. hive 解压 配置 mysql的驱动包
rz
tar -axvf apache-hive-3.1.2-bin.tar.gz

然后上传mysql的驱动包到/opt/apps/hive-3.1.2/lib目录下

  1. 修改配置文件

mv /opt/apps/hive-3.1.2/conf/hive-env.sh.template hive-env.sh vi
conf/hive-env.sh

export HADOOP_HOME=/opt/apps/hadoop-3.1.1/
export HIVE_CONF_DIR=/opt/apps/hive-3.1.2/conf
  1. 继续配置文件

/opt/apps/hive-3.1.2/conf/hive-site.xml

<configuration>
<!-- 记录HIve中的元数据信息  记录在mysql中 -->
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://linux01:3306/hive?createDatabaseIfNotExist=true&amp;useSSL=false</value>
</property>
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
</property>
<!-- mysql的用户名和密码 -->
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>root</value>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>root</value>
</property>

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

<property>
<name>hive.exec.scratchdir</name>
<value>/user/hive/tmp</value>
</property>
<property>
<name>hive.querylog.location</name>
<value>/user/hive/log</value>
</property>
<!-- 客户端远程连接的端口 -->
<property> 
<name>hive.server2.thrift.port</name> 
<value>10000</value>
</property>
<property> 
<name>hive.server2.thrift.bind.host</name> 
<value>0.0.0.0</value>
</property>
<property>
<name>hive.server2.webui.host</name>
<value>0.0.0.0</value>
</property>
<!-- hive服务的页面的端口 -->
<property>
<name>hive.server2.webui.port</name>
<value>10002</value>
</property>
<property> 
<name>hive.server2.long.polling.timeout</name> 
<value>5000</value>                               
</property>
<property>
<name>hive.server2.enable.doAs</name>
<value>true</value>
</property>
<property>
<name>datanucleus.autoCreateSchema</name>
<value>false</value>
</property>
<property>
<name>datanucleus.fixedDatastore</name>
<value>true</value>
</property>

<property>
<name>hive.execution.engine</name>
<value>mr</value>
</property>
<!-- 添加元数据服务配置 -->
<property>
     <name>hive.metastore.local</name>
     <value>false</value>
     <description>controls whether to connect to remove metastore server or open a new metastore server in Hive Client JVM</description>
</property>
<property>
    <name>hive.metastore.uris</name>
     <value>thrift://linux01:9083</value>
</property>
</configuration>
  1. 继续修改配置文件

vi /opt/apps/hadoop-3.1.1/etc/hadoop/core-site.xml

<property>
<name>dfs.permissions.enabled</name>
<value>false</value>
</property>

<property>
<name>hadoop.proxyuser.root.hosts</name>
<value>*</value>
</property>

<property>
<name>hadoop.proxyuser.root.groups</name>
<value>*</value>
</property>
  1. 启动hadoop

start-all.sh

  1. 配置环境变量

vi /etc/profile
source /etc/profile

  1. 初始化

/opt/apps/hive-3.1.2/bin/schematool -initSchema -dbType mysql

  1. 开启元数据服务 (前台启动)

hive --service metastore &

  1. 启动测试(HDFS正常)

hive

与Hive的第一次亲密接触(Hive处理HDFS中的结构化数据)

  1. 手写一个结构化的数据并上传到HDFS中

在这里插入图片描述

  1. 写sql
    在这里插入图片描述

Hive的连接方式

  1. 在本地执行hive命令,本地模式进入到hive的客户终端
  2. 通过远程连接方式,开启hiveserver2服务 10000 端口 注意开启元数据服务 hive --service metastore & 9083 端口 1 ) jdbc连接 jdbc:hive2://linux01:10000
    IDEA中新建一个maven项目 导入下面依赖
 <dependencies>
        <dependency>
            <groupId>org.apache.hive</groupId>
            <artifactId>hive-jdbc</artifactId>
            <version>1.2.1</version>
        </dependency>
    </dependencies>

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2)beeline窗口 : !connect jdbc:hive2://linux01:10000
root
回车
0: jdbc:hive2://linux01:10000> 推荐!!!

Hive数据类型

hive数据类型>>java数据类型

1:tinyint >>byte 字节
2:smallint>>short 短整型
3:int>>int整形
4:bigint>>long长整型
5:boolean>>boolean布尔型
6:float>>float单精度浮点型
7:double>>double双精度浮点型
8:string>>string字符类型
9:timestamp时间类型
10:binary字节数组

在hive客户端中可以直接操作hdfs的命令

 dfs -ls /;

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值