Hive的基本概念(安装部署)

本文介绍了Hive作为Hadoop数据仓库工具的作用,它简化了对Hadoop的数据操作。Hive特点是可扩展性和容错性,其内部执行过程包括解释器、编译器、优化器和执行器。元数据包括表名、列名和列类型。Hive不支持数据改写和添加,适合批量数据统计分析。文章详细讲解了如何在Derby和MySQL上部署Hive,包括设置数据库连接、授权及配置Hive环境变量。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#1.什么是Hive?
hive是Hadoop的一个数据仓库工具,是将结构化数据文件映射成为一个数据表,并提供类SQL的查询工具。
Hive可以对数据进行储存于计算
数据存储依赖于HDFS
数据计算依赖于Map Reduce

#Hive的目的(意义):
在hadoop是个好软件,但是不好使用(学习成本太高,坡度陡,难度大)的前提下降低了程序员使用hadoop的学习成本,降低了难度。
#Hive特点:
可扩展性:与集群的扩展性相同
延展性:Hive提供自定义函数接口,支持HQL语句直接调用java方法容错性:节点出现问题SQL仍可完成执行。
#HIve架构
在这里插入图片描述
元数据:
描述数据的数据就是元数据
表的名字,表的列,列的类型都是元数据

#Hive内部执行过程:
解释器–>编译器–>(会使用到元数据)–>优化器–>执行器

Hive基本介绍
Hive中没有定义专门的数据格式,用户提供的数据是什么格式,hive直接将数据拷贝到集群。不会对数据格式进行改变。
用户定义数据格式需要指定三个属性:
列分隔符(通常为空格、”\t”、”\x001″)、行分隔符(”\n”)
读取文件数据的方法(Hive 中默认有三个文件格式 TextFile,SequenceFile 以及 RCFile)不会对数据本身进行任何修改,甚至不会对数据进行扫描。
Hive 中不支持对数据的改写和添加(在 一个文本中添加新数据) Hive 在加载数据的过程中不会对数据中的某些 Key 建立索引。总结:hive具有sql数据库的外表,但应用场景完全不同,hive**只适合用来做批量数据统计分析

Hive内的基本概念
DB、数据库
Table, 表(内部表)
External Table, 外部表
Partition,分区
Bucket。分桶
Hive支持的数据格式
可支持Text, SequenceFile ,ParquetFile,ORC格式RCFILE等

我们在此处选择第三台机器作为我们hive的安装机器
安装
derby版hive直接使用:
1、解压hive
cd /export/softwares
tar -zxvf hive-1.1.0-cdh5.14.0.tar.gz -C …/servers/

1、 直接启动 bin/hive
cd …/servers/
cd hive-1.1.0-cdh5.14.0/
bin/hive
hive> create database mytest;

缺点:多个地方安装hive后,每一个hive是拥有一套自己的元数据,大家的库、表就不统一;

2、使用mysql共享hive元数据
mysql数据库的安装(使用rpm包的方式进行安装,不推荐)
第一步:查看系统自带的mysql的rpm包
rpm -qa | grep mysql
rpm -e mysql-libs-5.1.73-8.el6_8.x86_64 --nodeps

第二步:安装mysql的rpm包

rpm -ivh *.rpm

第三步:启动mysql的服务
service mysqld start

第四步:查看mysql初始化密码
more /root/.mysql_secret

第五步:使用随记密码登录mysql并更新密码
mysql -uroot –p
SET PASSWORD = PASSWORD(‘123456’);

第六步:开启mysql远程连接
grant all privileges on . to ‘root’@’%’ identified by ‘123456’ with grant option;

flush privileges;

第七步:设置mysql的开机启动
chkconfig --add mysqld
chkconfig mysqld on

mysql数据库的安装(使用yum源进行安装,强烈推荐)
第一步:在线安装mysql相关的软件包
yum install mysql mysql-server mysql-devel
第二步:启动mysql的服务
/etc/init.d/mysqld start
chkconfig mysqld on
第三步:进入mysql的客户端然后进行授权
use mysql;
配置远程连接
grant all privileges on . to ‘root’@’%’ identified by ‘123456’ with grant option;

flush privileges;

第四步 设置root用户链接mysql的密码
update user set password=password(‘123456’) where user=‘root’;

flush privileges;

修改hive的配置文件
修改hive-env.sh
添加我们的hadoop的环境变量:
cd /export/servers/hive-1.1.0-cdh5.14.0/conf
cp hive-env.sh.template hive-env.sh
vim hive-env.sh

HADOOP_HOME=/export/servers/hadoop-2.6.0-cdh5.14.0
Hive Configuration Directory can be controlled by:
export HIVE_CONF_DIR=/export/servers/hive-1.1.0-cdh5.14.0/conf

修改hive-site.xml
cd /export/servers/hive-1.1.0-cdh5.14.0/conf
vim hive-site.xml

<?xml-stylesheet type="text/xsl" href="configuration.xsl"?> javax.jdo.option.ConnectionURL jdbc:mysql://node03.hadoop.com:3306/hive?createDatabaseIfNotExist=true
    <property>
            <name>javax.jdo.option.ConnectionDriverName</name>
            <value>com.mysql.jdbc.Driver</value>
    </property>
    <property>
            <name>javax.jdo.option.ConnectionUserName</name>
            <value>root</value>
    </property>
    <property>
            <name>javax.jdo.option.ConnectionPassword</name>
            <value>123456</value>
    </property>
    <property>
            <name>hive.cli.print.current.db</name>
            <value>true</value>
    </property>
    <property>
            <name>hive.cli.print.header</name>
            <value>true</value>
    </property>
    <property>
            <name>hive.server2.thrift.bind.host</name>
            <value>node03.hadoop.com</value>
    </property>

上传mysql的lib驱动包
将mysql的lib驱动包上传到hive的lib目录下
cd /export/servers/hive-1.1.0-cdh5.14.0/lib
将mysql-connector-java-5.1.38.jar 上传到这个目录下

总结:怕上面的安装部署不够简单这有个简单的
Hive的安装部署
1、 derby版hive
默认使用derby(数据库)维护元数据此版本,每个节点自己独立维护一个derby数据库,所以在节点1添加了数据库,在节点2 无法查看
2、 使用mysql共享hive元数据安装mysql
yum install -y mysql mysql-server mysql-devel
启动mysql
/etc/init.d/mysqld start chkconfig mysqld on
配置远程连接
grant all privileges on . to ‘root’@’%’ identified by ‘123456’ with grant option;
配置root用户的登录密码
update user set password=password(‘123456’) where user=‘root’; 刷新配置‘
flush privileges;
使用远程连接工具连接数据库
安装hive
编辑hive-env.sh
配置 HADOOP_HOME 配置HIVE_CONF_DIR 编辑 Hive-site.xml
配置hive需要连接的mysql数据库添加mysql驱动包到hive的lib文件夹内
最后修改环境变量
export HIVE_HOME=/export/servers/hive-1.1.0-cdh5.14.0
export PATH= P A T H : PATH: PATH:HIVE_HOME/bin source /etc/profile
最后将Hive配置什么的分发到各个节点上就OK了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值