spark

spark-submit提交任务到集群,分发虚拟环境和第三方包

不问归期 提交于 2020-01-15 23:40:24
spark-submit提交任务的参数很多: Usage: spark-submit [options] <app jar | python file> [app arguments] Usage: spark-submit --kill [submission ID] --master [spark://...] Usage: spark-submit --status [submission ID] --master [spark://...] Usage: spark-submit run-example [options] example-class [example args] Options: --master MASTER_URL spark://host:port, mesos://host:port, yarn, or local. --deploy-mode DEPLOY_MODE Whether to launch the driver program locally ("client") or on one of the worker machines inside the cluster ("cluster") (Default: client). --class CLASS_NAME Your application's main class (for

试用最强Spark IDE--IDEA

拥有回忆 提交于 2020-01-15 18:55:01
1 、 安装IntelliJ IDEA IDEA 全称 IntelliJ IDEA,是java语言开发的集成环境,IntelliJ在业界被公认为最好的java开发工具之一,尤其在智能代码助手、代码自动提示、重构、J2EE支持、Ant、JUnit、CVS整合、代码审查、创新的GUI设计等方面的功能可以说是超常的。IDEA是JetBrains公司的产品,这家公司总部位于捷克共和国的首都布拉格,开发人员以严谨著称的东欧程序员为主。 IDEA每个版本提供Community和Ultimate两个版本,如下图所示,其中Community是完全免费的,而Ultimate版本可以使用30天,过这段时间后需要收费。从安装后使用对比来看,下载一个Community版本足够了。 1.1 安装软件 1.1.1 下载IDEA安装文件 可以到Jetbrains官网http://www.jetbrains.com/idea/download/,选择最新的安装文件。由于以后的练习需要在Linux开发Scala应用程序,选择Linux系统IntelliJ IDEA14,如下图所示: 【 注 】在该系列配套资源的install目录下分别提供了ideaIC-14.0.2.tar.gz(社区版)和ideaIU-14.0.2.tar.gz(正式版)安装文件,对于Scala开发来说两个版本区别不大 1.1.2

Spark键值对Pair RDD操作

泄露秘密 提交于 2020-01-15 08:05:42
1、键值对pair RDD产生的背景 pair RDD提供了一些新的操作接口,比如统计每个产品的评论,将数据中键相同的分为一组,将两个不同的RDD进行分组合并等。我们通常从一个RDD中提取某些字段如事件时间、用户ID,并使用这些字段作为pair RDD操作中的键。 2、创建pair RDD (1)读取键值对格式数据时直接返回其键值对数据组成的pair RDD。 (2)使用map()函数将普通的RDD转为pair RDD。 3、pair RDD的转化操作 (1)mapValues() 对pair RDD中的每个值应用一个函数而不改变键,功能类似于map{case (x,y):(x,func(y))} (2)reduceByKey() 与reduce相似,接收一个函数,为数据集中每个键进行并行的归约操作,每个归约操作会将键相同的值合并起来。返回一个由各键和对应键归约出来的结果值组成的新RDD。 例如:在Scala中使用reduceBykey()和mapValues()计算每个键对应的平均值 rdd.mapValues(x =>(x,1)).reduceByKey((x,y)=>(x._1 + y._1,x._2 + y._2)) (注:此处x=>(x,1)是为了构造pair RDD,reduceByKey(x,y)中的x,y指的是键相同的两个值) (3)combineByKey()

Spark——控制算子

拟墨画扇 提交于 2020-01-15 07:39:04
概念: 控制算子有三种,cache,persist,checkpoint ,以上算子都可以将RDD持久化,持久化的单位是partition。cache和persist都是懒执行的。必须有一个action类算子触发执行。checkpoint算子不仅能将RDD持久化到磁盘,还能切断RDD之间的依赖关系。 cache 默认将RDD的数据持久化到内存中。cache是懒执行。 注意 :cache () = persist()=persist(StorageLevel.Memory_Only) 测试代码: SparkConf conf = new SparkConf ( ) ; conf . setMaster ( "local" ) . setAppName ( "CacheTest" ) ; JavaSparkContext jsc = new JavaSparkContext ( conf ) ; JavaRDD < String > lines = jsc . textFile ( "./NASA_access_log_Aug95" ) ; lines = lines . cache ( ) ; long startTime = System . currentTimeMillis ( ) ; long count = lines . count ( ) ; long endTime

scala+hadoop+spark环境搭建

隐身守侯 提交于 2020-01-15 06:13:54
一、JDK环境构建 在指定用户的根目录下编辑.bashrc文件,添加如下部分: # .bashrc # Source global definitions if [ -f /etc/bashrc ]; then . /etc/bashrc fi # User specific aliases and functions JAVA_HOME=/data01/java/jdk1.8.0_121 PATH=$JAVA_HOME/bin:$PATHexport PATH JAVA_HOME 运行source .bashrc命令让环境变量生效 二、Scala环境构建 从 http://www.scala-lang.org/download/2.10.4.html 上下载Scala正确版本进行安装,本文以scala-2.12.2.tgz版本为例进行说明: 编辑.bashrc文件,设置scala环境变量 # .bashrc # Source global definitions if [ -f /etc/bashrc ]; then . /etc/bashrc fi # User specific aliases and functions JAVA_HOME=/data01/java/jdk1.8.0_121 PATH=$JAVA_HOME/bin:$PATH #scala variables

spark-Json、jdbc操作、hive本地版

雨燕双飞 提交于 2020-01-15 03:46:17
Spark-json files 前要 SparkSQL可以自动推断JSON数据集的架构,并将其作为Dataset[Row]。此转换可以使用SparkSession.read.json()无论是在Dataset[String]或JSON文件。 必要设置 //初始化sparkSessionBuilder var sparkSessionBuilder = SparkSession.builder() //给这个应用起个名字 sparkSessionBuilder.appName("test01") //new一个SparkConf,便于设置一些参数 var conf = new SparkConf() //运行的方式是本地,用上所有线程 conf.setMaster("local[*]") sparkSessionBuilder.config(conf) //生成sparkSession var sparkSession = sparkSessionBuilder.getOrCreate() //生成sparkContext var sparkContext = sparkSession.sparkContext 正题 导包(在方法内导包) spark是方法参数sparkSession的变量名,其他一致 import spark.implicits._ 创建一个Rdd /

Spark简介安装和简单例子

时光怂恿深爱的人放手 提交于 2020-01-15 03:30:33
Spark简介 Spark是一种快速、通用、可扩展的大数据分析引擎,目前,Spark生态系统已经发展成为一个包含多个子项目的集合,其中包含SparkSQL、Spark Streaming、GraphX、MLlib等子项目,Spark是基于内存计算的大数据并行计算框架。简单来说Spark是 内存迭代计算,每个算子将计算结果保存在内存中,其他算子,读取这个结果,继续计算。 Spark的四个特性: 1.快 Spark实现了高效的DAG执行引擎,可以通过基于内存来高效处理数据流。 2.易用 Spark支持Java、Python和Scala的API,还支持超过80种高级算法,而且Spark支持交互式的Python和Scala的shell,可以非常方便地在这些shell中使用Spark集群来验证解决问题的方法。 依赖外部数据源hdfs、本地文件.kafka.flume.mysql.ELK) 3.通用 Spark提供了统一的解决方案。Spark可以用于批处理、交互式查询(Spark SQL)、实时流处理(Spark Streaming)、机器学习(Spark MLlib)和图计算(GraphX)。这些不同类型的处理都可以在同一个应用中无缝使用。 4.兼容性 Spark可以非常方便地与其他的开源产品进行融合。比如,Spark可以使用Hadoop的YARN和Apache

