数据处理

Apache Spark

风流意气都作罢 提交于 2020-01-26 05:49:14
Apache Spark 一、概述 官方地址: http://spark.apache.org/ Lightning-fast unified analytics engine : 快如闪电的统一分析引擎 快如闪电: Spark基于内存式计算,分布式并行计算框架。不同于MapReduce框架,基于磁盘式计算,将Job粗粒度的分为MapTask、ReduceTask,并且必须通过网络进行数据交互。 Spark任务执行时,实际上会将一个复杂的科学计算划分一个个的Stage(阶段),每一个Stage都支持分布式的并行计算 Spark计算时,每一个Stage计算结果都可以进行缓存,可以非常容易的进行故障恢复和结果重用 统一: 集结了大数据处理的主流方案 批处理(RDD:代替MapReduce) 流处理(Streaming:代替Storm、Kafka Streaming) 机器学习(Machine Learing: 代替Mahout) 交互式查询(SQL:代替Hive) 图形计算(GraphX) 分析引擎:代替MapReduce 特点 速度: 相对于MapReduce的计算,效率极高。Spark将复杂的Job分解为若个Stage,每一个Stage都可以进行分布式并行计算,称为DAG(Directed Acyclic Graph)有向无环图,类似于Kafka Streaming

大数据技术原理与应用之【大数据处理架构Hadoop】习题

六眼飞鱼酱① 提交于 2020-01-26 03:53:11
1.试述hadoop和谷歌的mapreduce、gfs等技术之间的关系 答: Hadoop的核心是分布式文件系统HDFS和MapReduce,HDFS是谷歌文件系统GFS的开源实现,MapReduces是针对谷歌MapReduce的开源实现。 2.试述Hadoop具有哪些特性。 答: 高可靠性,高效性,高可扩展性,高容错性,成本低,运行在Linux平台,支持多种编程语言 3.试述Hadoop在各个领域的应用情况。 答:2007年,雅虎在Sunnyvale总部建立了M45——一个包含了4000个处理器和1.5PB容量的Hadooop集群系统; Facebook主要将Hadoop平台用于日志处理,推荐系统和数据仓库等方面; 百度主要使用Hadoop于日志的存储和统计、网页数据的分析和挖掘、商业分析、在线数据反馈、网页聚类等。 4.试述Hadoop的项目结构以及每个部分的具体功能。 答: Commeon 是为Hadoop其他子项目提供支持的常用工具,主要包括文件系统、RPC和串行化库。 Avro 是为Hadoop的子项目,用于数据序列化的系统,提供了丰富的数据结构类型、快速可压缩的二进制数据格式、存储持续性数据的文件集、远程调用的功能和简单的动态语言集成功能。 HDFS 是Hadoop项目的两个核心之一,它是针对谷歌文件系统的开源实现。 HBase 是一个提高可靠性、高性能、可伸缩

大数据之Hadoop环境搭建

好久不见. 提交于 2020-01-26 03:38:41
Hadoop由GNU / Linux平台及其版本支持。因此,我们必须安装一个Linux操作系统来设置Hadoop环境。如果您有除Linux以外的操作系统,您可以在其中安装Virtualbox软件,并在Virtualbox内部安装Linux。 安装前设置 在将Hadoop安装到Linux环境之前,我们需要使用ssh(Secure Shell)来设置Linux。按照以下步骤设置Linux环境。 创建用户 在开始时,建议为Hadoop创建一个单独的用户,以便将Hadoop文件系统与Unix文件系统隔离。按照以下步骤创建用户: 使用命令“su”打开根。 使用命令“useradd username”从root帐户创建用户。 现在您可以使用命令“su username”打开现有的用户帐户。 打开Linux终端并键入以下命令以创建用户。 $ su password: # useradd hadoop # passwd hadoop New passwd: Retype new passwd SSH设置和密钥生成 需要SSH设置在集群上执行不同的操作,如启动,停止,分布式守护程序shell操作。要对Hadoop的不同用户进行身份验证,需要为Hadoop用户提供公钥/私钥对,并与不同的用户共享。 以下命令用于使用SSH生成键值对。将公共密钥表单id_rsa.pub复制到authorized_keys

Hadoop的MapReduce

