一、安装Spark

spark和Hadoop可以部署在一起,相互协作,由Hadoop的HDFS、HBase等组件复制数据的存储和管理,由Spark负责数据的计算。

Linux:CentOS Linux release 7.6.1810(Core)(cat /etc/centos-release 查看linux版本)

Hadoop:2.8.5(hadoop version)

JDK:1.8.0_171(java -version)

Spark:2.3.0(先在命令行中查找spark-shell所在的位置,命令为find / -name spark-shell,然后运行spark-shell,就能看到spark的版本号了)

二、在spark-shell中运行代码

1.四种模式

(1)local

(2)独立集群

(3)yarn

(4)MESOS

举例:

启动spark shell成功后在输出信息的末尾可以看到"scala >"的命令提示符

三、编写Spark独立应用程序

第一步:

第二步:

(1)sbt

步骤一:安装sbt

步骤2:用sbt打包

需要在应用程序的目录下构建simple.sbt文件(只要扩展名是.sbt都可以),在sbt中给出依赖说明,说明中包括当前应用的名称,版本号,scala版本,依赖的groupID

在正式打包编译之前,需要检查一下目录结构,必须要满足下面的目录结构,才允许打包,编译。

打包成功,会出现success信息

(2)Maven

步骤一:安装Maven

在写本地文件的时候一定是file:///

步骤二:建一个新的目录叫sparkapp2,在该目录下建立src/main/scala,增加SimpleApp.scala代码

在“~/sparkapp2”目录中新建pom.xml文件

四、Spark集群环境搭建

在实验室用三台机器搭建spark集群,一台作为主节点master,两台作为辅节点slave,将三台设备配置在同一个局域网内。 底层的Hadoop也要用集群进行配置,数据分布式保存,计算也要分布式运算

(1)在master节点上访问Spark官网下载Spark安装包

在master节点主机的终端中执行如下命令:

在.bashrc添加如下配置

运行source命令,使配置立即生效

(2)在master节点上配置slaves文件,该文件包含了所有从节点的相关信息,slaves文件是在Spark安装目录下面的conf子目录下,在conf子目录下有一个slave.template模块文件,把这个模板文件复制,重命名为Slaves文件。打开这个文件,把刚才两个从节点主机名称放到这个slave文件中保存一下,

(3)配置spark-env.sh文件

将spark-env.template拷贝到spark-env.sh,在这个文件中,需要添加三行配置信息。

(4)将Master主机上的/usr/local/spark文件夹复制到各个节点上

在两个从节点上分别执行下面的操作,

(5)启动集群

启动Hadoop集群,然后启动Master节点,

然后再在master节点上,运行start-slaves.sh这个脚本文件,去启动另外两个从节点,

在master主机上打开浏览器,访问http://master:8080,就会显示下图集群信息

(6)关闭集群

先关闭spark(都是在master节点上执行,不用到slave节点关闭),再关闭Hadoop

五、在集群上运行Spark应用程序

1.启动Hadoop集群、Master节点和所有slaves节点

2.在集群汇总运行应用程序JAR包

安装目录是/usr/local/spark/,在这个目录下油锅spark-submit命令,用这个命令去提交刚才的应用程序,

3.在集群中运行spark-shell

  在交互式命令下,运行程序。下面写法表示spark-shell一进入交互式环境,就连接到独立集群资源管理器上面,通过它来调度指挥资源。

在spark交互式环境中,系统会自动生成一个名词为sc的SparkContext对象

用户在独立集群管理Web界面查看应用的运行情况:在浏览器中输入http://master:8080/,就可以查看当前的运行状态。

4.向Hadoop YARN集群管理器提交应用

在当前master节点的安装目录下去运行命令,

运行后,根据在shell中得到输出的结果地址进行查看

5.用spark-shell连接到YARN集群管理器上

在客户端启动一个spark-shell,是在客户端的交互式环境下执行,不可能是cluster模式,肯定是一个client模式。

参考文献:

【1】Spark编程基础_中国大学MOOC(慕课)

