美文网首页
Spark bench 避雷指南

Spark bench 避雷指南

作者: e505dd779611 | 来源:发表于2018-11-02 15:21 被阅读0次

    前言

    本文旨在记录在spark分布式环境下运行sparkbench所遇到的各种各样的坑,以及如何去避免这些坑的产生。

    安装spark分布式请参考:

    基于docker的Spark分布式搭建

    sparkbench安装请参考:

    sparkbench中文安装指南

    sparkbench英文原版readme

    写这篇文档的原因

    在运行sparkbench的时候,虽然安装sparkbench的流程在官方readme中以详细给出,但是在运行每个程序的过程中,文档明没有给出事无巨细的解答,同时由于sparkbench文档年代久远(2015年),在全新的spark环境下也出现的许多问题,所以写此文档,来达到避雷的目的。

    具体问题

    1.streaming applications

    在运行流数据处理时,执行gen_data无需进行特别操作,但是在run.sh时,则需要在其后跟随参数
    例如:
    PageView 后需要跟随 <应用名称> <主机名> <端口号>
    TwitterPopularTags 后需要跟随 <consumerKey> <consumerSecret>

    同时一些流数据程序不需要生成数据,无需执行gen_data。

    在TwitterPopularTags的run.sh中代码中用到了spark的example文件,但是版本号却时2.1.0,应当按照集群所安装的实际版本号进行相应的修改,否则将会无法读取。

    2.Graph Computation Workloads

    该处出现的问题具有特殊性,只有在docker环境下才可能出现

    Master:yarn
    [sudo] password for tank: 
    sh: 1: cannot create /proc/sys/vm/drop_caches: Read-only file system
    Connection to hadoop1 closed.
    [sudo] password for tank: 
    sh: 1: cannot create /proc/sys/vm/drop_caches: Read-only file system
    Connection to hadoop2 closed.
    [sudo] password for tank: 
    sh: 1: cannot create /proc/sys/vm/drop_caches: Read-only file system
    Connection to hadoop3 closed.
    data purged on hadoop1 hadoop2 hadoop3
    

    问题其实很简单,程序中有相应的代码在程序执行前想通过修改文件的方式释放缓存,但是在docker容器中,无法在容器内部对此文件/proc/sys/vm/drop_caches进行操作,因此出现了频繁要求sudo权限输入密码的情况(实际上并没有啥用),虽然其实并不会影响我们程序的执行,但这大大的阻碍了程序的自动化,解决这个问题其实只需要注释掉释放内存的代码即可,由人工在容器外部手动释放。

    3.生成数据问题

    其实这是官方文档的锅,官方说把测试结果放在了<SPARK_BENCH_HOME>/report下,实则不然,具体的存放位置应该是<SPARK_BENCH_HOME>/numbench-report.dat

    相关文章

      网友评论

          本文标题:Spark bench 避雷指南

          本文链接:https://www.haomeiwen.com/subject/gjccxqtx.html