人走茶凉 提交于 2020-01-26 02:11:33
MapReduce是一种计算模型,被广泛使用的开源大数据技术Hadoop中实现了这种模型。 对于Hadoop的MapReduce来说,输入和输出都是以 key-value 键值对的形式体现的。在整个map到reduce的过程中,数据都是以这种形式表现。 (input) <k1, v1> -> map -> <k2, v2> -> reduce -> <k3, v3> (output) hadoop的MapReduce在执行逻辑上分为多个组件,不同的组件解决不同的问题。 Mapper Mapper映射输入的k/v到新的k/v,新的k/v是中间结果数据,类型可以与原始输入的k/v不一致,并且可以选择映射成多个新的k/v或者直接吞没输入,不输出任何数据。Map任务的数量一般由输入数据划分的数量决定, Mapper阶段的输出作为Reducer输入前被排序,如果没有Reducer阶段,输出将不会被排序。 Combiner Combiner可以在Map任务输出结果后,就地介入直接对当前节点上的Map结果进行组合,在数据流入到Reduce阶段前提前缩减数据量。 Reducer Reducer以Mapper阶段的输出为输入,提炼聚合出所需要的结果。在Hadoop的的MapReduce实现中,reduce操作接受的输入是key/list的形式,共享同一个key的多个数据被传递给reduce操作。

mitmproxy抓取pc接口及数据处理

喜你入骨 提交于 2020-01-26 01:17:55
前边已经写好了一个请求对象和返回对象,但是大家是否发现,即使我们通过一系列处理之后,好像还是没有得到我们想要的,我们现在仅仅是说吧这个东西运用于监听或者说抓包,也就是在我们的测试过程中,而且测试过程中更多的是用于我们内部的http或者说其他移动端,现在想测试我们web端的接口行不行呢,答案是,当然不行的,因为没有设置代理,那么怎么在web端设置代理呢,这里就需要简单进行一个设置 其实这里就可以抓取到数据了,但是肯定告诉你不安全,安装个证书即可,浏览器mitm.it,安装windows证书,一顿下一步,密码为空,然后就会出现下图,操作浏览器,例如百度 各种八卦出现,抓取pc接口成功,这时候整体就已经能都串联起来了,不过还是存在一定的问题,如果测接口时,我就想抓某个url的地址,因为我在测接口或者调试的时候不可能只有url,特别是浏览器会有很多其他的东西存在,咋整? 可见,上边我们已经拿到了request的url,那么我们可不可以使用与response的url呢,也就是说我下载拿request的url无外乎我们调试的时候request——url下的响应数据,更新代码 from mitmproxy import http class GetData(object): def request(self,flow): request_data = flow.request self

spark学习13(spark RDD)

雨燕双飞 提交于 2020-01-25 22:37:29
RDD及其特点 1)RDD(Resillient Distributed Dataset)弹性分布式数据集,是spark提供的核心抽象。它代表一个不可变、可分区、里面的元素可并行计算的集合 2)RDD在抽象上来说是一种元素集合,包含了数据。它是被分区的,分为多个分区,每个分区分布在集群中的不同节点上,从而让RDD中的数据可以被并行操作(分布式数据集) 3)RDD通常通过hadoop上的文件,即hdfs文件或者hive表来进行创建,有时也可以通过应用程序中的集合来创建。 4)RDD最重要的特性就是提供了容错性,可以自动从节点失败中恢复过来,即某节点上的RDD partition,因为节点故障,导致数据丢了,那么RDD会自动通过自己数据来源重新计算该partition,这一切对使用者是透明的 5)RDD的数据默认情况下存在内存中,但是在内存资源不足是,spark会自动将RDD数据写入磁盘(弹性) 注意:RDD的每个partition,在spark节点上存储时,默认都是放在内存中的,但是如果说内存放不下这么多数据,比如每个节点最多放5w数据,结果每个partition市10w数据,那么就会把partition中的部分数据写入磁盘,进行保存。而上述这一切,对于用户来说,都是完全透明的,也就是不用去管RDD的数据存放在内存还是磁盘,只要关注你针对RDD来进行计算和处理等操作即可

Hadoop环境搭建之本地运行模式

与世无争的帅哥 提交于 2020-01-25 15:59:14
一、hadoop本地运行模式介绍 默认的模式,无需运行任何守护进程,所有程序都在单个JVM上执行。由于在本机模式下测试和调试MapReduce程序较为方便,因此,这种模式适宜用在开发阶段。 使用本地文件系统,而不是分布式文件系统。 Hadoop不会启动NameNode、DataNode、JobTracker、TaskTracker等守护进程,Map()和Reduce()任务作为同一个进程的不同部分来执行的。 用于对MapReduce程序的逻辑进行调试,确保程序的正确。 所谓默认模式,及安装完jdk及hadoop,配置好相应的环境,及本地模式配置完成。 二、hadoop本地运行模式环境搭建 2.1 创建虚拟机 在本文章中,hadoop的搭建是基于 VMware12 虚拟的 CentOS 6.8 系统,下面来讲解一下如何使用 VMware12 来虚拟一个 Centos 6.8 系统。 1、检查BIOS虚拟化支持 每台电脑进入BIOS的方式都不同,可以查看自己电脑型号,自行百度。 2、新建虚拟机 3、新建虚拟机向导 4、创建虚拟空白光盘 5、安装Linux系统对应的CentOS 64位 6、虚拟机命名和定位磁盘位置 7、处理器配置 虚拟机处理器数量可以根据自己的机器配置来定,点击电脑的属性即可查看。 8、设置内存 这里可以根据自己电脑内存的大小进行设置,我选择2G。 9、网络设置

