![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
大数据
晚风中的自由
这个作者很懒,什么都没留下…
展开
-
Spark Shuffle原理、Shuffle操作问题解决和参数调优
摘要: 1 shuffle原理 1.1 mapreduce的shuffle原理 1.1.1 map task端操作 1.1.2 reduce task端操作 1.2 spark现在的SortShuffleManager 2 Shuffle操作问题解决 2.1数据倾斜原理 2.2 数据倾斜问题发现与解决 2...转载 2019-12-28 15:02:30 · 203 阅读 · 0 评论 -
企业大数据平台搭建(一)环境准备
一、Hadoop 三大发行版本1、apache原生版本;2、CDH1)CDH全称是:Cloudera’s Distribution Including Apache HadoopCDH;Cloudera 公司发行;在apache版本的基础上进行商业化;官网为:http://www.cloudera.com/;发布的版本仅支持64位操作系统;2)安装方式,通过tar...原创 2019-12-01 21:08:14 · 403 阅读 · 0 评论 -
【Spark】Spark Stream 整合 Kafka(二)
一、集成的方式1、基于接收者方式;从kafka接收的数据,被放在spark执行器;然后stream处理数据;但在接收失败的情况下,可能会丢失数据;2、直接模式,没有接收者;二、基于接收者方式1、复制kafka依赖包cp /opt/modules/spark-1.3.0-src/external/kafka/target/spark-streaming-kafka_2.10-1...原创 2019-11-30 22:32:04 · 164 阅读 · 0 评论 -
【Spark】Spark Stream 整合 Kafka(一)
一、Kafka 简介Kafka:高吞吐量的分布式消息系统,发布-订阅,分布式提交日志;特点:快,可扩展性,稳定性,分布式;Apache Kafka 是分布式发布-订阅消息系统。它最初由linkedin公司开发,之后成为Apache项目的一部分。Kafka是一种快速的、可扩展的、设计内在就是分布式的,分区的和可复制的提交日志服务。Apache Kafka 与传统消息系统相比,有...原创 2019-11-30 19:38:09 · 226 阅读 · 0 评论 -
【Spark】Spark Stream 整合 Flume
官网教程:http://spark.apache.org/docs/1.3.0/streaming-flume-integration.html有两种集成方式:1、flume把数据推给stream2、stream从flume拉取数据基于方式1讲解Flume有3个组件:source -> channel -> sink (streaming)1、在fl...原创 2019-11-29 23:13:20 · 108 阅读 · 0 评论 -
【Spark】Spark Stream 读取 HDFS 数据
从HDFS读取文本数据作为DStream准备数据,本地目录/opt/datas/sparkDatas 下有文件wc.txt 内容如下:hadoop spark streamingspark hdfs streamingspark启动hadoop的namenode 和 datanodesbin/hadoop-daemon.sh start namenodesbin/ha...原创 2019-11-27 23:49:40 · 1169 阅读 · 0 评论 -
【Spark】Spark Stream 入门案例
官方案例:http://spark.apache.org/docs/latest/streaming-programming-guide.htmlSpark Stream Demo,从socket实时读取数据,进行实时处理首先检查有无安装 ncrpm -qa | grep nc如果没有则要先安装nc;下载:http://vault.centos.org/6.6/os/x86_...原创 2019-11-26 21:49:56 · 140 阅读 · 0 评论 -
【Spark】Spark运行在YARN上
Spark on YARN步骤:1)客户端提交应用程序给resourcemanager;2)resourcemanager为应用分配 spark application master;3)sparkapplication master 向resourcemanager 申请资源 container,container可以用于运行executor4)resourcemanag...原创 2019-11-26 19:40:15 · 1135 阅读 · 0 评论 -
【Spark】使用spark-submit部署应用,Spark Application 运行的两种方式Client和Cluster
Spark为各种集群管理器提供了统一的工具来提交作业,这个工具是spark-submit。如果在调用spark-submit时除了脚本或JAR包的名字之外没有其他的参数,那么这个Spark应用只会在本地执行。当我们希望将应用提交到Spark独立集群上的时候,可以将集群的地址和希望启动的每个执行器进程的大小作为附加标记提供。--master标记指定要连接的集群URL;spark-su...原创 2019-11-24 17:52:35 · 703 阅读 · 0 评论 -
【Spark】Spark Application 监控,HistoryServer历史服务器配置使用
一、增加配置1、spark-1.3.0-bin-2.5.0-cdh5.3.6/conf 目录下spark-env.sh文件修改;设置log文件放在 hdfs目录/user/spark/eventlogsSPARK_HISTORY_OPTS=-Dspark.history.fs.logDirectory=hdfs://hadoop-senior.ibeifeng.com:8020...原创 2019-11-23 21:15:52 · 813 阅读 · 0 评论 -
【Spark】使用IDEA开发Spark Application以及打包测试
一、IDEA新建scala应用Create New Project选择scala,IDEA,点击next项目名称:sparkApp,选择JDK,选择Scala SDK,点击finish等待加载项目,项目目录结构如下打开file下的 Project structure新建目录和设置属性:把src设置为source;在src下新建2个目录,main和...原创 2019-11-23 18:03:13 · 278 阅读 · 0 评论 -
【Spark】Spark Core应用案例讲解
一、统计单词hdfs的文件/user/root/mapreduce/wordcount/input/wc.input 有以下内容:hadoop hivehive hadoophbase sqoophbase sqoophadoop hive启动spark-shellbin/spark-shell读取wc.input 做为rddval rdd = sc.tex...原创 2019-11-23 15:31:57 · 567 阅读 · 0 评论 -
【Spark】Spark RDD Shuffle 讲解
一、概述Spark RDD Shuffle类似mapreduce中的shuffle。bucket相当于分区。什么是spark shuffle?shfulle是spark对数据进行重分区的机制。哪些操作会引起shuffle?具有重新调整分区的操作,eg:repartition,coalesce*ByKey,eg:groupByKey,reduceByKey关联操作:e...原创 2019-11-10 16:12:27 · 507 阅读 · 0 评论 -
【Spark】数据分区
数据分区partitionBy分区在分布式程序中,通信的代价是很大的,因此控制数据分布以获得最少的网络传输可以极大地提升整体性能。和单节点的程序需要为记录集合选择合适的数据结构一样,Spark 程序可以通过控制RDD 分区方式来减少通信开销。分区并不是对所有应用都有好处的——比如,如果给定RDD 只需要被扫描一次,我们完全没有必要对其预先进行分区处理。只有当数据集多次在诸如连接这种基于键的操作...原创 2019-11-09 08:00:00 · 359 阅读 · 0 评论 -
【Spark】键值对操作,pair RDD的行动操作
一、概述 和转化操作一样,所有基础RDD 支持的传统行动操作也都在pair RDD 上可用。Pair RDD提供了一些额外的行动操作,可以让我们充分利用数据的键值对特性。二、详解1、countByKey() 对每个键对应的元素分别计数示例:val rdd = sc.parallelize(List((1, 2), (3, 4), (3, 6)))rdd....原创 2019-11-06 20:42:42 · 152 阅读 · 0 评论 -
【Spark】键值对操作,pair RDD的转化操作
一、Pair RDD 键值对的创建 Spark为包含键值对类型的RDD提供了一些专有的操作。这些RDD被成为pair RDD。pair RDD是很多程序的构成要素,因为它提供了并行操作各个键或跨节点重新进行数据分组的操作接口。例如,pair RDD提供reduceByKey() 方法,可以分别归约每个键对应的数据,还有join()方法,可以把两个RDD中键相同的元素组合到一起,合并...原创 2019-11-06 19:07:01 · 735 阅读 · 0 评论 -
【Spark】RDD依赖讲解(宽依赖和窄依赖)
一、窄依赖(narrow dependencies)1、子RDD的每个分区依赖于常数个父分区(既与数据规模无关)2、输入输出一对一的算子,且结果RDD的每个分区结构不变,主要是map、flatMap3、输入输出一对一,但结果RDD的结构发生了变化,如union、coalesce4、从输入中选择部分元素的算子,如filter、distinct、subtract、sample二、宽...原创 2019-11-05 19:46:08 · 1129 阅读 · 2 评论 -
【Spark】Spark RDD操作、转化操作和行动操作
一、创建RDD1、外部数据集(external datasets)var rdd = sc.textFile("hdfs://hadoop-senior.ibeifeng.com:8020/user/root/mapreduce/wordcount/input/wc.input")rdd.collectres6: Array[String] = Array(hadoop hive, ...原创 2019-11-03 23:18:28 · 328 阅读 · 0 评论 -
【Spark】Spark RDD五大特性讲解(以wordcount案例和mapreduce进行比较)
RDD:弹性分布式数据集RDD的特点:1、一系列的分片:比如说64M一片;类似于hadoop中的split;2、在每个分片上都有一个函数去迭代/执行/计算它;3、一系列的依赖:RDDa转化为RDDb,RDDb转化为RDDc,那么RDDc就依赖于RDDb,RDDb依赖于RDDa;4、对于key-value的RDD可指定一个partitioner,告诉它如何切片;常用的有hash和...原创 2019-11-03 20:34:04 · 329 阅读 · 0 评论 -
【Spark】Spark实现WordCount功能讲解
一、读取hdfs上的文件作为rddhdfs的文件/user/root/mapreduce/wordcount/input/wc.input 有以下内容hadoop hivehive hadoophbase sqoophbase sqoophadoop hive启动spark-shellbin/spark-shell读取hdfs的文件/user/root/mapr...原创 2019-10-27 14:18:53 · 324 阅读 · 0 评论 -
【Spark】指定Hadoop版本进行编译Spark
一、下载spark源码1、下载源码官网为:http://spark.apache.org/downloads.html选择对应的spark发行版本,包类型选源码,点击download spark右侧的tgz即可下载;由于练习需要,下载的是spark-1.3.0.tgz;2、安装依赖的环境spark-1.3.0 依赖的环境有:maven版本:apache-maven...原创 2019-10-27 11:30:54 · 1361 阅读 · 1 评论 -
【Spark】Spark安装和Spark-shell使用
一、spark的安装模式1、本地模式(local),单点模式,非分布式模式,只需要用到一台机器;2、standalone模式,是spark自己实现的独立调度器,它是一个资源调度框架;Spark可以通过部署与Yarn的架构类似的框架来提供自己的集群模式,该集群模式的架构设计与HDFS和Yarn大相径庭,都是由一个主节点多个从节点组成,在Spark 的Standalone模式中,主节点为mas...原创 2019-10-27 11:32:53 · 1419 阅读 · 0 评论 -
【Storm】DRPC精解和案例分析
一、DRPC简介和工作流程1、DRPC 简介分布式RPC( distributed RPC,DRPC) 用于对storm上大量的函数调用进行并行计算。对于每一次函数调用,storm集群上运行的拓扑接收调用函数的参数信息作为输入流,并将计算结果作为输出流发射出去。一句话概括:storm进行计算,根据客户端提交的请求参数,而返回storm计算的结果。DRPC通过DRPC Server...原创 2019-09-01 11:00:02 · 695 阅读 · 0 评论 -
【Storm】Storm事务案例实战
一、Storm事务案例实战之 ITransactionalSpout案例背景:统计网站每天的访问量1、ITransactionalSpout,事务性的spout类,继承ITransactionalSpoutpackage transaction1;import java.util.HashMap;import java.util.Map;import java.util.Ra...原创 2019-08-31 10:59:47 · 472 阅读 · 0 评论 -
【Storm】Strom事务主要API及官方案例分析
1、事务主要API(1)Spout(a)ITransactionalSpout<T>,同BaseTransactionalSpout<T>,普通事务Spout(b)IPartitionedTransactionalSpout<T> ,接口,分区事务,增加消息队列吞吐量,现在的消息队列大多支持分区;同BasePartitionedTransactiona...原创 2019-08-11 19:01:07 · 400 阅读 · 0 评论 -
【Storm】批处理事务原理以及事务
1、批处理 对于容错机制,Storm通过一个系统级别的组件acker,结合xor校验机制判断一个tuple是否发送成功,进而spout可以重发该tuple,保证一个tuple在出错的情况下至少被重发一次。但是在需要精确统计tuple的数量如销售金额场景时,希望每个tuple”被且仅被处理一次” 。Storm 0.7.0引入了Transnational Topology, 它可以保证...原创 2019-08-10 21:47:01 · 648 阅读 · 0 评论 -
【Storm】集群统一启动和停止shell脚本开发
hadoop集群有统一启动的命令start-all.sh 启动全部进程stop-all.sh 停止全部进程hadoop如果用cdh版本 + Cloudera Manager界面化管理,直接在界面上点击按钮即可启动集群。而storm集群有多个进程在运行,只能运行以下命令逐一去停止kill -9 进程id这样子很不方便,可以采用shell脚本来启停所有storm...原创 2019-08-07 22:46:18 · 747 阅读 · 0 评论 -
Filezilla for mac 安装和连接虚拟机
mac电脑要和虚拟机相互传递资料,可以通过这个工具实现:Filezilla for mac1、下载和安装为了便于学习,下载中文版本。官方下载地址:https://www.filezilla.cn/download/clientmacos平台,点击立即下载打开下载目录,会有个Filezilla压缩包,打开会有个Filezilla.app。把Filezilla.app拉到左侧应...原创 2019-07-27 20:36:25 · 1959 阅读 · 1 评论 -
VMWare Fusion 导入已有的虚拟机
背景windows电脑上装有vmware workstation,装有CentOS 6的64位版本。由于换了电脑,需要把CentOS移植到新电脑上。Macos系统电脑装有VMWare Fusion。1、windows上vmware workstation克隆出CentOS虚拟机。克隆之后的虚拟机文件(,vmdk文件),发送到macos电脑。Macos系统电脑安装 VMWa...原创 2019-07-27 10:24:14 · 15538 阅读 · 3 评论 -
【Storm】API入门案例开发
1.Component 组件注:上图中用红框圈出的是3个常用的API。1)基本接口 (1)IComponent 接口 (2)ISpout 接口 (3)IRichSpout 接口 (4)IStateSpout 接口 (5)IRichStateSpout 接口 (6)IBolt 接口 (7)IRichBolt 接口 (8)IBasicBolt...原创 2019-08-18 14:10:51 · 341 阅读 · 0 评论 -
【Storm】Storm Trident 入门和入门案例讲解
参考自这篇文章https://blog.csdn.net/derekjiang/article/details/9126185一、什么是 Storm Trident ? Trident是在storm基础上,一个以realtime 实时计算为目标的高度抽象。 它在提供处理大吞吐量数据能力的同时,也提供了低延时分布式查询和有状态流式处理的能力。 如果你对Pig和Cascadin...转载 2019-09-13 10:38:54 · 395 阅读 · 0 评论 -
【Storm】Trident API和概念(Operation类)
一、Trident SpoutITridentSpout:是最通用的spout,可以支持事务或者不透明事务定义;IBatchSpout:一个非事务spout;IPartitionedTridentSpout:分区事务spout,从数据源(kafka集群)读分区数据;IOpaquePartitionedTridentSpout:不透明分区事务spout,从数据源读分区数据;1、I...转载 2019-09-14 21:54:47 · 461 阅读 · 0 评论 -
【Scala】1、Scala 语言概述
Scala 源码的查看的关联1、点击想要查看源码的类或方法,如果没有关联源码,会看到下图所示:点击choose source可以关联源码;2、官网下载源码,下载地址:https://www.scala-lang.org/download/,下载源码压缩包;将我们的源码包解压到scala/lib 文件夹下;3、手动关联源码,点击步骤1图片中的 choose s...原创 2019-09-23 23:55:42 · 101 阅读 · 0 评论 -
【Storm项目实战】1、Storm项目实战课程大纲
流计算前景大数据实时计算为什么说是趋势?对数据要求越来越高,快速得到数据可以:电商营销调整决策; 告警系统; 推荐系统:实时推荐,精准化推荐;Storm流计算之项目实战篇(Storm+Kafka+HBase+Highcharts+JQuery,含3个完整实际项目)课程分类:大数据适合人群:初级课时数量:40课时更新程度:70%用到技术:stormKafka+HBa...转载 2019-09-22 18:31:06 · 287 阅读 · 0 评论 -
【Storm】Storm集群和作业监控告警开发
监控方案storm的所有状态写在zookeeper中,而且nimbus和supervisor通信完全通过zookeeper;可以通过访问zookeeper得知集群状态,如nimbus、supervisor是否正常,线上作业是否状态良好?要求:1、可配置化;2、当numbus或supervisor停掉后,发告警出来;3、当监控的作业停掉后,告警出来;(1)配置文件s...原创 2019-09-22 16:51:55 · 408 阅读 · 0 评论 -
【Storm】Trident 综合实战
需求基于HBase开发state,作为外部存储;支持非事务,事务,不透明事务;目的:全面练习Trident开发;通过核心概念state自定义实现,可以深刻理解state各类语义的封装实现,从而深刻理解Trident处理流程。在官方案例storm-starter-master的工程上做修改,增加代码。首先在pom.xml文件中加入以下内容,再保存; <depen...原创 2019-09-22 16:39:32 · 236 阅读 · 0 评论 -
【Storm】Trident state 概念
核心概念Trident在读写有状态的数据源方面是有着一流的抽象封装;状态即可以保留在topology的内部,如内存(但易丢失,服务器重启后不可用),也可以放到外部存储当中,如HDFS,Memcached(内存级数据库)或no-sql数据库(如Hbase)。这些都是使用同一套Trident API。Trident以一种容错的方式来管理状态(状态指结果数据),以至于当你在更新状态的时候你不需要...原创 2019-09-20 23:01:24 · 253 阅读 · 0 评论 -
【Storm】Trident 各类操作的输出
1、函数package trident.function;import backtype.storm.tuple.Values;import storm.trident.operation.BaseFunction;import storm.trident.operation.TridentCollector;import storm.trident.tuple.TridentTu...原创 2019-09-18 00:41:14 · 244 阅读 · 0 评论 -
【Storm】ITridentSpout、FirstN(取Top N)实现、流合并和join
一、ITridentSpout基于事务static interfaceITridentSpout.BatchCoordinator<X>static interfaceITridentSpout.Emitter<X>接口类的实现和之前事务ITransactionalSpout非常类似(1)ITridentSpout<T> 接口类,有...原创 2019-09-15 23:41:51 · 200 阅读 · 0 评论 -
【Storm】Trident实战之计算网站PV
需求用Trident实现汇总型PV统计;1:按天2:累计FixedBatchSpout发送若干个tuple,每个tuple是一个字符串,字符串格式是hosts + "\t" +sessionId + "\t" +times,其中times是日期 + 时间。每个batch最多包含3个tuple,不设置为持续发送。DRPC 函数名称 getPV,execute第二个参数是日期. ...原创 2019-09-15 19:15:10 · 292 阅读 · 0 评论