Spark与Hive的完美结合:如何在Spark上部署Hive

主要记录如何安装配置Hive on Spark,在执行以下步骤之前,请先确保已经安装Hadoop集群,Hive,MySQL,JDK,Scala,具体安装步骤不再赘述。

背景

Hive 默认使用 MapReduce 作为执行引擎,即 Hive on mr。实际上,Hive还可以使用Tez和Spark作为其执行引擎,分别为Hive on Tez和Hive on Spark。由于MapReduce中间计算均需要写入磁盘,而Spark是放在内存中,所以总体来讲Spark比MapReduce快很多。因此,Hive on Spark也会比Hive on mr快。为了对比Hive on Spark和Hive on mr的速度,需要在已经安装了Hadoop集群的机器上安装Spark集群(Spark集群是建立在Hadoop集群之上的,也就是需要先装Hadoop集群,再装Spark集群,因为Spark用了Hadoop的HDFS、YARN等),然后把Hive的执行引擎设置为Spark。

Spark运行模式分为三种1、Spark on YARN 2、Standalone Mode 3、Spark on Mesos。
Hive on Spark默认支持Spark on YARN模式,因此我们选择Spark on YARN模式。Spark on YARN就是使用YARN作为Spark的资源管理器。分为Cluster和Client两种模式。

环境说明

本教程Hadoop相关软件全部基于CDH5.5.1,用yum安装,系统环境如下:

  • 操作系统:CentOS 7.2
  • Hadoop 2.6.0
  • Hive1.1.0
  • Spark1.5.0
  • MySQL 5.6
  • JDK 1.8
  • Maven 3.3.3
  • Scala 2.10

各节点规划如下:

192.168.117.51     Goblin01           nn1  jn1  rm1  worker  master  hive  metastore  mysql
192.168.117.52     Goblin02    zk2    nn2  jn2  rm2  worker          hive
192.168.117.53     Goblin03    zk3    dn1  jn3       worker          hive
192.168.117.54     Goblin04    zk4    dn2            worker          hive

说明:Goblin01~04是每台机器的hostname,zk代表zookeeper,nn代表hadoop的namenode,dn代表datanode,jn代表journalnode,rm代表resourcemanager,worker代表Spark的slaves,master代表Spark的master

编译和安装Spark(Spark on YARN)

编译Spark源码

要使用Hive on Spark,所用的Spark版本必须不包含Hive的相关jar包,hive on spark 的官网上说“Note that you must have a version of Spark which does not include the Hive jars”。在spark官网下载的编译的Spark都是有集成Hive的,因此需要自己下载源码来编译,并且编译的时候不指定Hive。

我们这里用的Spark源码是spark-1.5.0-cdh5.5.1版本,下载地址如下:

http://archive.cloudera.com/cdh5/cdh/5/spark-1.5.0-cdh5.5.1-src.tar.gz

下载完后用 tar xzvf 命令解压,进入解压完的文件夹,准备编译。

注意:编译前请确保已经安装JDK、Maven和Scala,maven为3.3.3及以上版本,并在/etc/profile里配置环境变量。

命令行进入在源码根目录下,执行

  ./make-distribution.sh --name "hadoop2-without-hive" --tgz "-Pyarn,hadoop-provided,hado
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值