spark

Spark的Yarn模式

时光总嘲笑我的痴心妄想 提交于 2020-02-15 02:18:36
Spark基础理论: https://blog.csdn.net/weixin_45102492/article/details/104318250 Spark安装及Local模式: https://blog.csdn.net/weixin_45102492/article/details/104318738 Spark的Standalone模式: https://blog.csdn.net/weixin_45102492/article/details/104319485 Yarn模式 Spark客户端直接连接Yarn,不需要额外构建Spark集群。有yarn-client和yarn-cluster(集群模式,工作中常用)两种模式,主要区别在于:Driver程序的运行节点。 yarn-client :Driver程序运行在客户端,适应于交互、调试,希望立即看到app的输出 yarn-cluster :Driver程序运行在由RM(ResourceManager)启动的AP(APPMaster)适用于生产环境。 修改yarn-site.xml文件 添加以下内容 < ! -- 是否启动一个线程检查每个任务正使用的物理内存量,如果任务超出分配值,则直接将其杀掉,默认是 true -- > < property > < name > yarn . nodemanager . pmem -

在centos7上安装部署hadoop2.7.3和spark2.0.0

牧云@^-^@ 提交于 2020-02-14 19:44:36
一、安装装备 下载安装包: vmware workstations pro 12 三台centos7.1 mini 虚拟机 网络配置NAT网络如下: 二、创建hadoop用户和hadoop用户组 1. groupadd hadoop 2. useradd hadoop 3. 给hadoop用户设置密码 在root用户下:passwd hadoop设置新密码 三、关闭防火墙和selinux 1. yum install -y firewalld 2. systemctl stop firewalld 3. systemctl disable firewalld 4. vi /etc/selinux/config 5.全部设置好重启虚拟机 四、三台虚拟机之间ssh互通 1. 在hadoop用户下 1. ssh-keygen -t rsa 2. ssh-copy-id -i /home/hadoop/.ssh/id_rsa.pub hadoop@虚拟机ip 3. ssh namenode/dnode1/dnode2 五、安装Java 1. 官网下载jdk1.8.rpm包 2. rpm -ivh jdk1.8.rpm 六、安装hadoop 1. 官网下载hadoop2.7.3.tar.gz 2. tar xzvf hadoop2.7.3.tar.gz 3. mv hadoop2.7.3

学习进度十四(Spark之Java独立应用编程)

大城市里の小女人 提交于 2020-02-14 11:03:56
环境如下: Hadoop 2.6.0以上 java JDK 1.7以上 Spark 3.0.0-preview2 一、Scala独立应用编程 二、java独立应用编程 1、安装maven ubuntu中没有自带安装maven,需要手动安装maven。可以访问 maven官方下载 自己下载。这里直接给出 apache-maven-3.6.3-bin.zip的下载地址 ,直接点击下载即可。 选择安装在/usr/local/maven中: sudo unzip ~/下载/apache-maven-3.6.3-bin.zip -d /usr/local cd /usr/local sudo mv apache-maven-3.6.3/ ./maven sudo chown -R hadoop ./maven 2、Java应用程序代码 在终端执行如下命令创建一个文件夹sparkapp2作为应用程序根目录 cd ~ #进入用户主文件夹 mkdir -p ./sparkapp2/src/main/java 在 ./sparkapp2/src/main/java 下建立一个名为 SimpleApp.java 的文件(vim ./sparkapp2/src/main/java/SimpleApp.java),添加代码如下: /*** SimpleApp.java ***/ import org

SparkRESTApi使用JAVA封装

和自甴很熟 提交于 2020-02-14 07:21:06
项目功能就是封装SparkRestApi,用到了httpclient以及yarnclient,pom如下 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.2.2.RELEASE</version> <relativePath/> <!-- lookup parent from repository --> </parent> <groupId>com.wisetv</groupId> <artifactId>sparkprojectmanager<

2020.2.13

倖福魔咒の 提交于 2020-02-13 21:24:57
一、大数据spark 跟着b站的尚硅谷大数据往后学习了3个知识点。 跟进scala的知识点学习。 视频号: av62992342 av64039811 内容:Spark内核学习完成,Spark基本内容差不多完成了。 课程学习进度:90/126 二、《一线架构师实践指南》阅读 阅读了第十五章 数据架构的难点:数据分布 一、大数据spark 跟着b站的尚硅谷大数据往后学习了3个知识点。 跟进scala的知识点学习。 视频号: av62992342 av64039811 内容:Spark内核学习完成,Spark基本内容差不多完成了。 课程学习进度:90/126 二、《一线架构师实践指南》阅读 阅读了第十五章 数据架构的难点:数据分布 来源: https://www.cnblogs.com/yeshenfeng/p/12305079.html

spark梳理