4.Spark环境搭建和使用方法的更多相关文章

  1. Hive On Spark环境搭建

    Spark源码编译与环境搭建 Note that you must have a version of Spark which does not include the Hive jars; Spar ...

  2. 分布式计算框架-Spark(spark环境搭建、生态环境、运行架构)

    Spark涉及的几个概念:RDD:Resilient Distributed Dataset(弹性分布数据集).DAG:Direct Acyclic Graph(有向无环图).SparkContext ...

  3. Spark学习进度-Spark环境搭建&Spark shell

    Spark环境搭建 下载包 所需Spark包:我选择的是2.2.0的对应Hadoop2.7版本的,下载地址:https://archive.apache.org/dist/spark/spark-2. ...

  4. Spark环境搭建(上)——基础环境搭建

    Spark摘说 Spark的环境搭建涉及三个部分,一是linux系统基础环境搭建,二是Hadoop集群安装,三是Spark集群安装.在这里,主要介绍Spark在Centos系统上的准备工作--linu ...

  5. Eclipse+maven+scala+spark环境搭建

    准备条件 我用的Eclipse版本 Eclipse Java EE IDE for Web Developers. Version: Luna Release (4.4.0) 我用的是Eclipse ...

  6. 学习Spark——环境搭建(Mac版)

    大数据情结 还记得上次跳槽期间,与很多猎头都有聊过,其中有一个猎头告诉我,整个IT跳槽都比较频繁,但是相对来说,做大数据的比较"懒"一些,不太愿意动.后来在一篇文中中也证实了这一观 ...

  7. 大数据学习系列之六 ----- Hadoop+Spark环境搭建

    引言 在上一篇中 大数据学习系列之五 ----- Hive整合HBase图文详解 : http://www.panchengming.com/2017/12/18/pancm62/ 中使用Hive整合 ...

  8. Spark环境搭建(六)-----------sprk源码编译

    想要搭建自己的Hadoop和spark集群,尤其是在生产环境中,下载官网提供的安装包远远不够的,必须要自己源码编译spark才行. 环境准备: 1,Maven环境搭建,版本Apache Maven 3 ...

  9. Spark环境搭建(四)-----------数据仓库Hive环境搭建

    Hive产生背景 1)MapReduce的编程不便,需通过Java语言等编写程序 2) HDFS上的文缺失Schema(在数据库中的表名列名等),方便开发者通过SQL的方式处理结构化的数据,而不需要J ...

随机推荐

  1. MD文件图片base64自动编码

    看工具链接请直接将文章拉到最后.. 概述 不知道你在使用markdown写文章的时候有没有遇到过这样的烦恼, 文件写完了, 想将写完的文章粘贴到博客的时候, 你满心欢喜的复制粘贴, 但是发现图片根本复 ...

  2. 环形链表 II

    给定一个链表,返回链表开始入环的第一个节点. 如果链表无环,则返回 null. 为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始). 如果 pos 是 - ...

  3. sql 代码优化

    1. where 执行顺序:右→左,筛选多的放右边:计算难度小的放右边,sql老版本(只在基于规则的优化器中有效,新版本基于代价不存在这个问题): 2. 少用子查询: 3. union快,表结构得一致 ...

  4. 用java写爬虫

    今天学了怎么用java代码获取要爬取页面的源代码,因为只写了一点,所以接下来会陆续跟新此文章 首先,看一下我写的代码 这就是爬取下来的网页源代码,第一张图刚刚补注释有个注释写错了,别误导你们就行,接下 ...

  5. Log日志级别从高到低排序 ERROR、WARN、INFO、DEBUG

    Log4j建议只使用四个级别,优先级从高到低分别是 ERROR.WARN.INFO.DEBUG.通过在这里定义的级别,您可以控制到应用程序中相应级别的日志信息的开关.比如在这里定义了INFO级别,则应 ...

  6. ASP.NET开发实战——(十三)ASP.NET MVC 与数据库之EF实体类与数据库结构

    大家都知道在关系型数据库中每张表的每个字段都会有自己的属性,如:数据类型.长度.是否为空.主外键.索引以及表与表之间的关系.但对于C#编写的类来说,它的属性只有一个数据类型和类与类之间的关系,但是在M ...

  7. 第09组 Beta版本演示

    组长博客 本组(组名)所有成员 短学号 姓名 2236 王耀鑫(组长) 2210 陈超颖 2209 陈湘怡 2228 许培荣 2204 滕佳 2205 何佳琳 2237 沈梓耀 2233 陈志荣 22 ...

  8. flexible.js 布局详解

    原文链接:http://caibaojian.com/flexible-js.html 本文讲的通过flexible.js实现了rem自适应,有了flexible.js,我们就不必再为移动端各种设备兼 ...

  9. 移动端&PC端CSS样式兼容代码

    CSS样式兼容代码 1.禁止选中复制文本 *{ user-select: none; -moz-user-select: none; -ms-user-select: none; -webkit-us ...

  10. hdu-6071 Lazy Running

    In HDU, you have to run along the campus for 24 times, or you will fail in PE. According to the rule ...