spark sql查询hive表实现脱敏

情到浓时终转凉″ 提交于 2020-01-15 02:09:47
关于hive表查询脱敏,原理是select的时候在后台对sql进行处理,对每个要查询的字段都加一个自定义的mask脱敏函数。 一开始的实现思路是类似 select col1,col2,col3 from mask_table ,后台处理后sql改造成 select m.col1,m.col2,m.col3 from (select mask(col1),mask(col2),mask(col3) from mask_table) m , 优点是实现比较简单,根据spark sql执行的物理计划,获取到sql涉及到的根表,对根表的每个字段进行脱敏。 但以上实现存在问题,假设原sql为 select mobile from mask_table where mobile=‘13111111111’ ,通过上述方法改造后,sql变成 select mobile from (select mask(mobile) from mask_table) a where mobile=‘13111111111’ ,当前这种情况已经无法查询结果 最后实现的方式其实一开始就想到了,但是最开始的时候觉得要追溯字段的依赖关系有点不太好弄,所以用了上述方式,不过最后还是改造成了下面的方法: 实现原理一样,也是根据spark sql的物理计划对sql重新进行拼接,不同的是,原来是对根表的每个字段进行脱敏处理

初识Spark程序

狂风中的少年 提交于 2020-01-15 00:27:47
执行第一个spark程序 普通模式提交任务 : bin/spark-submit \ --class org.apache.spark.examples.SparkPi \ --master spark://hdp-node-01:7077 \ --executor-memory 1G \ --total-executor-cores 2 \ examples/jars/spark-examples_2.11-2.0.2.jar \ 10 该算法是利用蒙特·卡罗算法求圆周率PI,通过计算机模拟大量的随机数,最终会计算出比较精确的π。 高可用模式提交任务 : 在高可用模式下,因为涉及到多个Master,所以对于应用程序的提交就有了一点变化,因为应用程序需要知道当前的Master的IP地址和端口。这种HA方案处理这种情况很简单,只需要在SparkContext指向一个Master列表就可以了, 如 spark://host1:port1,host2:port2,host3:port3 ,应用程序会轮询列表,找到活着的Master。 bin/spark-submit \ --class org.apache.spark.examples.SparkPi \ --master spark://hdp-node-01:7077,hdp-node-02:7077,hdp-node-03

Spark DataFrame、Spark SQL、Spark Streaming入门教程

五迷三道 提交于 2020-01-14 23:06:47
文章目录 前言 1、RDD、Spark DataFrame、Spark SQL、Spark Streaming 2、Spark DataFrame 2.1 创建基本的Spark DataFrame 2.2 从各类数据源创建Spark DataFrame 2.3 Spark DataFrame持久化数据 2.4 Dataframe常见的API 3、Spark SQL 4、Spark Streaming 实时计算TCP端口的数据 前言   本文介绍Spark DataFrame、Spark SQL、Spark Streaming入门使用教程,这些内容将为后面几篇进阶的streaming实时计算的项目提供基本计算指引,本文绝大部分内容来自Spark官网文档(基于PySpark): Spark DataFrame 、 Spark SQL 、 Spark Streaming 1、RDD、Spark DataFrame、Spark SQL、Spark Streaming   RDD:大家最熟悉的数据结构,主要使用transmissions和actions 相关函数式算子完成数据处理和数理统计,例如map、reduceByKey,rdd没有定义 Schema(一般指未定义字段名及其数据类型), 所以一般用列表索引号来指定每一个字段。 例如, 在电影数据的推荐例子中: move_rdd.map