数据处理

Spark Streaming官方文档翻译基本概念之输出操作

眉间皱痕 提交于 2020-01-02 21:56:47
Spark Streaming官方文档翻译Spark Streaming总览 Spark Streaming官方文档翻译基本概念之初始化与Dstream Spark Streaming官方文档翻译基本概念之输入数据流和接收器 Spark Streaming官方文档翻译基本概念之转换操作 Spark Streaming官方文档翻译基本概念之输出操作 Spark Streaming官方文档翻译基本概念之sql与Mllib Spark Streaming官方文档基本概念之缓存与检查点 Spark Streaming官方文档翻译基本概念之累加器、广播变量和检查点 Spark Streaming官方文档翻译Spark Streaming应用之部署,升级,监控 Spark Streaming官方文档翻译Spark Streaming性能调优 Spark Streaming官方文档翻译Spark Streaming容错 Spark Streaming官方文档翻译Spark Streaming +Kafka 集成指南 Spark Streaming官方文档翻译Spark Streaming自定义接收器 基本概念 DStreams上的输出操作(Output Operations on DStreams) 输出操作允许将DStream的数据推送到外部系统,如数据库或文件系统

Mapreduce实例——Map端join

江枫思渺然 提交于 2020-01-02 19:18:19
原理 MapReduce 提供了表连接操作其中包括 Map 端 join 、 Reduce 端 join 还有单表连接,现在我们要讨论的是 Map 端 join , Map 端 join 是指数据到达 map 处理函数之前进行合并的,效率要远远高于 Reduce 端 join ,因为 Reduce 端 join 是把所有的数据都经过 Shuffle ,非常消耗资源。 1.Map 端 join 的使用场景:一张表数据十分小、一张表数据很大。 Map 端 join 是针对以上场景进行的优化:将小表中的数据全部加载到内存,按关键字建立索引。大表中的数据作为 map 的输入,对 map() 函数每一对 <key,value> 输入,都能够方便地和已加载到内存的小数据进行连接。把连接结果按 key 输出,经过 shuffle 阶段, reduce 端得到的就是已经按 key 分组并且连接好了的数据。 为了支持文件的复制, Hadoop 提供了一个类 DistributedCache ,使用该类的方法如下: ( 1 )用户使用静态方法 DistributedCache.addCacheFile() 指定要复制的文件,它的参数是文件的 URI (如果是 HDFS 上的文件,可以这样: hdfs://namenode:9000/home/XXX/file ,其中 9000 是自己配置的

大数据开发必须掌握的五大核心技术

痴心易碎 提交于 2020-01-02 17:07:53
大数据技术的体系庞大且复杂,基础的技术包含数据的采集、数据预处理、分布式存储、NoSQL数据库、数据仓库、机器学习、并行计算、可视化等各种技术范畴和不同的技术层面。首先给出一个通用化的大数据处理框架,主要分为下面几个方面:数据采集与预处理、数据存储、数据清洗、数据查询分析和数据可视化。 一、数据采集与预处理 对于各种来源的数据,包括移动互联网数据、社交网络的数据等,这些结构化和非结构化的海量数据是零散的,也就是所谓的数据孤岛,此时的这些数据并没有什么意义,数据采集就是将这些数据写入数据仓库中,把零散的数据整合在一起,对这些数据综合起来进行分析。数据采集包括文件日志的采集、数据库日志的采集、关系型数据库的接入和应用程序的接入等。在数据量比较小的时候,可以写个定时的脚本将日志写入存储系统,但随着数据量的增长,这些方法无法提供数据安全保障,并且运维困难,需要更强壮的解决方案。 Flume NG作为实时日志收集系统,支持在日志系统中定制各类数据发送方,用于收集数据,同时,对数据进行简单处理,并写到各种数据接收方(比如文本,HDFS,Hbase等)。Flume NG采用的是三层架构:Agent层,Collector层和Store层,每一层均可水平拓展。其中Agent包含Source,Channel和 Sink,source用来消费(收集)数据源到channel组件中

pandas基础(3)_数据处理

南楼画角 提交于 2020-01-01 22:45:58
1:删除重复数据 使用 duplicate() 函数检测重复的行,返回元素为 bool 类型的 Series 对象,每个元素对应一行,如果该行不是第一次出现,则元素为 true >>> df =DataFrame(np.random.randint(0,150,size=(6,3)),columns=['Chinese','maths','Chinese'],index=['zhangsan','lisi','wangwu','lisi','xiaowu','zhangsan']) >>> df Chinese maths Chinese zhangsan 17 58 70 lisi 88 20 137 wangwu 130 29 57 lisi 71 20 65 xiaowu 133 60 6 zhangsan 96 48 60 >>> df.duplicated() zhangsan False lisi False wangwu False lisi False xiaowu False zhangsan False dtype: bool >>> df =DataFrame(np.random.randint(0,2,size=(6,2)),columns=['Chinese','maths'],index=['zhangsan','lisi','wangwu','lisi

数据处理之缺失值处理

谁都会走 提交于 2019-12-31 22:45:29
#-*- coding: utf-8 -*- #概念:由于某些原因,导致数据中的某些列的值缺失,这种情况可能是正常的,也可能是不正常的。我们可以选择不处理、补齐、或删除对应的行 #dropna函数作用:去除数据结构中值为空的数据。 #dropna函数语法:dropna() from pandas import read_csv df = read_csv("D:/workspaces/python/pythonStudy/9.csv",encoding='utf-8') #查看导入结果,可以看到有的列的值是空的NaN #有些情况,我们可能有这样的需求:如果某个列的值是某个字符串,那么,我们也认为它是空的: df = read_csv("D:/workspaces/python/pythonStudy/9.csv", na_values=['null']) #观察得到的df对象,可以看到csv文件中的null,读取出来也是NaN了 #找出空值的位置: isNa = df.isnull() #返回的是一个数据框对象,元素值都是布尔类型的 #获取空值所在的行 df[isNa.any(axis=1)] #只要某一行,有任意一个值为空,就会返回该行,执行结果是一个数据框,里面都是包含空值的行 df[isNa[['key']].any(axis=1)] #返回名称为key的列存在空值的行 df

Hadoop学习笔记(一)——编译安装和配置

蓝咒 提交于 2019-12-31 16:40:09
近期工作调动。打算补一下大数据处理的知识。可能会陆续涉及hadoop、mongodb、ddbs等。 首先Apache提供二进制的Hadoop版本号是32位的。在启动时总是有警告,所以想自己编译一遍。部分内容来源于网络。 0、环境说明: 操作系统环境: ububtu 14.04 LTS 64位操作系统 JDK环境: java version "1.7.0_55" Java(TM) SE Runtime Environment (build 1.7.0_55-b13) Java HotSpot(TM) 64-Bit Server VM (build 24.55-b03, mixed mode) 1、安装JDK 从ORACLE站点下载最新版本号JDK http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html。选择jdk-7uXX-linux-x64.tar.gz下载。 用tar -zxvf 命令解压,解压后考到一个目录,我放到了/usr/lib/jvm。因为是測试机,仅仅有我一个人用我把JDK的环境变量配置到了 /etc/profile也能够配置到~/.bashrc加入例如以下内容 export JAVA_HOME=/usr/lib/jvm export JRE_HOME=

hadoop(三)

允我心安 提交于 2019-12-31 01:11:42
hadoop(三) 1.对MapReduce的认识   MapReduce是运行在yarn上面的一个分布式运算框架,它是用来解决海量的分布式运算的.对于MapReduce来说,我们可以把它分成两部分来看: Map:负责分,就是把复杂的任务分解为若干个"简单的任务"即 把数据或者计算的规模相对于任务要大大的缩小 会把任务分配到存放到所需数据的节点上面运行(也就是就近原则) 这些任务可以并行计算 Reduce:负责对map阶段的汇总 1.1 MapReduce的设计思想   mapreduce的核心功能是将用户编写的业务逻辑代码和自带的默认组件整合成一个完整的分布式运算程序,并运行在一个hadoop集群上面. Hadoop MapReduce构建思想体现在下面的几个方面 对大数据处理采取分而治之   对相互间不具有计算依赖关系的大数据,实现并行最自然的办法就是采取分而治之的策略。并行计算的第一个重要问题是如何划分计算任务或者计算数据以 便对划分的子任务或数据块同时进行计算。不可分拆的计算任务或相互间有依赖 关系的数据无法进行并行计算! 构建抽象模型: Map和Reduce MapReduce 借鉴了函数式语言中的思想,用 Map 和 Reduce 两个函数提供了 高层的并行编程抽象模型。 Map: 对一组数据元素进行某种重复式的处理; Reduce: 对 Map

hadoop MapReduce

為{幸葍}努か 提交于 2019-12-31 01:11:28
简单介绍 官方给出的介绍是hadoop MR是一个用于轻松编写以一种可靠的、容错的方式在商业化硬件上的大型集群上并行处理大量数据的应用程序的软件框架。 MR任务通常会先把输入的数据集切分成独立的块(可以看成是一个较小数据集),然后这些块由map任务以完全并行的方式的去处理。map任务输出的结果排完序之后会交给reduce去处理得到最终结果。MR负责调度,监听并重新执行失败的任务,它的输入和输入都存储在hdfs上。 MR框架由一个主节点 ResourceManager , 一个或多个从节点 NodeManager 以及每个应用程序独有的 MRAppMaster 组成。通常而言, MR 框架和hdfs运行在一组相同的的节点,即执行计算任务和负责数据存储的节点是同一个,这样的配置允许MR能够在存在数据的节点上高效地调度任务。 对于MR程序的开发,开发者只需要指定输入输出路径,通过实现适当的接口、抽象类以及一些其他的任务参数便可以完成。 任务流程 这里以MR的inputs-outputs、map、reducet三个方面来深入了解MR任务流程。 Inputs-outputs MR框架仅操作 <key, value> 形式的键值对,即MR把输入的数据视为一组<key, value>,并输出一组<key, value>。值得一提的是输入和输出的<key, value>在数据类型上并没有任何联系。

hadoop(二MapReduce)

不羁的心 提交于 2019-12-31 01:11:13
hadoop(二MapReduce) 介绍 MapReduce:其实就是把数据分开处理后再将数据合在一起. Map负责“分”,即把复杂的任务分解为若干个“简单的任务”来并行处理。可以进行拆分的前提是这些小任务可以并行计算,彼此间几乎没有依赖关系。 Reduce负责“合”,即对map阶段的结果进行全局汇总。 MapReduce运行在yarn集群 MapReduce中定义了如下的 Map 和 Reduce 两个抽象的编程接口,由用户去编程 实现 .Map和Reduce, MapReduce处理的数据类型是 键值对 代码处理 MapReduce 的开发一共有八个步骤, 其中 Map 阶段分为 2 个步骤,Shuwle 阶段 4 个步 骤,Reduce 阶段分为 2 个步骤 ​ Map 阶段 2 个步骤 设置 InputFormat 类, 将数据切分为 Key-Value(K1和V1) 对, 输入到第二步 自定义 Map 逻辑, 将第一步的结果转换成另外的 Key-Value(K2和V2) 对, 输出结果 Shuwle 阶段 4 个步骤 对输出的 Key-Value 对进行分区 对不同分区的数据按照相同的 Key 排序 (可选) 对分组过的数据初步规约, 降低数据的网络拷贝 对数据进行分组, 相同 Key 的 Value 放入一个集合中 Reduce 阶段 2 个步骤 对多个 Map

hadoop之MapReduce学习

淺唱寂寞╮ 提交于 2019-12-31 01:11:01
为什么需要MapReduce 进行分析数据,计算方便和复用性强;而且是文件级别的 进程包括三个 mrappmaster:负责整个程序管理 maptask:负责map阶段的整个过程 reducemask:负责reduce阶段的整个过程 为什么需要把jar包上传到集群上? 因为不止一个节点需要用到jar包,放到本地不能够被使用,因此放到集群上, namenode会告诉需要的节点,jar包所在位置 hadoop解决问题? 主要解决,海量数据的存储和海量数据的分析计算问题。 Hadoop三大发行版本? 三大发行版本: Apache、Cloudera、Hortonworks Apache版本最原始(最基础)的版本,对于入门学习最好。 Cloudera在大型互联网企业中用的较多。主要为CDH Hortonworks文档较好。 Hadoop的优势 1、高可靠2、高扩展性3、高效性4、高容错性 Hadoop组成 1)Hadoop HDFS:一个高可靠、高吞吐量的分布式文件系统。 2)Hadoop MapReduce:一个分布式的离线并行计算框架。 3)Hadoop YARN:作业调度与集群资源管理的框架。 4)Hadoop Common:支持其他模块的工具模块。 yarn架构 1)ResourceManager(rm)、2)NodeManager(nm)、3)ApplicationMaster、4