最近耳闻Spark风生水起,这两天利用休息时间研究了一下,果然还是给人不少惊喜。可惜,笔者不善JAVA,只有PYTHON和SCALA接口。花了不少时间从零开始认识PYTHON和SCALA,不少时间答了VIM的IDE,总算走入正途。下面将一些SPARK集群搭建心得简单写一下。期间也零星碰到不少问题。

//spark
1,去mirror站点下138M大小的编译好的包,去下SCALA 2.9.X,HADOOP该启动的启动

2,配置各种$HOME和$PATH
配置$SPARK_HOME/conf/spark-env.sh中的javahome,scalehome,sparkhome
配置slaves文件加入主机名
配置.bash_profile javahome,scalehome,sparkhome 和path

3,把1主和2备用SCP同步一下
scp scala root@192.168.137.104:/root/soft
scp spark root@192.168.137.104:/root
主:start-all.sh
jps多了一个master,jps多了一个worker
http://cent3:8080/
http://cent4:8081/
http://cent2:8081/

4,跑自带实例
./run org.apache.spark.examples.SparkPi local
./run-example org.apache.spark.examples.SparkPi spark://cent3:7077
./run-example org.apache.spark.examples.SparkLR spark://cent3:7077
./run-example org.apache.spark.examples.SparkKMeans spark://cent3:7077 ./kmeans_data.txt 2 1