大数据框架hadoop基础学习教程汇集

萝らか妹 提交于 2020-01-24 17:04:29
Hadoop教程 Hadoop是一个开源框架,它允许在整个集群使用简单编程模型计算机的分布式环境存储并处理大数据。它的目的是从单一的服务器到上千台机器的扩展,每一个台机都可以提供本地计算和存储。 “ 90%的世界数据在过去的几年中产生 ”。由于新技术,设备和类似的社交网站通信装置的出现,人类产生的数据量每年都在迅速增长。美国从一开始的时候到2003年产生的数据量为5十亿千兆字节。如果以堆放的数据磁盘的形式,它可以填补整个足球场。在2011年创建相同数据量只需要两天,在2013年该速率仍在每十分钟极大地增长。虽然生产的所有这些信息是有意义的,处理起来有用的,但是它被忽略了。 Hadoop教程 Hadoop大数据解决方案 Hadoop是什么? Hadoop环境安装设置 Hadoop HDFS Hadoop HDFS操作 Hadoop命令参考 Hadoop MapReduce Hadoop Streaming Hadoop多节点集群 Hadoop介绍快速入门 Hadoop安装 Hadoop HDFS入门 MapReduce简介和入门 Hadoop程序入门实践 理解 MapReducer MapReduce计数器和连接 MapReduce Hadoop程序连接数据 Flume和Sqoop Pig & Hive介绍 OOZIE 五分钟入门学习 来源: CSDN 作者: HAOXUAN168

10个出色的NoSQL数据库

旧城冷巷雨未停 提交于 2020-01-24 07:45:39
10个出色的NoSQL数据库 NoSQL ,泛指非关系型的 数据库 。 虽然NoSQL流行语火起来才短短一年的时间,但是不可否认,现在已经开始了第二代运动。尽管早期的堆栈代码只能算是一种实验,然而现在的系统已经更加的成熟、稳定。不过现在也面临着一个严酷的事实:技术越来越成熟——以至于原来很好的NoSQL数据存储不得不进行重写,也有少数人认为这就是所谓的2.0版本。这里列出一些比较知名的工具,可以为大数据建立快速、可扩展的存储库。 1. Casssandra Cassandra 最初由Facebook开发,后来成了Apache开源项目,它是一个网络社交云计算方面理想的数据库。它集成了其他的流行工具如Solr,现在已经成为一个完全成熟的大型数据存储工具。Cassandra是一个混合型的非关系的数据库,类似于Google的BigTable。其主要功能比Dynomite(分布式的Key-Value存储系统)更丰富,但支持度却不如文档存储MongoDB。Cassandra的主要特点就是它不是一个数据库,而是由一堆数据库节点共同构成的一个分布式网络服务,对Cassandra的一个写操作,会被复制到其他节点上去,而对Cassandra的读操作,也会被路由到某个节点上面去读取。在最近的一次测试中, Netflix建立了一个288个节点的集群 。 2. Lucene/Solr Lucene

主流分布式文件系统对比:区块链分布式技术引发云存储革命?HDFS,GFS,GPFS,FusionStorage,IPFS

依然范特西╮ 提交于 2020-01-24 05:57:32
https://blog.csdn.net/weixin_45494421/article/details/98760782 概要:常见的分布式文件系统有GFS、HDFS等,也有新兴的基于区块链IPFS/Filecoin等。有的广泛应用,有的开始挑战,有的是闭源,有的开源。在不同的领域和不同的计算机发展阶段,它们都对数据存储起到了各自的作用。那么这些分布式文件系统都有什么优缺点?我们应该怎样选择适合自己的解决方案? 一、HDFS:被雅虎开源的分布式文件系统 Hadoop分布式文件系统(HDFS),是一个分布式、可扩展的Hadoop框架,具有高容错、低成本部署优势。HDFS提供对应用程序数据的高吞吐量访问,适用于具有大型数据集的应用程序。HDFS最初是作为Apache Nutch网络搜索引擎项目的基础设施而构建的,现在是Apache Hadoop子项目。 HDFS如何工作?HDFS支持计算节点之间的数据快速传输,文件系统多次复制或复制每个数据,并将副本分发到各个节点,将至少一个副本放在与其他服务器机架不同的服务器上。因此,崩溃的节点上的数据可以在群集中的其他位置找到。这可确保在恢复数据时继续处理。这使得HDFS高容错性。简单来说,HDFS将文件拆分为块,并将它们分布在集群中的节点上。 架构分析:HDFS采用的是主/从架构(master/slave )