Apache Spark

jar包是怎么提交到Spark上运行的

一世执手 提交于 2019-11-30 06:34:33
我们都知道,写好spark程序后,可以通过命令行spark-submit方式提交到集群,那么这个具体的过程是怎么搞得呢? spark有多种集群方式,如yarn,standalone等。提交方式又分为client和cluster等模式,这里就先拿standalone的client方式举例。 standalone方式下,spark集群有一个master和多个worker组成集群,现在spark又支持HA方式的热备,保障master安全,这块我们就不谈了,知道这个概念就行了。 spark-submit classMain xx.jar -master spark://127.0.0.1:8088 ,类似这样的命令提交jar包后,spark-submit先启动要给Client程序,然后这个Client程序将spark程序(classMain)打包成DriverDescription,并放在SubmitDriver消息体内提交给Master。 Master收到SubmitDriver消息后,根据消息里的参数DriverDescription创建好Driver,并等待调度。调度是schedule()方法触发的。这时候Master会找到一台Worker。并且给这台Worker发送LaunchDriver命令,LaunchDriver命令里带的参数就包括这个Driver的信息。

spark中配置启用LZO压缩

一笑奈何 提交于 2019-11-30 06:31:57
参考列表: centos7中安装LZO与配置,请参考:http://blog.itpub.net/31511218/viewspace-2151945/ Hadoop配置LZO,请参考:http://blog.itpub.net/31511218/viewspace-2151946/ Spark中配置启用LZO压缩,步骤如下: 一、spark-env.sh配置 export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/app/hadoop -2.6.0 -cdh5 .7.0 /lib/native export SPARK_LIBRARY_PATH=$SPARK_LIBRARY_PATH:/app/hadoop -2.6.0 -cdh5 .7.0 /lib/native export SPARK_CLASSPATH=$SPARK_CLASSPATH:/app/hadoop -2.6.0 -cdh5 .7.0 /share/hadoop/yarn /*:/app/hadoop-2.6.0-cdh5.7.0/share/hadoop/yarn/lib/*:/app/hadoop-2.6.0-cdh5.7.0/share/hadoop/common/*:/app/hadoop-2.6.0-cdh5.7.0/share/hadoop/common/lib/*:

Spark sql操作Hive

