Spark Local模式安装

因为想在自己的小本本的Linux系统下装spark。用一下章鱼平台上实验的Local模式下安装Spark。

实验来自章鱼大数据--------------------------------------------------------------------------------------------------------------------------------------------------实验来自章鱼大数据

实验目的

           1.了解Spark的六种运行模式

           2.准确理解Spark Local模式运行原理

           3.熟练掌握Spark Local模式的安装流程

实验原理

           目前Apache Spark主要支持三种分布式部署方式:分别是standalone、Spark on mesos和spark on YARN,其中,第一种类似于  MapReduce 1.0所采用的模式,内部实现了容错性和资源管理,后两种则是未来发展的趋势,部分容错性和资源管理交由统一的资源管理系统完成:让Spark运行在一个通用的资源管理系统之上,这样可以与其他计算框架,比如MapReduce共用一个集群资源,最大的好处是降低运维成本和提高资源利用率(资源按需分配)。

       1.Spark运行模式概述

          在实际应用中,Spark应用程序的运行模式取决于传递给SparkContext的MASTER环境变量的值,个别模式还需要依赖辅助的程序接口来配合使用,目前所支持的MASTER环境变量由特定的字符串或URL所组成,如下所示。

          (1)Local[N]:本地模式,使用多个线程。

          (2)Local cluster[worker, core, Memory]:伪分布式模式,可以配置所需要启动的虚拟工作节点的数量,以及每个工作节点所管理的CPU数量和内存尺寸。

          (3)Spark://hostname:port:Standalone模式,需要部署Spark到相关节点,URL为Spark Master主机地址和端口。

          (4)Mesos://hostname:port:Mesos模式,需要部署Spark和Mesos到相关节点,URL为Mesos主机地址和端口。

          (5)YARN standalone/Yarn cluster:YARN模式一,主程序逻辑和任务都运行在YARN集群中。

          (6)YARN client:YARN模式二,主程序逻辑运行在本地,具体任务运行在YARN集群中。

            此外还有一些用于调试的URL,因为和应用无关,我们在这里就不列举了。

       2.Local模式部署及程序运行

            Local模式,顾名思义就是在本地运行,如果不加任何配置,Spark默认设置为Local模式。以SparkPi为例,Local模式下的应用程序的启动命令如下:

            ./bin/run-example org.apache.spark.examples.SparkPi local

           在SparkPi代码的具体实现中,是根据用户传入的参数来选择运行模式的,如果需要自己在代码中指定运行模式,可以通过在代码中配置Master为Local来实现,如以下程序所示。

         import org.apache.spark.{SparkConf, SparkContext}

         val conf = new SparkConf()

        .setMaster("local")

       .setAppName("My application")

       .set("spark.executor.memory", "1g")

        val sc = new SparkContext(conf)

            当然,为了使应用程序能够更灵活地在各种部署环境下使用,不建议把与运行环境相关的设置直接在代码中写死。

         3.Local本地模式内部实现原理

               Local本地模式使用LocalBackend配合TaskSchedulerImpl,内部逻辑结构如下图所示:


            LocalBackend响应Scheduler的receiveOffers请求,根据可用的CPU核的设定值[N]直接生成CPU资源返回给Scheduler,并通过Executor类在线程池中依次启动和运行Scheduler返回的任务列表,其核心事件循环由内部类LocalActor以Akka Actor的消息处理形式来实现。

实验环境

           Linux Ubuntu 14.04

           jdk-7u75-linux-x64

实验内容

           在已经安装有jdk1.7的Linux系统的环境下,进行Spark local模式安装。

实验步骤

            1.Spark的运行依赖jdk以及scala环境。在此已默认安装jdk1.7。

            2.首先在linux上创建目录/data/spark1,用于存储所需文件。

切换目录到/data/spark1目录,使用wget命令,下载所需的Spark安装包spark-1.6.0-bin-hadoop2.6.tgz以及Scala安装包scala2.10.4.tgz。


此处建议使用scala-2.10.4版本。官网中指出,若使用scala2.11.x版本,需要重新编译Spark,并且编译时,需要指定Scala版本的类型。

关于Spark版本,没有严格要求。所以我们使用Spark1.6版本。

              3.安装scala。切换目录到/data/spark1目录下,将scala-2.10.4.tgz解压缩到/apps目录下,并将解压后的目录名改为/apps/scala。



        使用vim打开用户环境变量~/.bashrc。

        代码: vim  ~/.bashrc

        将scala的bin目录,追加到用户环境变量中,然后保存退出


         执行source命令,使系统环境变量生效

         代码:source  ~/.bashrc

          4,切换目录到/data/spark1目录下,将spark的安装包spark-1.6.0-bin-hadoop2.6.tgz,解压缩到/apps目录下,并将解压后的目录名重命名为spark。

代码 如下 : 


使用vim打开用户环境变量~/.bashrc。

代码:vim ~/.bashrc

将Spark的配置信息追加到用户环境变量中,然后保存退出


执行source命令,使用户环境变量生效。

代码:Source ~/.bashrc

           5,下面不需要对spark进行任何配置,就可以启动spark-shell进行任务处理了。

           切换目录到/apps/spark/bin目录下,启动spark shell,验证安装完的spark是否可用。可以启动本地模式。

执行


               6,执行测试。在Spark Shell中,使用Scala加载Spark安装目录下,文件README.md,并转变为rdd。

Val rdd =sc.textFile(“/apps/spark/README.md”)

对rdd进行算子操作,统计文件的行数。

可以看到输出为:



  Spark安装完成!

实验来自章鱼大数据--------------------------------------------------------------------------------------------------------------------------------------------------实验来自章鱼大数据

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,324评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,303评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,192评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,555评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,569评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,566评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,927评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,583评论 0 257
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,827评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,590评论 2 320
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,669评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,365评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,941评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,928评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,159评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,880评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,399评论 2 342

推荐阅读更多精彩内容