5,跑spark-shell 【SBT理解不能。。-_-,好复杂】
MASTER=spark://cent3:7077 ./spark-shell
scala> System.setProperty("spark.executor.memory", "512") #调优MEM参数
scala> System.setProperty("spark.cores.max", "5") #调优CPU参数
scala> val file = sc.textFile("hdfs://cent3:9000/user/root/mandela.txt")
scala> val count = file.flatMap(line => line.split(" ")).map(word => (word, 1)).reduceByKey(_+_)
scala> count.collect()
res0: Array[(java.lang.String, Int)] = Array((peacefully,2), ("",15), (domination,,1), (African,3), (Peace,1), (handed,1), (awarded,1), (era,,1), (cut,1), (example,1), (my,1), (probed,1), (as,2), (country's,3), (rural,1), (his,9), (voluntary,1), (when,3), (last,1), (elections,1), (its,2), (who,1), (appearance,1), (teeth,1), (neighborhood,1), (three,1), (new,1), (jail,1), (president,3), (Charged,1), (died,1), (prisoner.,1), (mission,1), (years,2), (Mandela,6), (Madiba,,1), (myself,1), (1999.,1), (disease,1), (President,3), (after,1), (grip,1), (ovation,1), (office.,1), (from,8), (prolonged,1), (Nobel,1), (sides,1), (died:,1), (other,1), (personal,1), (wounds.,1), (one,1), (Africa,2), (obscurity,1), (As,1), (forging,1), (son,1), (this,1), (president,,1), (has,2), (Mandela,,3), (apartheid,...

6,跑pyspark实例
cd /root/spark/python
[ALONE+LOCAL] pyspark examples/wordcount.py local[2] mandela.txt
[ALONE+HDFS] pyspark examples/wordcount.py local[2] hdfs://cent3:9000/user/root/mandela.txt
[CLUSTER+LOCAL] pyspark examples/wordcount.py spark://cent3:7077 mandela.txt 前提是所有Master和Worker主机上都有
[CLUSTER+HDFS pyspark examples/wordcount.py spark://cent3:7077 hdfs://cent3:9000/user/root/mandela.txt

好,至此基本上可以随便玩了,github上有官网python例子,省了不少事儿。下面开始他的真身验明,交手C/CPP/HADOOP

环境介绍:

1,某想 E49 Inter Core i5-3320M CPU@2.6GHz / 2048MB / 128G 某星 SSD

2,VituralBox 三台虚拟机cent2,cent3,cent4。其中cent3是老大

虚拟机配置: 1 core /  2048MB / 10G VMDX(SPLIT=2G)/ CENTOS 6,不启用过量分配。

3,单挑对象简介

  • 纯C:以stdio的fgets作为标准输入,sscanf拆分,在一套循环内完成word count。
  • CPP:以std::cin作为标准输入,未加速,自动空格拆分,用pipe模拟MR,一个读,一个汇总。
  • HADOOP:以CPP为模板做Streaming,HDFS做介质。
  • SPARK:本地LOCAL用单线程、双线程共同测试(虽然CPU是1core)
  • SPARK:AMP最推荐的运载方式,不多言。

4,关联文件,从网上DOWN篇E文小说,复制成100M/500M/1024M,做WORDCOUNT。

5,所有平台做初始配置,不调优。

最终测得结果如下:

结论:

  1. 在单机版上spark与纯C不分伯仲,但也领先了cpp不少。
  2. 在分布式上,的确比hadoop快N倍,真心强,这还是在split 32MB的情况下。
  3. 此次纯c的mmap和OS RawDevice未参与,即便参与估计也就再多给1~3秒,个人感觉spark应该有用到这块一口闷的关键技术。
  4. 此次仅仅是wordcount,谣传k-means效果恐怖,有空再测试一把。
  5. 由于1核VM,基本上跑起来CPU就是100%。不过SPARK有个特点就是SYS%用的少,这应该就是纯MEM计算的特征。

心得:

  1. 集群搭建不难,难在lamada编程,真心考验脑力,有时感觉比ML还复杂,多少理解不能,但还得去学,应该蛮有意思的。
  2. python的同学别高兴太早,关键代码还是要lamada编程。
  3. java和scala同学的福音,自带N多MLLIB。
  4. 中文版调优文档较少,国外论坛和WIKI较少,还是得自学。希望国内有人开个BBS组织一下。^_^

Spark集群搭建简配+它到底有多快?【单挑纯C/CPP/HADOOP】的更多相关文章

  1. Spark集群搭建(local、standalone、yarn)

    Spark集群搭建 local本地模式 下载安装包解压即可使用,测试(2.2版本)./bin/spark-submit --class org.apache.spark.examples.SparkP ...

  2. (四)Spark集群搭建-Java&Python版Spark

    Spark集群搭建 视频教程 1.优酷 2.YouTube 安装scala环境 下载地址http://www.scala-lang.org/download/ 上传scala-2.10.5.tgz到m ...

  3. Spark集群搭建简要

    Spark集群搭建 1 Spark编译 1.1 下载源代码 git clone git://github.com/apache/spark.git -b branch-1.6 1.2 修改pom文件 ...

  4. Spark集群搭建中的问题

    参照<Spark实战高手之路>学习的,书籍电子版在51CTO网站 资料链接 Hadoop下载[链接](http://archive.apache.org/dist/hadoop/core/ ...

  5. Spark集群搭建_Standalone

    2017年3月1日, 星期三 Spark集群搭建_Standalone Driver:    node1    Worker:  node2    Worker:  node3 1.下载安装 下载地址 ...

  6. Spark集群搭建_YARN

    2017年3月1日, 星期三 Spark集群搭建_YARN 前提:参考Spark集群搭建_Standalone   1.修改spark中conf中的spark-env.sh   2.Spark on ...

  7. spark集群搭建

    文中的所有操作都是在之前的文章scala的安装及使用文章基础上建立的,重复操作已经简写: 配置中使用了master01.slave01.slave02.slave03: 一.虚拟机中操作(启动网卡)s ...

  8. Spark 集群搭建

    0. 说明 Spark 集群搭建 [集群规划] 服务器主机名 ip 节点配置 s101 192.168.23.101 Master s102 192.168.23.102 Worker s103 19 ...

  9. Hadoop集群+Spark集群搭建(一篇文章就够了)

    本文档环境基于ubuntu16.04版本,(转发请注明出处:http://www.cnblogs.com/zhangyongli2011/ 如发现有错,请留言,谢谢) 一.准备 1.1 软件版本 Ub ...

随机推荐

  1. 七牛对用户使用webp图片格式的使用建议

    Qiniu 七牛问题解答 Chrome浏览器是可打开WebP格式的.可是并非全部的浏览器都支持webp格式,比如360.ie等浏览器是不支持的. WebP格式,谷歌(google)开发的一种旨在加快图 ...

  2. 【Bootstrap】自己主动去适应PC、平面、手机Bootstrap网格系统

    酒吧格英语作为一门系统"grid systems",也有人翻译成"网络格系统".使用固定格子设计布局,其风格整齐而简洁,在二战结束后人气,流风格之中的一个. 1 ...

  3. charles抓包

    charles使用教程指南 charles使用教程指南 前言 移动APP抓包 PC端抓包 查看模式 其他功能 问题汇总 1. 前言: Charles是一款抓包修改工具,相比起burp,charles具 ...

  4. 我学的是设计模式的视频教程——辛格尔顿,生成器VS工厂方法

    课程视频 单例模式         建造者VS工厂方法                      课程笔记 课程笔记 课程代码 课程代码 新课程火热报名中 课程介绍 版权声明:本文博客原创文章,博客, ...

  5. 一个轻量级rest服务器

    RestServer直接发布数据库为json格式提供方法 RestSerRestServer直接发布数据库为json格式 支持MySQL,SqlServer,Oracle直接发布为Rest服务, 返回 ...

  6. POJ 1631 Bridging signals(LIS 二分法 高速方法)

    Language: Default Bridging signals Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 1076 ...

  7. 刷牙LeetCode思考

    时间已经到了不自觉地,3在五月中旬.今天正式LeetCode自由181刷牙的问题.感觉,以提高他们的算法非常有帮助. 第一个主要的深搜索,广泛搜索,DP他已经掌握7788.也有自己写的代码格公式,使用 ...

  8. UIBezierPath 和 CAShapeLayer 绘画图纸

    五角大楼画一个小圆圈戴: - (void)drawPentagon{ //(1)UIBezierPath对象 UIBezierPath *aPath = [UIBezierPath bezierPat ...

  9. InstallShield安装包中集成第三方安装包的方案选择

    原文:InstallShield安装包中集成第三方安装包的方案选择[转]   我们在制作安装包时,有些情况下会涉及第三方安装的集成,这里将讨论如何调用安装第三方包,以及需要注意的事项. 第三方安装包的 ...

  10. ArcGIS 10 破解安装(win7 64位)

    上一周换了个win7 64位系统,昨天依照各种各样破解方法装ArcGIS10装了一天,装上之后ArcMap能用,可是装的AO sdk不能用,在VS2008里一拖就报错,确实把我给气坏了.今天早上上班, ...