在进行离线大数据处理工程中,使用hive进行运算出现了瓶颈,由于文件太大,集群的block块采用的是默认128M没有进行调整,而且集群规模比较小,只有4个节点,
机器配置:
2台32core,内存14.5G 
1台32core,内存30.3G 
1台32core,内存46.1G 
在进行分析过程中,有大量的left jion和group by  以及sum count HQL各种嵌套[主要是当初设计的不合理,下边的没有经验,按照普通的RDB来使用了],在使用hive分析过程中,文件特别大,会启动很多的mapper,因此需要申请大量的containers需要大量内存,由于内存不足常常导致nodeMannger自杀,(yarn调度配置采用的是默认配置){默认情况下,YARN采用了线程监控的方法判断任务是否超量使用内存,一旦发现超量,则直接将其杀死。由于Cgroups对内存的控制缺乏灵活性(即任务任何时刻不能超过内存上限,如果超过,则直接将其杀死或者报OOM),而Java进程在创建瞬间内存将翻倍,之后骤降到正常值,这种情况下,采用线程监控的方式更加灵活(当发现进程树内存瞬间翻倍超过设定值时,可认为是正常现象,不会将任务杀死),因此YARN未提供Cgroups内存隔离机制。}并且会报OOM,程序终止运行,查看了官网有一些建议,但是数据量大,集群小的先决条件,最终尝试Spark-Sql,由于它是基于RDD的,并且它的lineage容错机制,和基于内存+磁盘的高速计数特性,最终测试完全在意料之中,运行是相当的流畅。下边介绍下Spark-SQL与hive整合:
需要软件
* CentOS-6.6 (Final)
* JDK-1.7.0_25
* Maven-3.2.1
* Hadoop-2.2.0
* Spark-1.3.1
* Hive-0.12.0
* MySQL-Server-5.5.8
1、搭建hadoop集群见【http://blog.csdn.net/bbaiggey/article/category/6113763】
2、下载spark1.6.0解压
1>配置进环境变量
2>修改conf/spark-env.sh增加 
export JAVA_HOME=/home/hadoop/sxp/jdk7
SPARK_MASTER_IP=pbshdp101
export HADOOP_HOME=/home/hadoop/sxp/hadoop-2.6.0
export SPARK_CLASSPATH="$SPARK_CLASSPATH:/home/hadoop/sxp/apache-hive-0.14.0-bin/lib/mysql-connector-java-5.0.5.jar"
3>cp hive-site.xml 、hdfs-site.xml、core-site.xml到conf目录
4>修改slaves添加worker节点的主机名或ip地址
5>配置master到worker的免密码登陆
6>讲配置好的spark scp到其他worker节点上
7>在主节点上启动start-all.sh
8>在浏览器中访问 http://masterIP:8080
{spark-sql --master spark://masterIP101:7077 --driver-memory 2g --executor-memory 2g    ./start-all.sh --memory2g}
9>要执行sql查询,在客户端启动 bin/spark-shell --master spark://masterIP:7077



Spark-SQL与hive整合【版本spark1.6.0+hive0.14】--Standalone模式相关推荐

  1. Hive on Spark和Spark sql on Hive,你能分的清楚么

    摘要:结构上Hive On Spark和SparkSQL都是一个翻译层,把一个SQL翻译成分布式可执行的Spark程序. 本文分享自华为云社区<Hive on Spark和Spark sql o ...

  2. spark sql on hive初探

    前一段时间由于shark项目停止更新,sql on spark拆分为两个方向,一个是spark sql on hive,另一个是hive on spark.hive on spark达到可用状态估计还 ...

  3. spark sql读写hive的过程

    Spark sql读写hive需要hive相关的配置,所以一般将hive-site.xml文件放到spark的conf目录下.代码调用都是简单的,关键是源码分析过程,spark是如何与hive交互的. ...

  4. spark sql读取hive底层_scala – 从一个hive表中读取并使用spark sql写回来

    我正在使用Spark SQL读取Hive表并将其分配给 scala val val x = sqlContext.sql("select * from some_table") 然 ...

  5. spark基础之Spark SQL和Hive的集成以及ThriftServer配置

    如果希望Maven编译Spark时支持Hive,需要给定-Phive -Phive-thriftserver.比如比如:mvn -Pyarn -Phadoop-2.6 -Dhadoop.version ...

  6. 使用Spark SQL读取Hive上的数据

    Spark SQL主要目的是使得用户可以在Spark上使用SQL,其数据源既可以是RDD,也可以是外部的数据源(比如Parquet.Hive.Json等).Spark SQL的其中一个分支就是Spar ...

  7. Spark SQL 与 Hive 的第一场会师

    "你好,一杯热美式,加 2 份shot, 1 份焦糖,谢谢" L 跨进汇智国际中心大厦的 Starbucks, 拿着 iPhone 对着点餐机轻轻一扫,对黑带服务员小妹抛出一个笑脸 ...

  8. Spark SQL实战(08)-整合Hive

    1 整合原理及使用 Apache Spark 是一个快速.可扩展的分布式计算引擎,而 Hive 则是一个数据仓库工具,它提供了数据存储和查询功能.在 Spark 中使用 Hive 可以提高数据处理和查 ...

  9. spark sql and hive 3g数据测试

    1:上传文件到hdfs [jifeng@feng01 hadoop]$ hadoop fs -mkdir /user/jifeng/fire 15/03/05 13:29:28 WARN util.N ...

  10. Spark SQL操作Hive表

    Spark SQL支持从Hive存储中读写数据.然而,Hive存在很多的依赖,而这些依赖又不包含在默认的各类Spark发型版本中.如果将Hive的依赖放入classpath中,Spark将自动加载它们 ...

最新文章

  1. C4D+ PS打造城市场景 Create a Cityscape with Cinema 4D + Photoshop
  2. 《HttpClient官方文档》2.4 多线程请求执行
  3. Quartz-DateBuilder解读
  4. 【Java】6.7 内部类
  5. hdu 5246(贪心)
  6. ORA-01114: 将块写入文件 35 时出现 IO 错误
  7. 杨飞:擅长顺势而为,收获家业两成
  8. java8 stream 分组_Java 8 中 Map 骚操作之 merge() 的用法
  9. C#LeetCode刷题之#54-螺旋矩阵(Spiral Matrix)
  10. php--字符串常用函数
  11. 高级软件测试技术17秋第1次课堂作业小结
  12. CSS3 background-clip属性
  13. java怎么对用户做自定义模版打印_Printing tools 自定义模板打印的实现
  14. 电子计算机工程 专业大学排名,电子与计算机工程专业大学排名【科教评价网版】...
  15. el-table中的表格的相同项合并(单元格合并),包含多层合并
  16. Mac重装Homebrew
  17. 溢出英语计算机,查看溢出(简述计算机溢出原理)
  18. kaggle数据集汇总_【技术分享】无人机视觉检测算法研究及数据集汇总
  19. Vulkan学习(四):Shader加载 管线设置
  20. Visual Assist 10.9.2248 破解版(支持VS2017)

热门文章

  1. 关于beginPath()和closePath()的关系canvas的beginPath和closePath分析总结,包括多段弧的情况...
  2. 2007年8月28日 月全食 照片
  3. java中equals以及==的用法(简单介绍)
  4. jmeter断言 判断响应数据是否符合预期
  5. BZOJ4355: Play with sequence(吉司机线段树)
  6. Python多人聊天室
  7. iOS 中 .a 和 .framework 静态库的创建与 .bundle 资源包的使用
  8. 第13周 本周个人总结
  9. bzoj 1415: [Noi2005]聪聪和可可
  10. kettle 4.4源代码分析Transformation