大数据
文章平均质量分 91
大数据专栏
杨林伟
像火箭科学家一样思考!
展开
-
FusionInsight概述
文章目录01 引言02 FusionInsight概述2.1 数据湖2.2 FusionInsight为何物?2.3 FusionInsight架构03 文末01 引言最近可能会用到华为的FusionInsight产品,所以预先了解下。02 FusionInsight概述FusionInsight官网地址:https://e.huawei.com/cn/solutions/cloud-computing/big-data2.1 数据湖在了解FusionInsight之前,需要知道什么是数据湖原创 2022-05-31 17:26:40 · 6176 阅读 · 1 评论 -
浅谈数据治理
文章目录01 引言02 为何需要数据治理?2.1 数据治理定义2.2 何为数据治理?03 数据治理设计3.1 数据规则3.1.1 标准3.1.2 模型3.2 数据处理中间层3.2.1 元数据3.2.2 主数据3.3 数据共享04 文末01 引言在之前的一篇博客《细谈数据仓库》我大致讲解了为何需要数据仓库?数据仓库的概念以及分层等。与数据仓库紧密相关联的概念就是 “数据治理” 了,也就是本文要讲的内容。在讲解数据治理前,需要了解一下相关的概念,这里先贴出来 (可以先跳过):元数据(Metadata原创 2022-01-17 10:35:32 · 1399 阅读 · 0 评论 -
细谈数据仓库
文章目录01 前言1.1 数据仓库流程图1.2 数据仓库系统图02 为何需要数据仓库?03 数据仓库概述3.1 定义3.2 数据仓库与传统数据库对比04 数据目录05 数据仓库分层5.1 ODS层5.2 DW数据仓库层5.2.1 STAGE临时缓冲层5.2.1 DWD数据明细层5.2.2 DWM数据中间层5.2.3 DWS数据服务层5.2.4 DIM公共层5.3 APP数据产品层06 ETL调度系统6.1 ETL概述6.2 ETL工具选型07 元数据管理08 OLAP(联机分析处理)09 文末01 前言原创 2022-01-13 19:47:58 · 1599 阅读 · 0 评论 -
202 Spark JDBC
Spark SQL可以通过JDBC从关系型数据库中读取数据的方式创建DataFrame,通过对DataFrame一系列的计算后,还可以将数据再写回关系型数据库中。1.从MySQL中加载数据(Spark Shell方式)1.启动Spark Shell,必须指定mysql连接驱动jar包/usr/local/spark-1.5.2-bin-hadoop2.6/bin/spark-shell \...原创 2019-08-14 17:26:19 · 362 阅读 · 0 评论 -
201 Spark SQL查询程序
前面我们学习了如何在Spark Shell中使用SQL完成查询,现在我们来实现在自定义的程序中编写Spark SQL查询程序。首先在maven项目的pom.xml中添加Spark SQL的依赖:<dependency> <groupId>org.apache.spark</groupId> <artifactId>spark-sq...原创 2019-08-14 17:23:47 · 430 阅读 · 0 评论 -
200 Spark DataFrame常用操作- SQL风格语法
如果想使用SQL风格的语法,需要将DataFrame注册成表personDF.registerTempTable("t_person")//查询年龄最大的前两名sqlContext.sql("select * from t_person order by age desc limit 2").show//显示表的Schema信息sqlContext.sql("desc t_pers...原创 2019-08-14 17:19:41 · 508 阅读 · 0 评论 -
199 Spark DataFrame常用操作- DSL风格语法
//查看DataFrame中的内容personDF.show//查看DataFrame部分列中的内容personDF.select(personDF.col("name")).showpersonDF.select(col("name"), col("age")).showpersonDF.select("name").show//打印DataFrame的Schema信息pers...原创 2019-08-14 17:17:54 · 999 阅读 · 0 评论 -
198 Spark DataFrames创建
在Spark SQL中SQLContext是创建DataFrames和执行SQL的入口,在spark-1.5.2中已经内置了一个sqlContext。1.在本地创建一个文件,有三列,分别是id、name、age,用空格分隔,然后上传到hdfs上hdfs dfs -put person.txt /2.在spark shell执行下面命令,读取数据,将每一行的数据使用列分隔符分割val l...原创 2019-08-14 17:15:04 · 333 阅读 · 0 评论 -
197 Spark DataFrames概述
与RDD类似,DataFrame也是一个分布式数据容器。然而DataFrame更像传统数据库的二维表格,除了数据以外,还记录数据的结构信息,即schema。同时,与Hive类似,DataFrame也支持嵌套数据类型(struct、array和map)。从API易用性的角度上 看,DataFrame API提供的是一套高层的关系操作,比函数式的RDD API要更加友好,门槛更低。由于与R和Pan...原创 2019-08-14 17:12:35 · 433 阅读 · 0 评论 -
196 Spark SQL概述
Spark SQL是Spark用来处理结构化数据的一个模块,它提供了一个编程抽象叫做DataFrame并且作为分布式SQL查询引擎的作用。前面已经学习了Hive,它是将Hive SQL转换成MapReduce然后提交到集群上执行,大大简化了编写MapReduce的程序的复杂性,由于MapReduce这种计算模型执行效率比较慢。所以Spark SQL的应运而生,它是将Spark SQL转换成RD...原创 2019-08-14 17:10:58 · 251 阅读 · 0 评论 -
195 Spark Streaming整合Kafka完成网站点击流实时统计
1.安装并配置zk2.安装并配置Kafka3.启动zk4.启动Kafka5.创建topicbin/kafka-topics.sh --create --zookeeper node1.itcast.cn:2181,node2.itcast.cn:2181 \--replication-factor 3 --partitions 3 --topic urlcount6.编写Spar...原创 2019-08-14 16:55:50 · 272 阅读 · 0 评论 -
194 Spark Streaming实现实时WordCount
架构图:1.安装并启动生成者首先在一台Linux(ip:192.168.10.101)上用YUM安装nc工具yum install -y nc启动一个服务端并监听9999端口nc -lk 99992.编写Spark Streaming程序package cn.itcast.spark.streamingimport cn.itcast.spark.util.LoggerLe...原创 2019-08-14 16:53:56 · 353 阅读 · 0 评论 -
193 DStream相关操作 - Output Operations on DStreams
Output Operations可以将DStream的数据输出到外部的数据库或文件系统,当某个Output Operations原语被调用时(与RDD的Action相同),streaming程序才会开始真正的计算过程。Output OperationMeaningprint()Prints the first ten elements of every batch of ...原创 2019-08-14 16:43:38 · 289 阅读 · 0 评论 -
192 DStream相关操作 - Transformations on DStreams
DStream上的原语与RDD的类似,分为Transformations(转换)和Output Operations(输出)两种,此外转换操作中还有一些比较特殊的原语,如:updateStateByKey()、transform()以及各种Window相关的原语。1.Transformations on DStreamsTransformationMeaningmap(fu...原创 2019-08-14 16:40:21 · 397 阅读 · 0 评论 -
191 DStream概述
Discretized Stream是Spark Streaming的基础抽象,代表持续性的数据流和经过各种Spark原语操作后的结果数据流。在内部实现上,DStream是一系列连续的RDD来表示。每个RDD含有一段时间间隔内的数据,如下图:对数据的操作也是按照RDD为单位来进行的计算过程由Spark engine来完成...原创 2019-08-14 16:36:03 · 471 阅读 · 0 评论 -
190 Spark与Storm的对比
SparkStorm开发语言:Scala开发语言:Clojure编程模型:DStream编程模型:Spout/Bolt原创 2019-08-14 16:32:12 · 273 阅读 · 0 评论 -
189 Spark Streaming概述
Spark Streaming类似于Apache Storm,用于流式数据的处理。根据其官方文档介绍,Spark Streaming有高吞吐量和容错能力强等特点。Spark Streaming支持的数据输入源很多,例如:Kafka、Flume、Twitter、ZeroMQ和简单的TCP套接字等等。数据输入后可以用Spark的高度抽象原语如:map、reduce、join、window等进行运算。...原创 2019-08-14 16:28:31 · 240 阅读 · 0 评论 -
188 DAG的生成
DAG(Directed Acyclic Graph)叫做有向无环图,原始的RDD通过一系列的转换就就形成了DAG,根据RDD之间的依赖关系的不同将DAG划分成不同的Stage,对于窄依赖,partition的转换处理在Stage中完成计算。对于宽依赖,由于有Shuffle的存在,只能在parent RDD处理完成后,才能开始接下来的计算,因此宽依赖是划分Stage的依据。...原创 2019-08-14 16:01:21 · 371 阅读 · 0 评论 -
187 RDD的缓存
Spark速度非常快的原因之一,就是在不同操作中可以在内存中持久化或缓存个数据集。当持久化某个RDD后,每一个节点都将把计算的分片结果保存在内存中,并在对此RDD或衍生出的RDD进行的其他动作中重用。这使得后续的动作变得更加迅速。RDD相关的持久化和缓存,是Spark最重要的特征之一。可以说,缓存是Spark构建迭代式算法和快速交互式查询的关键。RDD缓存方式RDD通过persist方法或ca...原创 2019-08-14 15:59:23 · 249 阅读 · 0 评论 -
186 RDD的依赖关系
RDD和它依赖的父RDD(s)的关系有两种不同的类型,即窄依赖(narrow dependency)和宽依赖(wide dependency)。1.窄依赖窄依赖指的是每一个父RDD的Partition最多被子RDD的一个Partition使用总结:窄依赖我们形象的比喻为独生子女2.宽依赖宽依赖指的是多个子RDD的Partition会依赖同一个父RDD的Partition总结:窄依赖我...原创 2019-08-14 15:55:51 · 302 阅读 · 0 评论 -
185 RDD API - Action
动作含义reduce(func)通过func函数聚集RDD中的所有元素,这个功能必须是课交换且可并联的collect()在驱动程序中,以数组的形式返回数据集的所有元素count()返回RDD的元素个数first()返回RDD的第一个元素(类似于take(1))take(n)返回一个由数据集的前n个元素组成的数组takeSample(wit...原创 2019-08-14 15:51:27 · 254 阅读 · 0 评论 -
184 RDD API - Transformation
RDD中的所有转换都是延迟加载的,也就是说,它们并不会直接计算结果。相反的,它们只是记住这些应用到基础数据集(例如一个文件)上的转换动作。只有当发生一个要求返回结果给Driver的动作时,这些转换才会真正运行。这种设计让Spark更加有效率地运行。常用的Transformation:转换含义map(func)返回一个新的RDD,该RDD由每一个输入元素经过func函数转换...原创 2019-08-14 15:48:22 · 252 阅读 · 0 评论 -
183 Spark 创建RDD的两种方式
1)由一个已经存在的Scala集合创建。val rdd1 = sc.parallelize(Array(1,2,3,4,5,6,7,8))2)由外部存储系统的数据集创建,包括本地的文件系统,还有所有Hadoop支持的数据集,比如HDFS、Cassandra、HBase等val rdd2 = sc.textFile("hdfs://node1.itcast.cn:9000/words.txt...原创 2019-08-14 15:42:29 · 508 阅读 · 0 评论 -
182 Spark RDD概述
RDD(Resilient Distributed Dataset)叫做分布式数据集,是Spark中最基本的数据抽象,它代表一个不可变、可分区、里面的元素可并行计算的集合。RDD具有数据流模型的特点:自动容错、位置感知性调度和可伸缩性。RDD允许用户在执行多个查询时显式地将工作集缓存在内存中,后续的查询能够重用工作集,这极大地提升了查询速度。RDD的属性1)一组分片(Partition):即...原创 2019-08-14 15:40:01 · 334 阅读 · 0 评论 -
181 Spark IDEA中编写WordCount程序
spark shell仅在测试和验证我们的程序时使用的较多,在生产环境中,通常会在IDE中编制程序,然后打成jar包,然后提交到集群,最常用的是创建一个Maven项目,利用Maven来管理jar包的依赖。1.创建一个项目2.选择Maven项目,然后点击next3.填写maven的GAV,然后点击next4.填写项目名称,然后点击finish5.创建好maven项目后,点击Enab...原创 2019-08-14 15:31:55 · 292 阅读 · 0 评论 -
180 Spark程序执行
1.执行spark程序/usr/local/spark-1.5.2-bin-hadoop2.6/bin/spark-submit \--class org.apache.spark.examples.SparkPi \--master spark://node1.itcast.cn:7077 \--executor-memory 1G \--total-executor-cores 2 ...原创 2019-08-14 15:27:04 · 294 阅读 · 0 评论 -
179 Spark集群安装
1.准备两台以上Linux服务器,安装好JDK1.72.下载Spark安装包http://www.apache.org/dyn/closer.lua/spark/spark-1.5.2/spark-1.5.2-bin-hadoop2.6.tgz3.上传解压安装包上传spark-1.5.2-bin-hadoop2.6.tgz安装包到Linux上,解压安装包到指定位置。tar -zxvf ...原创 2019-08-14 15:18:17 · 288 阅读 · 0 评论 -
178 Spark入门
Spark是一种快速、通用、可扩展的大数据分析引擎,2009年诞生于加州大学伯克利分校AMPLab,2010年开源,2013年6月成为Apache孵化项目,2014年2月成为Apache顶级项目。目前,Spark生态系统已经发展成为一个包含多个子项目的集合,其中包含SparkSQL、Spark Streaming、GraphX、MLlib等子项目,Spark是基于内存计算的大数据并行计算框架。S...原创 2019-08-14 15:10:13 · 259 阅读 · 0 评论 -
177 Akka详细学习资料
参考:https://www.iteblog.com/archives/1154.html ,里面含有很丰富的Akka内容。原创 2019-08-14 11:40:34 · 335 阅读 · 0 评论 -
176 Scala 项目案例(项目实现)
架构图ActorSystem在Akka中,ActorSystem是一个重量级的结构,他需要分配多个线程,所以在实际应用中,ActorSystem通常是一个单例对象,我们可以使用这个ActorSystem创建很多Actor。Actor在Akka中,Actor负责通信,在Actor中有一些重要的生命周期方法。preStart()方法:该方法在Actor对象构造方法执行后执行,整个Act...原创 2019-08-14 11:25:59 · 3145 阅读 · 1 评论 -
175 Scala 项目案例(Akka简介)
Akka基于Actor模型,提供了一个用于构建可扩展的(Scalable)、弹性的(Resilient)、快速响应的(Responsive) 应用程序的平台。Actor模型:在计算机科学领域,Actor模型是一个并行计算(Concurrent Computation)模型,它把actor作为并行计算的基本元素来对待:为响应一个接收到的消息,一个actor能够自己做出一些决策,如创建更多的acto...原创 2019-08-14 11:21:40 · 846 阅读 · 0 评论 -
174 Scala 项目案例(需求分析)
目前大多数的分布式架构底层通信都是通过RPC实现的,RPC框架非常多,比如前我们学过的Hadoop项目的RPC通信框架,但是Hadoop在设计之初就是为了运行长达数小时的批量而设计的,在某些极端的情况下,任务提交的延迟很高,所有Hadoop的RPC显得有些笨重。Spark 的RPC是通过Akka类库实现的,Akka用Scala语言开发,基于Actor并发模型实现,Akka具有高可靠、高性能、可扩...原创 2019-08-14 11:17:39 · 835 阅读 · 0 评论 -
173 Scala 隐式转换和隐式参数
隐式转换和隐式参数是Scala中两个非常强大的功能,利用隐式转换和隐式参数,你可以提供优雅的类库,对类库的使用者隐匿掉那些枯燥乏味的细节。隐式的对类的方法进行增强,丰富现有类库的功能。隐式转换函数 是指那种以implicit关键字声明的带有单个参数的函数。例子:package cn.itcast.impliimport java.io.Fileimport scala.io.Sour...原创 2019-08-14 11:10:21 · 398 阅读 · 0 评论 -
172 Scala 高阶函数例子
package cn.itcast.scalaobject FunDemo { def main(args: Array[String]) { def f2(x: Int) = x * 2 val f3 = (x: Int) => x * 3 val f4: (Int) => Int = { x => x * 4 } val f4a: (I...原创 2019-08-14 11:07:46 · 378 阅读 · 0 评论 -
171 Scala 高阶函数
Scala混合了面向对象和函数式的特性,我们通常将可以做为参数传递到方法中的表达式叫做函数。在函数式编程语言中,函数是“头等公民”,高阶函数包含:作为值的函数、匿名函数、闭包、柯里化等等。1.作为值的函数可以像任何其他数据类型一样被传递和操作的函数,每当你想要给算法传入具体动作时这个特性就会变得非常有用。定义函数时格式:val 变量名 = (输入参数类型和个数) => 函数实现和返回...原创 2019-08-14 11:06:01 · 332 阅读 · 0 评论 -
170 Scala Actor 案例四
结合case class发送消息,代码如下:package cn.itcast.actorpackage cn.itcast.actorimport scala.actors.Actorclass AppleActor extends Actor { def act(): Unit = { while (true) { receive { cas...原创 2019-08-14 10:58:26 · 254 阅读 · 0 评论 -
170 Scala Actor 案例三
react方式会复用线程,比receive更高效,代码如下:package cn.itcast.actorimport scala.actors.Actor class YourActor extends Actor { override def act(): Unit = { loop { react { case "start" =>...原创 2019-08-14 10:56:27 · 220 阅读 · 0 评论 -
169 Scala Actor 案例二
使用Actor可以不断地接收消息,先看如下代码:package cn.itcast.actorimport scala.actors.Actor/** * Created by ZX on 2016/4/4. */class MyActor extends Actor { override def act(): Unit = { while (true) { ...原创 2019-08-14 10:54:39 · 227 阅读 · 0 评论 -
168 Scala Actor 案例一
先看代码:package cn.itcast.actor//注意导包是scala.actors.Actorimport scala.actors.Actorobject MyActor1 extends Actor{ //重新act方法 def act(){ for(i <- 1 to 10){ println("actor-1 " + i) ...原创 2019-08-14 10:49:54 · 257 阅读 · 0 评论 -
167 Scala Actor
Scala中的Actor能够实现并行编程的强大功能,它是基于事件模型的并发机制,Scala是运用消息(message)的发送、接收来实现多线程的。使用Scala能够更容易地实现多线程应用的开发。传统java并发编程与Scala Actor编程的区别对于Java,我们都知道它的多线程实现需要对共享资源(变量、对象等)使用synchronized 关键字进行代码块同步、对象锁互斥等等。而且,常常...原创 2019-08-14 10:47:32 · 263 阅读 · 0 评论