随笔分类 - 大数据
大数据平台Spark、Hadoop、Hive等
摘要:转自局部敏感哈希(Locality-Sensitive Hashing, LSH) 一、局部敏感哈希LSH 在很多应用领域中,我们面对和需要处理的数据往往是海量并且具有很高的维度,怎样快速地从海量的高维数据集合中找到与某个数据最相似(距离最近)的一个数据或多个数据成为了一个难点和问题。如果是低维的小
阅读全文
摘要:Combiner编程(可选步骤,视情况而定!) combiner最基本是实现本地key的归并,combiner具有类似本地的reduce功能。 如果不用combiner,那么所有的结果都是reduce完成,效率会相对低下。使用combiner,先完成的map会在本地聚合,提升速度。 注意:Combi
阅读全文
摘要:shuffle阶段其实就是多个map任务的输出,按照不同的分区,通过网络copy到不同的reduce节点上。 Map端: 1、在map端首先接触的是InputSplit,在InputSplit中含有DataNode中的数据,每一个InputSplit都会分配一个Mapper任务,Mapper任务结束
阅读全文
摘要:MapReduce简介 MapReduce执行流程 MapReduce原理 MapReduce的执行步骤: 1、Map任务处理 1.1 读取HDFS中的文件。每一行解析成一个<k,v>。每一个键值对调用一次map函数。 <0,hello you> <10,hello me> 1.2 覆盖map(),
阅读全文
摘要:Spark的核心是建立在统一的抽象RDD之上,使得Spark的各个组件可以无缝进行集成,在同一个应用程序中完成大数据计算任务。RDD的设计理念源自AMP实验室发表的论文《Resilient Distributed Datasets: A Fault-Tolerant Abstraction for
阅读全文
摘要:基本概念 在具体讲解Spark运行架构之前,需要先了解几个重要的概念: RDD:是弹性分布式数据集(Resilient Distributed Dataset)的简称,是分布式内存的一个抽象概念,提供了一种高度受限的共享内存模型; DAG:是Directed Acyclic Graph(有向无环图)
阅读全文
摘要:函数组合 让我们创建两个函数: def f(s: String) = "f(" + s + ")" def g(s: String) = "g(" + s + ")" compose compose 组合其他函数形成一个新的函数 f(g(x)) val fComposeG = f _ compose
阅读全文
摘要:基本数据结构 Scala提供了一些不错的集合。 数组 Array 数组是有序的,可以包含重复项,并且可变。 val numbers = Array(1, 2, 3, 4, 5, 1, 2, 3, 4, 5) numbers(3) = 10 numbers // Array(1, 2, 3, 10,
阅读全文
摘要:apply() 方法 apply方法是Scala提供的一个语法糖 类名+括号,调用对象的apply方法 对象名+括号,调用类的apply方法 对apply方法的简单测试:(其中,带 new -- class ApplyTest,不带 new -- object ApplyTest) class Ap
阅读全文
摘要:Scala语言是一种面向对象语言,结合了命令式(imperative)和函数式(functional)编程风格,其设计理念是创造一种更好地支持组件的语言。 特性 多范式(Multi-Paradigm)编程语言,类似Java、C#; 继承面向对象编程和函数式编程的特性; 面向对象:[1]. 子类继承,
阅读全文
摘要:Hive 介绍 Hive 是基于Hadoop 构建的一套数据仓库分析系统,它提供了丰富的SQL查询方式来分析存储在Hadoop 分布式文件系统中的数据,可以将结构化的数据文件映射为一张数据库表,并提供完整的SQL查询功能,可以将SQL语句转换为MapReduce任务进行运行,通过自己的SQL 去查询
阅读全文
摘要:总算可以开始写第一篇技术博客了,就从学习Spark开始吧。之前阅读了很多关于Spark的文章,对Spark的工作机制及编程模型有了一定了解,下面把Spark中对RDD的常用操作函数做一下总结,以pyspark库为例。 RDD 的操作函数(operation)主要分为2种类型 Transformati
阅读全文