关于spark 的执行有问题求教。

前话有点多。。现有一java项目涉及到了hive部分功能,但是由于hive的查询速度很慢,想把底层hive部分的代码替换为spark,了解到CDH5可以直接将hive引擎更换为spark,更换后想测试一下速度差异,但是在hive命令行输入完sql总是会卡住一段时间,找不到原因,然后就尝试用sparksql代码尝试操作hive,因为刚接触spark,在用代码操作hive的过程中也经历很多错误,现在终于能用javaspark连到我集群的hive了,我看网上spark大多都是以jar包的形式提交到服务器执行,而我只是想把spark的部分穿插进java项目里像java代码一样调用,这样可以吗?跟jar包的形式执行有什么差异吗 另外求一些spark hive 的经验。。。。

3个回答

我觉得你有点大材小用了,,而且太麻烦了,,
首先,spark有原生的sparkSQL可以直接调用,没必要hive
我觉得你对大数据的计算框架没理解透彻,
spark和hadoop都是一样的,计算框架打成jar包在服务器运行是它们的工作原理,在实际开发中,和java一样,只管写你的代码,等程序
完成部署了执行也是打成jar包直接调用,你看到的jar包形式提交到服务器,是为了让你明白它的工作原理,原本就是为了让你容易理解呢
hive的底层是mr,如果java代码直接调用,原理也是将hive语句转换成mr计算框架,和其他的java程序是一样的
而将hive的引擎换成spark实际上是将mr框架变成rdd去执行程序,这样的话就和sparkSQL一样的,因为sparkSQL就是翻译hql语句成一大串rdd再变成代码执行的。
所以,hive和sparkSQL是让一些不懂大数据分析计算框架原理的人直接调用的,而专业的大数据开发是要编写计算框架,然后打成jar包可以直接在
服务器测试,一般spark开发都会用原生的语言,scala ,,你懂了没
至于spark和hive的经验的话,建议你前期不要贪多,每一个点都很难吃透,hive就是进入大数据最好的入口,前期写hql语句,然后结合mr框架理解hql的原理,慢慢掌握mr框架。毕竟mr是比较简单的大数据分析了,除了效率低以外,其他没毛病。
等你mr玩熟了可以学spark,比mr要抽象很多,但是用起来还挺简单。到这里你可以进行一些简单的统计分析没啥问题了,至于后期的计算分析就要看你的高数水平了,毕竟算法是硬伤。。。

Yoga_L1n
Yoga_L1n 我现在没有使用改变hive引擎的方式,在写代码用sparksql去操作集群的hive表,但是跑起来感觉很慢,HiveContext hsc = new HiveContext(sc); debug看这一行要执行特别久,我现在就是想提高原来用hive查询的速度,所以才想用spark操作hive,是我的思路错了吗,还是spark用的方法不对。。大神请指教
接近 2 年之前 回复

可以呀,直接相当于换了计算框架!!!

我也不懂,过来围观,看有没有大神解答

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!