spark

IDEA build Spark Artifact包 控制jar大小

早过忘川 提交于 2020-01-18 18:56:14
使用IDEA打Spark jar包 我们使用Scala编写Spark程序代码,需要将编译好的jar放到集群环境中跑任务,但是集群中大部分的依赖包已经存在了,我们就不需要将其再次打入到Spark程序包中,这个操作类似于用Maven打包的 <scope>provided</scope> 今天抽空写一下用IDEA build Artifact包。 PS :Scala开发环境以及使用Maven创建Scala项目得准备好,这里不做教程 第一步、 第二步、 第三步、 第四步、 我在第四步骤的做法是把所有的依赖全部删除,我去maven本地库中寻找我需要的依赖jar 将它们整合在一起放到一个文件夹下面,然后点击左边的 “+”将它们再次引进过来,具体看下面的截图。 第五步、 开始build 了 build结束后我们就能看到 artifacts文件夹了 ,下面是我们所有build jar 到此结束,此种打包方式放到CDH环境上是没问题的,亲测有效。 核心 就是找出你哪些引用的jar在CDH环境上是没有的 ,将其整合在一起。 来源: CSDN 作者: Rone-X 链接: https://blog.csdn.net/RONE321/article/details/104030332

spark shuffle

六月ゝ 毕业季﹏ 提交于 2020-01-18 14:17:15
Spark Shuffle 1. Shuffle相关 当Map 的输出结果要被Reduce使用时,输出结果需要按key哈希,并且分发到每一个Reducer上去,这个过程就是shuffle。由于shuffle涉及到了磁盘的读写和网络的传输,因此shuffle性能的高低直接影响到了整个程序的运行效率。概念上shuffle就是一个沟通数据连接(map和reduce)的桥梁。每个ReduceTask从每个Map Task产生数的据中读取一片数据,极限情况下可能触发M*R个数据拷贝通道(M是MapTask数目,R是Reduce Task数目)。 在Spark1.1 之前,其shuffle只存在一种模式,即hash base。在Spark1.1版本之后加入了sort base。Spark1.1默认采用的shuffle模式还是hash base。在Spark1.2中,sort base将作为默认模式。当然,你可以通过shuffle manager进行配置。 2. Spark shuffle流程 · 首先每一个Mapper 会根据Reducer的数量创建出相应的bucket,bucket的数量是M×R,其中M是Map的个数,R是Reduce的个数。 · 其次Mapper 产生的结果会根据设置的partition算法填充到每个bucket中去。这里的partition算法是可以自定义的

大数据基础

♀尐吖头ヾ 提交于 2020-01-18 01:18:41
1.大数据hadoop与spark的区别 大数据hadoop与spark的区别 - 左手中倒影 - 博客园 https://www.cnblogs.com/adnb34g/p/9233906.html 来源: CSDN 作者: 789请问 链接: https://blog.csdn.net/u013553694/article/details/104024455

小米流式平台架构演进与实践

旧巷老猫 提交于 2020-01-17 17:12:19
小米业务线众多,从信息流,电商,广告到金融等覆盖了众多领域,小米流式平台为小米集团各业务提供一体化的流式数据解决方案,主要包括数据采集,数据集成和流式计算三个模块。目前每天数据量达到 1.2 万亿条,实时同步任务 1.5 万,实时计算的数据 1 万亿条。 伴随着小米业务的发展,流式平台也经历三次大升级改造,满足了众多业务的各种需求。最新的一次迭代基于 Apache Flink,对于流式平台内部模块进行了彻底的重构,同时小米各业务也在由 Spark Streaming 逐步切换到 Flink。 背景介绍 小米流式平台的愿景是为小米所有的业务线提供流式数据的一体化、平台化解决方案。具体来讲包括以下三个方面: 流式数据存储 :流式数据存储指的是消息队列,小米开发了一套自己的消息队列,其类似于 Apache kafka,但它有自己的特点,小米流式平台提供消息队列的存储功能; 流式数据接入和转储 :有了消息队列来做流式数据的缓存区之后,继而需要提供流式数据接入和转储的功能; 流式数据处理 :指的是平台基于 Flink、Spark Streaming 和 Storm 等计算引擎对流式数据进行处理的过程。 下图展示了流式平台的整体架构。从左到右第一列橙色部分是数据源,包含两部分,即 User 和 Database。 User 指的是用户各种各样的埋点数据,如用户 APP 和 WebServer

Spark(三)【Spark核心RDD,SparkOnYarn】

