Spark && Hadoop
白 杨
这个作者很懒,什么都没留下…
展开
-
RadixTree(基数树)
1. 基数树概述对于长整型数据的映射,如何解决Hash冲突和Hash表大小的设计是一个很头疼的问题。radix树就是针对这种稀疏的长整型数据查找,能快速且节省空间地完成映射。借助于Radix树,我们可以实现对于长整型数据类型的路由。利用radix树可以根据一个长整型(比如一个长ID)快速查找到其对应的对象指针。这比用hash映射来的简单,也更节省空间,使用hash映射hash函数难以设计,不恰原创 2015-11-06 07:40:30 · 4419 阅读 · 0 评论 -
影响Spark输出RDD分区的操作函数
1. 会影响到Spark输出RDD分区(partitioner)的操作cogroup, groupWith, join, leftOuterJoin, rightOuterJoin, groupByKey, reduceByKey, combineByKey, partitionBy, sort, mapValues(如果父RDD存在partitioner), flatMapValues(如果父RD原创 2016-05-01 10:05:13 · 1439 阅读 · 0 评论 -
fold/foldLeft/foldRight区别和联系
1. fold介绍从本质上说,fold函数将一种格式的输入数据转化成另外一种格式返回。fold, foldLeft和foldRight这三个函数除了有一点点不同外,做的事情差不多。我将在下文解释它们的共同点并解释它们的不同点。 我将从一个简单的例子开始,用fold计算一系列整型的和。val numbers = List(5, 4, 8, 6, 2)numbers.fold(0) { (z, i)原创 2016-05-01 09:59:30 · 5525 阅读 · 0 评论 -
GraphX源码解析(Graph构建过程)
1. Graph构建Graph对象是用户的操作入口,主要包含edge和vertex两部分。边是由点组成,所以边中所有的点就是点的全集,但这个全集包含了重复的点,去重后就是VertexRDD。1.1 构建图的方法从边的集合构建图(Graph.fromEdges)def fromEdges[VD: ClassTag, ED: ClassTag]( edges: RDD[Edge[ED]],原创 2016-04-06 15:58:49 · 5530 阅读 · 0 评论 -
PageRank算法原理剖析及Spark实现
1. 什么是PageRankPageRank对网页排名的算法,曾是Google发家致富的法宝。PageRank算法计算每一个网页的PageRank值,然后根据这个值的大小对网页的重要性进行排序。2. 简单PageRank计算首先,将Web做如下抽象:将每个网页抽象成一个节点;如果一个页面AA有链接直接链向BB,则存在一条有向边从AA到BB(多个相同链接不重复计算边)。因此,整个Web被抽象为一原创 2015-12-10 20:21:38 · 9863 阅读 · 5 评论 -
使用sbt构建IndexedRDD开发环境
1. 开发环境 软件 版本号 Ubuntu 15.04 JDK 1.7.0_79 Scala 2.10.4 spark-assembly 1.3.1-hadoop2.4.0注意:这里spark-assembly-1.31.-hadoop2.4.0必须要用scala2.10.4,用其他高版本会报错。2. linux 下安装sbt && 配置Intellij环境原创 2015-11-06 17:03:54 · 1109 阅读 · 0 评论 -
Hadoop2.7.1 集群部署及自动化脚本
实验环境操作系统:ubuntu 14.04 64位 主机名 IP namenode 10.107.12.10 datanode1 10.107.12.20 datanode2 10.107.12.50 datanode3 10.107.12.60jdk 安装实验安装的是jdk1.7.0_71版本,具体安装步骤及环境变量设置参考这里。SSH 无密登录下面是我写的原创 2015-10-30 00:06:56 · 10534 阅读 · 4 评论 -
分布式图并行计算框架:PowerGraph
1. About Joseph E.Conzalez首先关于约瑟夫,他目前在伯克利AMP实验室做博士后,这是他博客的一个截图。在他博客中写道,下个月即2016年1月份将要当任伯克利的助理教授。在看了他的简历后,发现他居然也是Spark Graphx的第一作者,并且Graphx这篇论论文也是发表在OSDI上,非常牛逼!戳这里,是他的博客地址。2. About OSDI第二个要介绍的是关于OSDI这个会原创 2015-12-16 22:39:01 · 22899 阅读 · 2 评论 -
GraphLab 安装在Hadoop集群
0. 写在前面感觉GraphLab非常惊艳,可以在python环境当中非常好地使用。但它在接受了两轮投资之后已经由原来的免费项目变成了一个付费试用的项目。但是个人和学术使用依然可以申请。伴随着这个商业化的过程,graphlab.org也变成了dato.com。下面详细介绍GraphLab单机测试和集群部署的过程。1. 实验环境 系统 主机名 IP地址 内存 CPU Ubuntu原创 2015-11-29 08:43:48 · 3812 阅读 · 3 评论 -
spark 1.5.1 集群部署
实验环境操作系统:ubuntu 14.04 64位 主机名 IP Master 10.107.12.10 Worker1 10.107.12.20 Worker2 10.107.12.50 Worker3 10.107.12.60JDK 安装实验安装的是jdk1.7.0_71版本,具体安装步骤及环境变量设置参考这里。SSH 无密登录下面是我写的一个自动化SSH原创 2015-11-01 19:34:52 · 7083 阅读 · 0 评论 -
HDFS 常用文件操作命令
前言HDFS命令基本格式:hadoop fs -cmd < args >ls 命令hadoop fs -ls /列出hdfs文件系统根目录下的目录和文件hadoop fs -ls -R /列出hdfs文件系统所有的目录和文件put 命令hadoop fs -put < local file > < hdfs file >hdfs file的父目录一定要存在,否则命令不会执行hadoop fs原创 2015-11-01 19:52:01 · 43130 阅读 · 0 评论 -
高效细粒度更新的RDD:Spark IndexedRDD
1. 概述由于Spark RDD的Immutable特性,如果想要更新RDD里面的数据,就要对RDD中的每个Partition进行一次transformation,生成一个新的RDD。而对于Streaming Aggregation(聚合)以及Incremental(增量) Algorithm之类的算法,每次迭代都会更新少量数据,但是需要迭代非常多的次数,每一次对RDD的更新代价相对较大。针对这个问原创 2015-11-08 15:18:05 · 4477 阅读 · 7 评论 -
IndexedRDD 源码解读一
1. IndexedRDDPartion构建过程调用构建函数 val vp = IndexedRDDPartition(Iterator((0L, 1), (1L, 1)))这里会调用IndexedRDDPartition 的apply 方法。 def apply[V: ClassTag](iter: Iterator[(Id, V)]): IndexedRDDPartition原创 2015-11-16 19:19:33 · 1007 阅读 · 0 评论 -
Graphx 最短路径源码解析
最短路径测试代码下面主要是对Spark图计算框架GraphX中的单源点最短路径的源码进行解析。 GraphX最短路径求解中使用了Pregel模型,这是一个非常高效的图计算模型。但目前最短路径有如下限制:1. 只能用于无向图;2. 只能用于非带权图(权值相等);3. 利用的算法是迪杰斯特拉求解最短路径。原创 2015-11-24 08:32:49 · 5404 阅读 · 7 评论