hive集成spark和mysql

本文介绍了如何安装和配置Hive,包括使用Derby和MySQL作为元数据库的步骤。接着讲解了Hive的基本操作,如数据类型和HiveQL命令。最后,详细阐述了Spark与Hive的集成过程,包括安装Spark、配置Hive支持以及验证集成成功的方法。
摘要由CSDN通过智能技术生成

参考:http://ihoge.cn/2018/HiveSpark.html

一、Hive安装

1.Hive简介

​ Hive是Facebook开发的构建于Hadoop集群之上的数据仓库应用,可以将结构化的数据文件映射为一张数据库表,并提供完整的SQL查询功能,可以将SQL语句转换为MapReduce任务进行运行。

​ Hive是一个可以提供有效的、合理的且直观的组织和使用数据的模型,即使对于经验丰富的Java开发工程师来说,将这些常见的数据运算对应到底层的MapReduce Java API也是令人敬畏的。Hive可以帮用户做这些工作,用户就可以集中精力关注查询本身了。Hive可以将大多数的查询转换为MapReduce任务。Hive最适合于数据仓库应用程序,使用该应用程序进行相关的静态数据分析,不需要快速响应给出结果,而且数据本身也不会频繁变化。

​ Hive不是一个完整的数据库。Hadoop以及HDFS的设计本身约束和局限性限制了Hive所能胜任的工作。最大的限制就是Hive不支持记录级别的更新、插入或者删除。用户可以通过查询生成新表或将查询结果导入到文件中去。因为,Hadoop是一个面向批处理的系统,而MapReduce启动任务启动过程需要消耗很长时间,所以Hive延时也比较长。Hive还不支持事务。因此,Hive不支持联机事务处理(OLTP),更接近于一个联机分析技术(OLAP)工具,但是,目前还没有满足“联机”部分。

​ Hive提供了一系列的工具,可以用来进行数据提取转化加载(ETL),其中,ETL是一种可以存储、查询和分析存储在Hadoop中的大规模数据的机制。因此,Hive是最适合数据仓库应用程序的,它可以维护海量数据,而且可以对数据进行挖掘,然后形成意见和报告等。

​ 因为大多数的数据仓库应用程序是基于SQL的关系数据库现实的,所以,Hive降低了将这些应用程序移植到Hadoop上的障碍。如果用户懂得SQL,那么学习使用Hive会很容易。因为Hive定义了简单的类SQL 查询语言——HiveQL,这里值得一提的是,与SQLServer、Oracle相比,HiveQL和MySQL提供的SQL语言更接近。同样的,相对于其他的Hadoop语言和工具来说,Hive也使得开发者将基于SQL的应用程序移植到Hadoop变得更加容易。

2.Hive安装

​ 接下来,开始Hive的安装,安装Hive之前,首先需要装好Hadoop和Spark。在Hive官网可下载最新版本Hive,并且能够查阅版本改动说明,本次课程采用1.2.2版本进行安装。可以采用WinSCP传输apache-hive-1.2.2-bin.tar至虚拟机“下载”文件夹中,再进行后续安装。

cd ~/下载                                              # 进入下载文件夹
sudo tar -zxf apache-hive-1.2.2-bin.tar.gz -C /usr/local    # 安装至/usr/local文件夹内
cd /usr/local                                         # 进入/usr/local文件夹
sudo mv ./apache-hive-1.2.2-bin/ ./hive               # 更名为hive
sudo chown -R hadoop ./hive                           # 修改hive权限
mkdir -p /usr/local/hive/warehouse                    # 创建元数据存储文件夹
sudo chmod a+rwx /usr/local/hive/warehouse            # 修改文件权限  

然后添加Hive安装路径至系统环境变量

vim ~/.profile

添加下述路径

#Hive
export HIVE_HOME=/usr/local/hive
export PATH=$PATH:$HIVE_HOME/bin

并使之生效

source ~/.profile

修改hive读取spark的jar包地址

cd /usr/local/hive/bin
vim hive

修改为

# add Spark assembly jar to the classpath
if [[ -n "$SPARK_HOME" ]]
then
  sparkAssemblyPath=`ls ${SPARK_HOME}/jars/*.jar`
  CLASSPATH="${CLASSPATH}:${sparkAssemblyPath}"
fi

然后采用hive默认配置

cd /usr/local/hive/conf
cp hive-default.xml.template hive-default.xml

尝试启动Hive,此时启动是以本地模式进行启动,能正常启动则说明安装成功。

start-all.sh
hive

​ 若出现jline等jar包错误,则需要进入到hadoop安装目录下的share/hadoop/yarn/lib下删除jline-0.9.94.jar文件,再启动hive即可(因为高版本的Hadoop对Hive有捆绑)。

cd /usr/local/hadoop/share/hadoop/yarn/lib
rm -rf jline-0.9.94.jar 

3. Hive的基本配置

​ 在安装Hive时,默认情况下,元数据存储在Derby数据库中。Derby是一个完全用Java编写的数据库,所以可以跨平台,但需要在JVM中运行 。因为多用户和系统可能需要并发访问元数据存储,所以默认的内置数据库并不适用于生产环境。任何一个适用于JDBC进行连接的数据库都可用作元数据库存储,这里我们把MySQL作为存储元数据的数据库。接下来,我们分别对这两种方式进行介绍,即使用Derby数据库的方式和使用MySQL数据库的方式。

3.1 使用Derby作为元数据库

​ 本地模式中,用户的“表”等元数据信息,都默认存储在file://user/hive/warehouse,对于其他模式默认存储路径是hdfs://namenode_server/user/hive/warehouse。使用如下命令编辑hive-site.xml文件:

vim /usr/local/hive/conf/hive-site.xml  

在hive-site.xml文件添加以下内容:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
    <name>hive.metastore.warehouse.dir</name>
    <value>/usr/local/hive/warehouse</value>   
    <description>location of default database for the warehouse</description>
  </property>
<property>
    <name>javax.jdo.option.ConnectionURL</name>
     <value>jdbc:derby:;databaseName=/usr/local/hive/metastore_db;create=true</value>                           
    <description>JDBC connect string for a JDBC metastore</description>
  </property>
</configuration>

​ 若要以伪分布式模式和分布式模式配置Hive,只需根据Hadoop配置文件core-site.xml中fs.defaultFS的值对hive.metastore.warehouse.dir 进行相应修改即可。配置完成之后即可启动Hive,然后尝试使用HiveQL命令创建表。

hive
show databases;
create database if not exists derby;
use derby;
create table x(a int);
select * from x;
drop table x;
exit;
3.2 使用MySQL作为元数据库
3.2.1 安装MySQL

首先,查看并卸载系统自带的MySQL相关安装包(或之前安装过MySQL),命令如下:

sudo apt install rpm
rpm -qa | grep mysql

若没有安装rpm工具,系统会有提示,按照提示安装即可。接下来查看是否有系统自带的MySQL相关安装包,若有,按下面命令删除:

sudo rpm -e --nodeps mysql-libs-xxxxxx       

注:xxxxx是已经安装的mysql的版本号,然后进行MySQL的安装

sudo apt-get install mysql-server        

安装完成后,启动设置MySQL服务

sudo service mysql start
mysql -u root -p

当然,还可使用下列命令进行额外设置

sudo
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值