摘要: 在MapReduce框架中,shuffle是连接Map和Reduce之间的桥梁,Map的输出要用到Reduce中必须经过shuffle这个环节,shuffle的性能高低直接影响了整个程序的性能和吞吐量。Spark作为MapReduce框架的一种实现,自然也实现了shuffle的逻辑。 Shuffle 阅读全文
posted @ 2016-11-07 15:46 bonelee 阅读(12513) 评论(1) 推荐(0) 编辑
摘要: RDD操作闭包外部变量原则 RDD相关操作都需要传入自定义闭包函数(closure),如果这个函数需要访问外部变量,那么需要遵循一定的规则,否则会抛出运行时异常。闭包函数传入到节点时,需要经过下面的步骤: 注意:外部变量在闭包内的修改不会被反馈到驱动程序。 简而言之,就是通过网络,传递函数,然后执行 阅读全文
posted @ 2016-11-07 15:15 bonelee 阅读(1252) 评论(0) 推荐(0) 编辑
摘要: Accumulator简介 Accumulator是spark提供的累加器,顾名思义,该变量只能够增加。 只有driver能获取到Accumulator的值(使用value方法),Task只能对其做增加操作(使用 +=)。你也可以在为Accumulator命名(不支持Python),这样就会在spa 阅读全文
posted @ 2016-11-07 15:09 bonelee 阅读(6098) 评论(1) 推荐(0) 编辑
摘要: 通过spark的action操作函数:collect函数可以提取出所有rdd里的数据项! 阅读全文
posted @ 2016-11-06 10:03 bonelee 阅读(6770) 评论(0) 推荐(0) 编辑
摘要: spark dirver本质是一个spark集群的驱动程序,你要调用spark集群的计算功能,必须要通过它! 然后,在tmp下放置一个文件tmp.txt,运行: ./bin/spark-submit my_example/test.py 即可看到效果! 注意:从根本上说,spark sumbit也是 阅读全文
posted @ 2016-11-05 19:21 bonelee 阅读(546) 评论(0) 推荐(0) 编辑
摘要: 在Ubuntu下,安装ipython很简单: $sudo apt-get install ipython 在bash env中添加变量: 再次使用,已经是ipython了! 阅读全文
posted @ 2016-11-05 18:51 bonelee 阅读(1721) 评论(0) 推荐(0) 编辑
摘要: 采用快排思路来做,上面的输出: 注意:k个元素未必是有序的! 阅读全文
posted @ 2016-11-03 09:01 bonelee 阅读(236) 评论(0) 推荐(0) 编辑
摘要: 发现自己写起来很不顺手,得从最右边找出pivot元素是最方便的! 以最左边的元素作为pivot的代码,看到好多坑: 输出: partition有三种思路写法: 阅读全文
posted @ 2016-11-02 13:14 bonelee 阅读(209) 评论(0) 推荐(0) 编辑
摘要: 通过spark为ES导入搜索数据 阅读全文
posted @ 2016-10-20 17:30 bonelee 阅读(6185) 评论(0) 推荐(0) 编辑
摘要: 静态成员变量不占用类的内存空间。 阅读全文
posted @ 2016-10-12 11:39 bonelee 阅读(1973) 评论(1) 推荐(0) 编辑