### 基于CDH 6.3.0 搭建 Hive on Spark 及相关配置和调优 #### 概述 随着大数据技术的发展,Hadoop生态系统不断成熟与完善,其中Apache Hive作为数据仓库工具,支持通过SQL语句进行查询、分析存储在Hadoop文件系统中的大规模数据集。然而,默认情况下,Hive使用MapReduce作为执行引擎,其效率较低,尤其对于迭代式算法等场景,处理速度明显慢于新兴的Spark计算框架。因此,将Hive的执行引擎从MapReduce切换至Spark(Hive on Spark),成为提高大数据处理速度的重要手段之一。 #### 实战经验分享 ##### 配置环境 本实战指南基于Cloudera Distribution Including Apache Hadoop (CDH) 6.3.0 版本,并采用Apache Spark 2.4.0作为计算引擎。集群配置包含5个NodeManager节点,每个节点配备62.8GB内存(共64GB)、32核CPU。这样的配置旨在充分利用硬件资源,确保Hive on Spark能够高效运行。 #### 一、配置Spark ##### 1.1 配置Executor内存 Executor是Spark作业运行的基本单位,负责执行具体任务。合理配置Executor内存对提升性能至关重要: - **增加Executor内存**:有助于优化MapJoin等操作,但同时会增加Garbage Collection时间。需要注意的是,在HDFS客户端未实现多写的情况下,过多的Executor可能会导致核心资源浪费。 - **确定Executor核心数**:Cloudera建议设置`spark.executor.cores`为4、5或6,以尽可能减少空闲核心。假设集群共有155个核心,则将`spark.executor.cores`设置为5较为合适,这样可以同时运行31个Executor,每个Executor最多运行5个任务。 - **Executor内存分配**:`spark.executor.memory`设置为8GB,表示Hive在Spark上的每个执行程序的最大Java堆栈内存;`spark.yarn.executor.memoryOverhead`设置为2GB,用于预留额外内存。需要注意的是,两者之和不能超过`yarn.scheduler.maximum-allocation-mb`设置的值,本集群中该值为60GB。 ##### 1.2 配置Driver内存 Driver端是Spark应用程序的主控程序,负责调度任务、监控状态等。虽然Driver端内存不会直接影响性能,但在资源不足时需要适当调整: - `spark.driver.memory`设置为3GB,表示Driver端的最大Java堆内存; - `spark.yarn.driver.memoryOverhead`设置为1GB,用于预留Driver端的额外内存。 ##### 1.3 动态分配Executor 为最大化集群资源利用率,推荐启用动态资源分配功能。这样可以在作业运行过程中根据实际需求动态调整Executor的数量,从而更高效地响应多用户并发查询。 - 设置`spark.executor.instances`到最大值,以便充分发挥集群性能。 - 开启`spark.dynamicAllocation.enabled`参数,实现动态资源分配。 ##### 1.4 设置并行度 并行度是指同时运行的任务数量,合理设置可以进一步提升性能: - 输入端,MapTask数量通常等于输入切分数。HiveOnSpark使用CombineHiveInputFormat来控制输入切分,从而优化并行度。 - 可以通过设置`spark.sql.shuffle.partitions`等参数手动调整并行度,确保数据均匀分布,减少数据倾斜。 #### 总结 通过以上配置和调优步骤,可以显著提升Hive on Spark的性能,实现更快的数据处理速度。在实践中还需要结合具体应用场景,不断调整优化策略,以达到最佳效果。此外,定期监控集群资源使用情况、调整配置参数,也是保持高性能的关键。

























- 粉丝: 388
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 【IOS应用源码】简单的滤镜demo.zip
- 【IOS应用源码】简单的图片放大缩小demoUITestApp.zip
- 【IOS应用源码】简单的滤镜合成demo.zip
- 【IOS应用源码】将图像变暗的方法 ImageDarken.zip
- 【IOS应用源码】将视频分享到youtube,vimeo,facebook和flickr.zip
- 【IOS应用源码】简单写字板.zip
- maven下载安装与配置教程.md
- 【IOS应用源码】界面超炫的类似于腾讯微博的界面架子.zip
- 【IOS应用源码】开发iPhone的基础例子代码写的很好.zip
- 【IOS应用源码】界面非常漂亮的音乐播放器.zip
- 【IOS应用源码】可以拖动图片,并可以进行图片旋转的demo.zip
- 【IOS应用源码】可扩展的输入框.zip
- 【IOS应用源码】开发者大会demo.zip
- 【IOS应用源码】可以用于录音或其他方面的开始或播放动态圆形加载.zip
- 【IOS应用源码】可以用手指左右滑动切换视图的效果demo.zip
- 多相永磁同步电机FOC控制与容错策略研究 - 模型预测控制


