Yoga_L1n 2017-11-07 09:17 采纳率: 14.3%
浏览 1462
已采纳

关于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条回答 默认 最新

  • 深圳摆地摊er 2017-11-07 10:24
    关注

    我觉得你有点大材小用了,,而且太麻烦了,,
    首先,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要抽象很多,但是用起来还挺简单。到这里你可以进行一些简单的统计分析没啥问题了,至于后期的计算分析就要看你的高数水平了,毕竟算法是硬伤。。。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 python:excel数据写入多个对应word文档
  • ¥60 全一数分解素因子和素数循环节位数
  • ¥15 ffmpeg如何安装到虚拟环境
  • ¥188 寻找能做王者评分提取的
  • ¥15 matlab用simulink求解一个二阶微分方程,要求截图
  • ¥30 乘子法解约束最优化问题的matlab代码文件,最好有matlab代码文件
  • ¥15 写论文,需要数据支撑
  • ¥15 identifier of an instance of 类 was altered from xx to xx错误
  • ¥100 反编译微信小游戏求指导
  • ¥15 docker模式webrtc-streamer 无法播放公网rtsp