搭建Hive On Spark
2016-05-26 10:26
375 查看
随着Hadoop的深入学习,渐渐用到了Hadoop相关的家族成员Hive、Spark、Sqoop等,其中Hive主要是为了使我们在进行大数据开发的时候更加快捷高效,而且又因为它的类SQL的特性使我们很容易上手;而Spark这个工具是极为高效的大数据的处理引擎,据说是可以达到Hadoop的MapReduce处理速度的几十倍,但是由于它不像Hive使用类SQL的语法,因此学习的成本要高很多,因此在Hadoop社区中开发人员开发引进了基于Spark数据处理引擎的Hive,称为Hive
On Spark。下面我们来学习下如何把Spark作为数据处理引擎集成到Hive中。
在官方网站上我们可以下载任意版本的Spark源码,在这里我们选择Spark-1.3.1.
文件目录结构大致为
目录下有一个pom.xml的文件,这个文件中包含了我们在编译源码时所需要的依赖和条件,我们需要根据自己的条件来修改这个文件
修改完毕后保存
然后,执行以下命令
编译成功后
源码目录下就多了这样一个二进制文件了,并且在assembly/target/scale-2.10文件夹下就多了spark-assembly-1.3.1-hadoop2.2.0.jar 这个文件
解压安装包
出现上面的内容且无报错,则证明安装成功!
注意:设置的spark.driver.memory和spark.executor.memory的值要小于当前内存可用大小,否则执行动作不会执行
如果出现上图则证明已经加载成功,注意我们是在第二步中配置的SPARK_HOME的安装目录/lib/
测试运行成功
OK,配置完成。
On Spark。下面我们来学习下如何把Spark作为数据处理引擎集成到Hive中。
1、源码编译Spark
Spark源码下载地址:http://spark.apache.org/downloads.html在官方网站上我们可以下载任意版本的Spark源码,在这里我们选择Spark-1.3.1.
wget http://www.apache.org/dyn/closer.lua/spark/spark-1.3.1/spark-1.3.1.tgz tar -zxvf spark-1.3.1.tgz cd spark-1.3.1
文件目录结构大致为
目录下有一个pom.xml的文件,这个文件中包含了我们在编译源码时所需要的依赖和条件,我们需要根据自己的条件来修改这个文件
修改完毕后保存
然后,执行以下命令
./make-distribution.sh --name "hadoop2-without-hive" --tgz "-Pyarn,hadoop-provided,hadoop-2.2,parquet-provided"注意,这里是编译不含hive 相关jar包的spark安装包,在编译期间一定要处于联网的情况下并且最好是把防火墙关掉。
编译成功后
源码目录下就多了这样一个二进制文件了,并且在assembly/target/scale-2.10文件夹下就多了spark-assembly-1.3.1-hadoop2.2.0.jar 这个文件
2、安装Spark
解压安装包
tar -zxvf spark-1.3.1-bin-hadoop2-without-hive.tgz mv spark-1.3.1-bin-hadoop2-without-hive spark-1.3.1
配置环境变量
SPARK_HOME=/mnt/sdd/spark-1.3.1 export PATH=$SPARK_HOME/bin:$PATH export SPARK_HOME=$SPARK_HOME
编辑配置文件
vim spark-env.sh增加以下配置
export HADOOP_CONF_DIR=${HADOOP_HOME}/etc/hadoop export HIVE_CONF_DIR=${HIVE_HOME}/conf export SPARK_LOCAL_IP=master
安装测试
cd /mnt/sdd/spark-1.3.1 ./bin/run-example SparkPi 10
出现上面的内容且无报错,则证明安装成功!
3、配置Hive On Spark
Hive On Spark 是指把Hive默认的数据处理引擎改为Spark,我们这里使用的是Hive-1.2.1版本的Spark,但是在配置过程中发现只有Spark-1.3.1才能与之集成成功,其他版本的Spark均失败了。可能是应为版本兼容性的问题吧。配置hive-site.xml
更改默认数据执行引擎为sparkcp spark-1.3.1/conf/spark-defaults.conf hive-1.2.1/conf/ vim spark-defaults.conf
配置spark-defaults.conf
spark.home /mnt/sdd/spark-1.3.1 spark.master spark://master:7077 spark.eventLog.enabled true spark.eventLog.dir /mnt/sdd/hive-1.2.1/sparkLog spark.serializer org.apache.spark.serializer.KryoSerializer spark.driver.memory 512m spark.executor.memory 512m spark.executor.cores 1 spark.yarn.app.name "Spark 1.3.1" spark.executor.extraJavaOptions -XX:+PrintGCDetails -Dkey=value -Dnumbers="one two three"
注意:设置的spark.driver.memory和spark.executor.memory的值要小于当前内存可用大小,否则执行动作不会执行
4、安装测试
测试是否加载spark-assembly-1.3.1-hadoop2.2.0.jar如果出现上图则证明已经加载成功,注意我们是在第二步中配置的SPARK_HOME的安装目录/lib/
测试运行成功
OK,配置完成。
加群:397706991,共同学习
相关文章推荐
- Redis基础教程第4节 Hash
- MPI编程指南(二)
- 编写OC程序
- indy10 idpop3接收邮件标题乱码
- OAuth的机制原理讲解及开发流程
- native2ascii.exe unicode
- Hibernate基础整理
- IP分片与重组
- Java 里面 final 与 static
- 冲刺2 01
- Python学习笔记之字符串
- MyBatis学习总结(一)——MyBatis快速入门
- CSS外边距合并
- 妙用Ajax技术实现局部刷新商品数量和总价实例代码
- Codeforces Round #354 (Div. 2)(B)模拟
- discuz安装
- 域验证方式生成OrgService
- 架构的相关文章收集
- C++ 总结
- Java数组声明、创建、初始化