徘徊边缘 提交于 2019-11-30 05:37:27
这里说的是最简便的方法,通过Spark sql直接操作hive。前提是hive-site.xml等配置文件已经在Spark集群配置好。 val logger = LoggerFactory.getLogger(SevsSpark4.getClass) def main(args: Array[String]): Unit = { val sparkconf = new SparkConf().setAppName("sevs_spark4") .set("HADOOP_USER_NAME", getProp("hbase.hadoop.username")) .set("HADOOP_GROUP_NAME", getProp("hbase.hadoop.groupname")) // .setMaster("local") val spark = SparkSession .builder() .appName("sevs spark sql") .config(sparkconf) .enableHiveSupport() .getOrCreate() // For implicit conversions like converting RDDs to DataFrames import spark.implicits._ //读Hive示例 val df = spark

基于 Spark 的数据分析实践

你说的曾经没有我的故事 提交于 2019-11-29 23:23:32
转载本文需注明出处:微信公众号EAWorld,违者必究。 引言: Spark是在借鉴了MapReduce之上发展而来的,继承了其分布式并行计算的优点并改进了MapReduce明显的缺陷。Spark主要包含了Spark Core、Spark SQL、Spark Streaming、MLLib和GraphX等组件。 本文主要分析了 Spark RDD 以及 RDD 作为开发的不足之处,介绍了 SparkSQL 对已有的常见数据系统的操作方法,以及重点介绍了普元在众多数据开发项目中总结的基于 SparkSQL Flow 开发框架。 目录: 一、Spark RDD 二、基于Spark RDD数据开发的不足 三、SparkSQL 四、SparkSQL Flow 一、Spark RDD RDD(Resilient Distributed Dataset)叫做弹性分布式数据集,是Spark中最基本的数据抽象,它代表一个不可变、可分区、元素可并行计算的集合。 RDD具有数据流模型的特点:自动容错、位置感知性调度和可伸缩性。 //Scala 在内存中使用列表创建 val lines = List(“A”, “B”, “C”, “D” …) val rdd:RDD = sc.parallelize(lines); //以文本文件创建 val rdd:RDD[String] = sc.textFile(

是时候改变你数仓的增量同步方案了

百般思念 提交于 2019-11-29 23:08:37
经过一段时间的演化,spark-binlog,delta-plus慢慢进入正轨。spark-binlog可以将MySQL binlog作为标准的Spark数据源来使用,目前支持insert/update/delete 三种事件的捕捉。 delta-plus则是对Delta Lake的一个增强库,譬如在Delta Plus里实现了将binlog replay进Detla表,从而保证Delta表和数据库表接近实时同步。除此之外,detla-plus还集成了譬如布隆过滤器等来尽快数据更新更新速度。更多特性可参考我写的专栏。 数据湖Delta Lake 深入解析 ​ zhuanlan.zhihu.com 图标 有了这两个库,加上Spark,我们就能通过两行代码完成库表的同步。 以前如果要做数据增量同步,大概需要这么个流程: 问题很明显,Pipeline长,涉及到技术多,中间转存其实也挺麻烦的,难做到实时。我们希望可以更简单些,比如最好是这样: 然后我可能只要写如下代码就可以搞定: val spark: SparkSession = ??? val df = spark.readStream. format("org.apache.spark.sql.mlsql.sources.MLSQLBinLogDataSource"). option("host","127.0.0.1").

是时候改变你数仓的增量同步方案了

我与影子孤独终老i 提交于 2019-11-29 22:53:27
经过一段时间的演化,spark-binlog,delta-plus慢慢进入正轨。spark-binlog可以将MySQL binlog作为标准的Spark数据源来使用,目前支持insert/update/delete 三种事件的捕捉。 delta-plus则是对Delta Lake的一个增强库,譬如在Delta Plus里实现了将binlog replay进Detla表,从而保证Delta表和数据库表接近实时同步。除此之外,detla-plus还集成了譬如布隆过滤器等来尽快数据更新更新速度。更多特性可参考我写的专栏。 数据湖Delta Lake 深入解析 ​ zhuanlan.zhihu.com 图标 有了这两个库,加上Spark,我们就能通过两行代码完成库表的同步。 以前如果要做数据增量同步,大概需要这么个流程: 问题很明显,Pipeline长,涉及到技术多,中间转存其实也挺麻烦的,难做到实时。我们希望可以更简单些,比如最好是这样: 然后我可能只要写如下代码就可以搞定: val spark: SparkSession = ??? val df = spark.readStream. format("org.apache.spark.sql.mlsql.sources.MLSQLBinLogDataSource"). option("host","127.0.0.1").

CentOs7 Kafka单机消息的发布-订阅

巧了我就是萌 提交于 2019-11-29 22:45:39
这段时间一直在学习大数据相关的知识,从Spark,Spark Streaming,Scala到Kafka等等,涉及到的知识面很多,总体看下来,觉得大数据还是很好玩的,在现在及以后的方方面面都很适用。下面说下Kafka消息的发布-订阅。 (一)基本环境准备 本人在虚拟机下安装了CentOs7,这里自行略过,必备的环境jdk,zookeeper,kafka (二)环境搭建(若不是root登录,则以下操作需加上sudo) 1、JDK安装及环境配置(最好jdk8以上,此处略过) 2、Zookeeper安装及环境配置 (1)解压及移动至其他目录 #解压Zookeeper并重命名 sudo tar -zxvf zookeeper-3.3.6.tar.gz sudo mv zookeeper-3.3.6 zookeeper #将zookeeper移动到/usr/local/目录下,按自己喜好 sudo mv zookeeper /usr/local (2)编辑Zookeeper的配置文件 # 复制一份zoo_sample.cfg文件并改名为zoo.cfg sudo cp /opt/zookeeper/zoo_sample.cfg zoo.cfg # 编辑zoo.cfg 文件 sudo vim /opt/zookeeper/zoo.cfg #主要修改dataDir和server.1=127.0.0

TiFlash & TiSpark?那都是 AP 团队开的坑 !

久未见 提交于 2019-11-29 22:38:16
前面两期我们介绍了 TiDB 团队 和 TiKV 团队 ,颇受好评,今天我司数据库专家 马晓宇 老师将为大家介绍 PingCAP 最具活力的团队—— AP(Analytical Product) 团队,如果你对亲手打造酷炫的大数据分析产品感兴趣,就快快投个简历来和我们聊聊吧~ 大家都知道 TiDB 是一款定位于在线事务处理/在线分析处理( HTAP: Hybrid Transactional/Analytical Processing)的融合型数据库产品, 加强和补齐 HTAP 中的 AP 环节是这个团队的重要工作职责 。 TiDB 的 Coprocessor(协处理器)架构使得大量计算可以并行进行,例如由协处理器进行谓词过滤,预聚合等等,这样一来很多计算被众多 TiKV 资源分担,并且汇聚到 TiDB 的计算将大大减少,由此虽然 TiDB 本身仍然是单机,却可以很大程度满足 AP 需求。 不过这并不是 AP 团队工作的全部。 TiFlash TiFlash 是一个相对独立完整的分析型数据库产品。独立,说明历史包袱会比较小,可以尝试各种可能的设计;同时,我们也希望它尽可能完整,能承担一个分析型数据库应有的职责 。这个项目需要熟悉 C++,熟悉分布式系统的 Infra 工程师同学们入伙。 Why 也许您看了 TiDB / TiSpark 的架构,会有个疑问。TiDB

Hive on Spark 伪分布式环境搭建过程记录

我只是一个虾纸丫 提交于 2019-11-29 21:29:28
进入hive cli是,会有如下提示: Hive-on-MR is deprecated in Hive 2 and may not be available in the future versions. Consider using a different execution engine (i.e. spark, tez) or using Hive 1.X releases. Hive默认使用MapReduce作为执行引擎,即Hive on mr。实际上,Hive还可以使用Tez和Spark作为其执行引擎,分别为Hive on Tez和Hive on Spark。由于MapReduce中间计算均需要写入磁盘,而Spark是放在内存中,所以总体来讲Spark比MapReduce快很多。因此,Hive on Spark也会比Hive on mr快。为了对比Hive on Spark和Hive on mr的速度,需要在已经安装了Hadoop集群的机器上安装Spark集群(Spark集群是建立在Hadoop集群之上的,也就是需要先装Hadoop集群,再装Spark集群,因为Spark用了Hadoop的HDFS、YARN等),然后把Hive的执行引擎设置为Spark。 Spark运行模式分为三种: 1、Spark on YARN 2、Standalone Mode 3、Spark

pycharm搭建spark环境

痴心易碎 提交于 2019-11-29 21:28:49
pycharm搭建spark环境 安装python环境 windows下有安装包,自行下载安装即可 安装spark环境 官网下载 spark-2.3.1-bin-hadoop2.7 包,解压即可 配置 HADOOP_HOME:D:\softwares\Java\hadoop-2.7.7 SPARK_HOME:D:\softwares\Java\spark-2.3.1-bin-hadoop2.7 PATH:%SPARK_HOME%\bin;%HADOOP_HOME%\bin; 配置python-spark环境 将spark目录 D:\softwares\Java\spark-2.3.1-bin-hadoop2.7\python\lib 下的 py4j-0.10.7-src.zip 解压 将解压后的 py4j 放到 python 目录 D:\softwares\Java\Python36\Lib\site-packages 下 提示:python 和 spark 的安装目录自行替换 下载安装pycharm 创建项目 创建python文件,内容如下: from pyspark import SparkConf, SparkContext conf = SparkConf().setMaster('local').setAppName('JackManWu') sc =