强颜欢笑 提交于 2020-02-13 01:47:14
​大数据组件,离线用过hadoop,实时用过spark。 Hadoop现在比较稳定了,面试主要就是问Spark。 包括我工作这么多年,都没搞清过底层到底是怎么运行的,但是有些东西 懂的人一说就通了,优化起来也会有思路。 我下面给spark梳理一下。做个基本概要,方便面试。 一、spark运行原理: 1.提交spark任务,构建spark application运行环境,启动sparkContext。 2.sparkContext向资源管理器(可以使Standalone,Mesos,Yarn)申请运行Executor资源,并启动StandaloneExecutorbackend(后台监控程序)。 注: a.每个节点可以起一个或多个Executor。 3.Executor向SparkContext申请Task。 注: a.每个Executor由若干core组成,每个Executor的每个core一次只能执行一个Task。 b.每个Task执行的结果就是生产了目标RDD的一个partition。 c.这里的core是虚拟机的core而不是机器的物理CPU核,可以理解为就是Executor的一个工作线程。 d.Task被执行并发度(并发度不等于task数量)=Executor数目*每个Executor核数(=core总个数) e.partition数目在map阶段保持不变

spark的udf和udaf的注册

萝らか妹 提交于 2020-02-12 21:41:17
spark的udf和udaf的注册 一、udf spark.udf.register("addName", (x: String) => { "name: " + x }) 二、udaf 弱类型的自定义聚合函数 是不安全的 package com.huawei.appgallery.udf import org.apache.spark.sql.Row import org.apache.spark.sql.expressions.{MutableAggregationBuffer, UserDefinedAggregateFunction} import org.apache.spark.sql.types._ /** * author:Chen * 弱类型自定义聚合函数 * date:2020/2/12 14:29 */ object MyAverage extends UserDefinedAggregateFunction { //聚合后的输入数据类型 override def inputSchema: StructType = { StructType(StructField("name", StringType, nullable = true) :: StructField("salary", LongType, nullable = false) :: Nil) }

2020.2.12

只谈情不闲聊 提交于 2020-02-12 21:37:41
一、大数据spark 跟着b站的尚硅谷大数据往后学习了8个知识点。 同时把scala的知识点学习了一下。 视频号: av62992342 av64039811 内容:Spark内核 课程学习进度:87/126 二、《一线架构师实践指南》阅读 阅读了第十四章 物理架构、运行架构、开发架构 来源: https://www.cnblogs.com/yeshenfeng/p/12300952.html

第 6 章 Spark 内存管理

北城余情 提交于 2020-02-12 21:17:41
上篇: 第 5 章 Spark Shuffle解析 Spark 内存管理 在执行Spark 的应用程序时,Spark 集群会启动 Driver 和 Executor 两种 JVM 进程,前者为主控进程,负责创建 Spark 上下文,提交 Spark 作业(Job),并将作业转化为计算任务(Task),在各个 Executor 进程间协调任务的调度,后者负责在工作节点上执行具体的计算任务,并将结果返回给 Driver,同时为需要持久化的 RDD 提供存储功能。由于 Driver 的内存管理相对来说较为简单,本节主要对 Executor 的内存管理进行分析,下文中的 Spark 内存均特指 Executor 的内存。 1、堆内和堆外内存规划 作为一个 JVM 进程, Executor 的内存管理建立在 JVM 的内存管理之上,Spark 对 JVM 的堆内(On-heap)空间进行了更为详细的分配,以充分利用内存。同时,Spark 引入了堆外(Off-heap)内存,使之可以直接在工作节点的系统内存中开辟空间,进一步优化了内存的使用 。 堆内内存受到JVM统一管理,堆外内存是直接向操作系统进行内存的申请和释放。 堆内内存 堆内内存的大小,由 Spark 应用程序启动时的 –executor-memory 或 spark.executor.memory 参数配置。Executor

第 7 章 Spark 核心组件解析

允我心安 提交于 2020-02-12 21:14:32
上篇: 第 6 章 Spark 内存管理 1、BlockManager数据存储与管理机制 BlockManager是整个Spark底层负责数据存储与管理的一个组件,Driver和Executor的所有数据都由对应的BlockManager进行管理。 Driver上有BlockManagerMaster,负责对各个节点上的BlockManager内部管理的数据的元数据进行维护,比如block的增删改等操作,都会在这里维护好元数据的变更。 每个节点都有一个BlockManager,每个BlockManager创建之后,第一件事即使去向BlockManagerMaster进行注册,此时BlockManagerMaster会为其长难句对应的BlockManagerInfo。 BlockManager运行原理如下图所示: BlockManagerMaster与BlockManager的关系非常像NameNode与DataNode的关系,BlockManagerMaster中保存中BlockManager内部管理数据的元数据,进行维护,当BlockManager进行Block增删改等操作时,都会在BlockManagerMaster中进行元数据的变更,这与NameNode维护DataNode的元数据信息,DataNode中数据发生变化时NameNode中的元数据信息也会相应变化是一致的。