对着背影说爱祢 提交于 2020-01-17 04:48:28
在上一篇文章中,讲了Spark的简单应用开发,在构建数据源的时候,返回了一个RDD对象,所有对数据的操作,都是在这个对象中进行操作,RDD对象是Spark中至为核心的组件,这篇文章就一起来谈谈Spark RDD (resilient distributed dataset) 什么是RDD? RDD( resilient distributed dataset ) 弹性分布式数据集; RDD代表是一个不可变的、可分区的、支持并行计算的元素集合(类似于Scala中的不可变集合) ,RDD可以通过HDFS、Scala集合、RDD转换、外部的数据集(支持InputFormat)获得;并且我们可以通知Spark将RDD持久化在内存中,可以非常高效的重复利用或者在某些计算节点故障时自动数据恢复; 如何创建RDD Scala 集合创建 数组中数字进行求和计算,两种方法 parallelize makeRDD (查看源码最终调用的还是 parallelize ) package com . netzhuo import org . apache . spark . rdd . RDD import org . apache . spark . { SparkConf , SparkContext } object RDDByCollectionTest extends App { //

【Spark SQL】5、DataFrame&DataSet的简单使用

孤人 提交于 2020-01-17 02:51:54
DataFrame与RDD的互操作 /** * DataFrame和RDD的互操作 */ object DataFrameRDDApp { def main ( args : Array [ String ] ) { val spark = SparkSession . builder ( ) . appName ( "DataFrameRDDApp" ) . master ( "local[2]" ) . getOrCreate ( ) //inferReflection(spark) program ( spark ) spark . stop ( ) } def program ( spark : SparkSession ) : Unit = { // RDD ==> DataFrame val rdd = spark . sparkContext . textFile ( "file:///Users/data/infos.txt" ) val infoRDD = rdd . map ( _ . split ( "," ) ) . map ( line = > Row ( line ( 0 ) . toInt , line ( 1 ) , line ( 2 ) . toInt ) ) val structType = StructType ( Array (

【Spark SQL】1、初探大数据及Hadoop的学习

China☆狼群 提交于 2020-01-16 19:41:59
初探大数据 centos 6.4 CDH5.7.0 系列http://archive.cloudera.com/cdh5/cdh/5/ 生产或测试环境选择对应CDH版本时,一定要采用尾号一样的版本 OOPTB apache-maven-3.3.9-bin.tar.gz Jdk-7u51-linux-x64.tar.gz Zeppelin-0.7.1-bin.tgz Hive-1.1.0-cdh5.7.0.tar.gz hadoop-2.6.0-cdh5.7.0.tar.gz Mysql-connector-java.5.1.27.bin.jar Scala-2.11.8.tar.gz spark-2.1.0-bin-2.6.0-cdh5.7.0 大数据概述 数据量 速度 多样性、复杂性 基于高度分析的新价值 Hadoop 一个分布式系统基础架构,由Apache基金会开发。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力高速运算和存储 Apache顶级项目 访问网站 projetName.apache.org 包括 HSFS/YARN/MapReduce 狭义Hadoop VS 广义Hadoop 狭义的Hadoop:是一个适合大数据分布式存储HDFS、分布式计算MapReduce和资源调度YARN的平台 广义的Hadoop:指的是Hadoop生态系统

Spark完全分布式集群搭建【Spark2.4.4+Hadoop3.2.1】

我与影子孤独终老i 提交于 2020-01-16 08:36:48
一.安装Linux   需要:3台CentOS7虚拟机      注意:     虚拟机的网络设置为NAT模式,NAT模式可以在断网的情况下连接上虚拟机而桥架模式不行! 二.设置静态IP   跳转目录到:      修改IP设置:      备注:执行scp命令拷贝设置文件到另外两个节点,修改IP分别为192.168.136.8和192.168.136.9 三.安装JDK   参考我的博客: https://www.cnblogs.com/yszd/p/10140327.html 四.运行Spark预编译包中的实例   1.测试Scala代码实例     执行:      运行Scala版本计算Pi的代码实例结果:         表示运行成功!   2.测试python代码实例     执行:          运行python版本计算Pi的代码实例,注意,若要是遇到下面的异常:          表示没有指定ip,这是需要修改配置文件spark-env.sh,前往conf目录下执行          拷贝配置模板文件,并修改为spark-env.sh,执行          打开配置文件,添加,指定默认ip。          然后继续执行计算Pi代码命令:          结果如下:                表示执行成功! 五.本地体验Spark   1

MR的shuffle和Spark的shuffle之间的区别

核能气质少年 提交于 2020-01-16 05:04:00
mr的shuffle mapShuffle 数据存到hdfs中是以块进行存储的,每一个块对应一个分片,maptask就是从分片中获取数据的 在某个节点上启动了map Task,map Task读取是通过k-v来读取的,读取的数据会放到环形缓存区,这样做的目的是为了防止IO的访问次数,然后环形缓存区的内存达到一定的阀值的 时候会把文件益写到磁盘,溢出的各种小文件会合并成一个大文件,这个合并的过程中会进行排序,这个排序叫做归并排序 map阶段会涉及到 1.sort排序(默认按字典排序) 2.合并(combiner合并) 3.文件合并(merage 合并 总共有三种,默认是内存到磁盘) 4.压缩(设置压缩就会执行) reduce Shuffle 归并排序完成后reduce端会拉取map端的数据,拉取的这个过程叫做copy过程,拉取的数据合并成一个文件,GroupComparator(默认,这个我们也可以自定义)是专门对文件夹里面的key进行分组 然后就形成k-List(v1,v2,v3)的形式,然后reduce经过业务处理,最终输出到hdfs,如果设置压缩就会执行,不设置则不执行 reduce阶段会涉及到: 1.sort排序 2.分组(将相同的key的value放到一个容器的过程) 3.merge文件合并 4.压缩 spark shuffle的版本一 1

spark的standlone模式安装和application 提交

不问归期 提交于 2020-01-16 02:00:04
spark的standlone模式安装 安装一个standlone模式的spark集群,这里是最基本的安装,并测试一下如何进行任务提交。 require:提前安装好jdk 1.7.0_80 ;scala 2.11.8 可以参考官网的说明:http://spark.apache.org/docs/latest/spark-standalone.html 1. 到spark的官网下载spark的安装包 http://spark.apache.org/downloads.html spark-2.0.2-bin-hadoop2.7.tgz.tar 2. 解压缩 cd /home/hadoop/soft tar -zxvf spark-2.0.2-bin-hadoop2.7.tgz.tar ln -s /home/hadoop/soft/spark-2.0.2-bin-hadoop2.7 /usr/local/spark 3.配置环境变量 su - hadoop vi ~/.bashrc export SPARK_HOME="/usr/local/spark" export PATH="$SPARK_HOME/bin:$SPARK_HOME/sbin:$PATH" source ~/.bashrc which spark-shell 4.修改spark的配置 进入spark配置目录进行配置