在2014年7月1日的Spark Summit上,Databricks宣布终止对Shark的开发,将重点放到Spark SQL上。Databricks表示,Spark SQL将涵盖Shark的所有特性,用户可以从Shark 0.9进行无缝的升级。
本次Databricks推广的Shark相关项目一共有两个,分别是Spark SQL和新的Hive on Spark(HIVE-7292),在介绍这两个项目之前,我们首先关注下被终止的项目Shark。
About Shark
Shark发布于3年前,那个时候,Hive可以说是SQL on Hadoop的唯一选择,负责将SQL编译成可扩展的MapReduce作业。鉴于Hive的性能以及与Spark的兼容,Shark项目由此而生。
Shark即Hive on Spark,本质上是通过Hive的HQL解析,把HQL翻译成Spark上的RDD操作,然后通过Hive的metadata获取数据库里的表信息,实际HDFS上的数据和文件,会由Shark获取并放到Spark上运算。
Shark的最大特性就是快和与Hive的完全兼容,且可以在shell模式下使用rdd2sql()这样的API,把HQL得到的结果集,继续在scala环境下运算,支持自己编写简单的机器学习或简单分析处理函数,对HQL结果进一步分析计算。
除去Spark本身的迭代计算,Shark速度快的原因还在于其本身的改造,比如:
终止Shark的原因
在会议上,Databricks表示,Shark更多是对Hive的改造,替换了Hive的物理执行引擎,因此会有一个很快的速度。然而,不容忽视的是,Shark继承了大量的Hive代码,因此给优化和维护带来了大量的麻烦。随着性能优化和先进分析整合的进一步加深,基于MapReduce设计的部分无疑成为了整个项目的瓶颈。
因此,为了更好的发展,给用户提供一个更好的体验,Databricks宣布终止Shark项目,从而将更多的精力放到Spark SQL上。
About Spark SQL
既然不是基于Hive,Spark SQL究竟有什么样的改变,这里我们不妨看向 张包峰的博客。Spark新发布的Spark SQL组件让Spark对SQL有了别样于Shark基于Hive的支持。参考官方手册,具体分三部分:
第一点对SQL的支持主要依赖了Catalyst这个新的查询优化框架(下面会给出一些Catalyst的简介),在把SQL解析成逻辑执行计划之后,利用Catalyst包里的一些类和接口,执行了一些简单的执行计划优化,最后变成RDD的计算。虽然目前的SQL解析器比较简单,执行计划的优化比较通配,还有些参考价值,所以看了下这块代码。目前这个PR在昨天已经merge进了主干,可以在SQL模块里看到这部分实现,还有catalyst模块看到Catalyst的代码。下面会具体介绍Spark SQL模块的实现。
第二点对Parquet的支持不关注,因为我们的应用场景里不会使用Parquet这样的列存储,适用场景不一样。
第三点对Hive的这种结合方式,没有什么核心的进展。与Shark相比,Shark依赖Hive的Metastore,解析器等能把hql执行变成Spark上的计算,而Hive的现在这种结合方式与代码里引入Hive包执行hql没什么本质区别,只是把hive hql的数据与RDD的打通这种交互做得更友好了。
About HIVE-7292
HIVE-7292更像是Spark SQL成为标准SQL on Spark项目的补充,首先它是一个Hive on Spark Project,旨在服务已有Hive投入的机构,这个项目将Spark作为一个替代执行引擎提供给Hive,从而为这些机构提供一个迁往Spark的途径,提供一个更流畅的Hive体验。
好文章,需要你的鼓励
zip2zip是一项创新技术,通过引入动态自适应词汇表,让大语言模型在推理时能够自动组合常用词组,显著提高处理效率。由EPFL等机构研究团队开发的这一方法,基于LZW压缩算法,允许模型即时创建和使用"超级tokens",将输入和输出序列长度减少20-60%,大幅提升推理速度。实验表明,现有模型只需10个GPU小时的微调即可适配此框架,在保持基本性能的同时显著降低计算成本和响应时间,特别适用于专业领域和多语言场景。
这项研究创新性地利用大语言模型(LLM)代替人类标注者,创建了PARADEHATE数据集,用于仇恨言论的无毒化转换。研究团队首先验证LLM在无毒化任务中表现可与人类媲美,随后构建了包含8000多对仇恨/非仇恨文本的平行数据集。评估显示,在PARADEHATE上微调的模型如BART在风格准确性、内容保留和流畅性方面表现优异,证明LLM生成的数据可作为人工标注的高效替代方案,为创建更安全、更具包容性的在线环境提供了新途径。
这项研究由中国科学技术大学的研究团队提出了Pro3D-Editor,一种新型3D编辑框架,通过"渐进式视角"范式解决了现有3D编辑方法中的视角不一致问题。传统方法要么随机选择视角迭代编辑,要么同时编辑多个固定视角,都忽视了不同编辑任务对应不同的"编辑显著性视角"。Pro3D-Editor包含三个核心模块:主视角采样器自动选择最适合编辑的视角,关键视角渲染器通过创新的MoVE-LoRA技术将编辑信息传递到其他视角,全视角精修器修复并优化最终3D模型。实验证明该方法在编辑质量和准确性方面显著优于现有技术。
这项研究提出了ComposeAnything,一个无需重新训练的框架,可显著提升AI图像生成模型处理复杂空间关系的能力。该技术由INRIA、巴黎高师和CNRS的研究团队开发,通过三个创新步骤工作:首先利用大型语言模型创建包含深度信息的2.5D语义布局,然后生成粗略的场景合成图作为先验指导,最后通过物体先验强化和空间控制去噪引导扩散过程。在T2I-CompBench和NSR-1K基准测试中,该方法远超现有技术,特别是在处理复杂空间关系和多物体场景时表现卓越,为AI辅助创意设计开辟新可能。