为了方便使用Spark的同学提交任务以及加强任务管理等原因,经调研采用Livy比较靠谱,下图大致罗列一下几种提交平台的差别。

  本文会以基于mac的单机环境搭建一套Spark+Livy+Hadoop来展示如何提交任务运行,本文只针对框架能够运行起来,至于各个组件参数怎么配置性能更好,各位兄弟就自行找度娘了。

一.搭建Spark

访问http://spark.apache.org/downloads.html下载安装包,然后按照以下步骤操作即可。

1.下载完成后解压到某个目录下,在该目录执行以下命令

tar zxvf spark-2.1.0-hadoop2.7.tgz

2.配置Spark环境变量

Mac环境变量一般在/etc/profile下配置,打开profile文件在文件中添加。

#SPARK VARIABLES START

export SPARK_HOME =/usr/local/spark-2.1.0-hadoop2.7

export PATH = ${PATH}:${SPARK_HOME}/bin

#SPARK VARIABLES END

3.配置Java环境

同样在/etc/profile下配置。在此之前已经安装scala和jdk相关环境。将java安装目录添加到里面export JAVA_HOME =/Library/java/javaVirtualMachines/jdk1.8.0_111.jdk/COntents/Home 设置完成后,保存退出,最后使用source /etc/profile 使环境变量生效。

4.执行sbin/start-all.sh,启动spark

5.测试

打开终端,输入pyspark,出现下面的画面即表示安装成功。

二.Livy安装

1.去https://www.apache.org/dyn/closer.lua/incubator/livy/0.6.0-incubating/apache-livy-0.6.0-incubating-bin.zip下载安装包。

2.解压安装包,并且编辑livy.conf,添加红框中的参数即可。

然后编辑livy-env.sh,添加Spark的安装目录配置。

3.最后bin/livy-server start启动Livy即可

三.Hadoop安装

1.去https://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common/下载安装包,并解压

2.修改各种配置,vim core-site.xml,修改为

修改hdfs-site.xml为

3.配置环境变量

export HADOOP_HOME=/User/deploy/software/hadoop/hadoop-2.8.5

export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

export CLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH

export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib:$HADOOP_COMMON_LIB_NATIVE_DIR"

export  HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native

4.格式化节点

5.执行sbin/start-all.sh启动Hadoop,出现以下界面说明安装成功

yarn和hadoop安装是一体的,访问判断yarn是否安装成功

6.如果datanode没有启动成功,就去配置的NameNode下的current/VERSION中的clusterID复制到DataNode下的VERSION即可。

四.开发代码提交任务

通过上面的步骤基础环境就已经搭建好,接着就是开发接口提交任务。部分代码截图如下:

 五.关注公众号获取源码

基于Livy的Spark提交平台搭建与开发的更多相关文章

  1. 【读书笔记】iOS-微信公众平台搭建与开发揭秘

    一,微信公众平台. 1,“再小的个体,也有自己的品牌”,这是微信公众平台的官方广告. 2,微信公众平台没有认证门槛,只需要一个邮箱和手持身份证照片.目前一个身份证号只可注册两个微信公众帐号. 二,LB ...

  2. Windows平台搭建NodeJs开发环境以及HelloWorld展示—图解

    Windows 7系统下搭建NodeJs开发环境(NodeJs+WebStrom)以及Hello World!展示,大体思路如下:第一步:安装NodeJs运行环境.第二步:安装WebStrom开发工具 ...

  3. 基于Docker的ELK日志平台搭建

    1.安装Docker Docker可简单理解为一个轻量级的虚拟机.Docker对进程进行封装隔离,隔离的进程独立于宿主和其它的隔离的进程,因此也称其为容器.Docker和传统虚拟化方式的不同.传统虚拟 ...

  4. win/mac平台搭建ionic开发环境教程(转)

    出处:http://www.ionic-china.com/doc/ionic-winmac.html#preface 前言 ionic中文网为大家准备了绿色版的nodejs和androidSDK以及 ...

  5. 在Windows平台搭建PHP开发环境(四)

    一.概念 1.1 在Windows下搭建 wamp: apache(iis) + php + mysql +phpmyadmin 1.2 在Linux下搭建     lamp: linux + php ...

  6. 在window平台搭建Qt开发环境(使用VS2008 IDE)

    一直用QT Creator(mingw)开发Qt应用程序,每次如果需要修改编译链接参数选项时,都要修改pro文件,而这个文件是基于文本的,每次都要记住这些选项参数名,如果在知道原理的情况下还记住这些字 ...

  7. 详解Windows平台搭建Androiod开发环境

    http://blog.csdn.net/lyq8479/article/details/6348330 1.安装JDK 2.安装SDK管理器,安装SDK(在线.离线) 3.下载安装Eclipse 4 ...

  8. cocos2d-x 2.1.4学习笔记01:windows平台搭建cocos2d-x开发环境

    cocos2d-x的大致开发流程是,首先使用win32版进行代码编写并完成游戏,然后将代码迁移到对应的开发环境上进行交叉编译完成游戏打包,如iphone上是mac+xcode,android是ecli ...

  9. Windows X64平台搭建Java开发环境

       JDK下载路径:www.oracle.com/technetwork/java/javase/downloads/index.html 下载JDK(Java Develop Kit) (1)针对 ...

随机推荐

  1. React Virtual DOM Explained in Simple English

    If you are using React or learning React, you must have heard of the term “Virtual DOM”. Now what is ...

  2. 选择 IDE 的目的

    选择 IDE 的目的 这个不消多说了, 在我看来,最重要的无非三点: 自动补全 自定义模板(俗称 custom snippets) IDE 内 debug. 代码静态检查(错误提示,这里主要包括 es ...

  3. Socket内核调用数SYSCALL_DEFINE3

    http://blog.chinaunix.net/uid-20788636-id-4408261.html 前言: 对于Linux内核的Socket系列文章都是依据于:Linux-3.14.5的版本 ...

  4. 了解Vuex状态管理模式的理解强化指南

    1 Vuex是什么呢?它是Vue的状态管理模式,在使用vue的时候,需要在vue中各个组件之间传递值是很痛苦的,在vue中我们可以使用vuex来保存我们需要管理的状态值,值一旦被改变,所有引用该值的地 ...

  5. 一起学Makefile(四)

    变量的定义 makefile中的变量,与C语言中的宏类似,它为一个文本字符串(变量的值,其类型只能是字符串类型)提供了一个名字(变量名). 变量的基本格式: 变量名   赋值符   变量值 变量名指的 ...

  6. HustOJ二次开发之修改相关Logo

    比如将如图中的HUSTOJ进行修改: 在Linux上修改,通过关键字搜索,会获取如下两个重要文件,找到都有的文字进行修改即可: grep -rn "HUSTOJ" * cd /ho ...

  7. [Gamma阶段]第六次Scrum Meeting

    Scrum Meeting博客目录 [Gamma阶段]第六次Scrum Meeting 基本信息 名称 时间 地点 时长 第六次Scrum Meeting 19/06/1 大运村寝室6楼 25min ...

  8. leetcode:146. LRU缓存机制

    题目描述: 运用你所掌握的数据结构,设计和实现一个  LRU (最近最少使用) 缓存机制.它应该支持以下操作: 获取数据 get 和 写入数据 put . 获取数据 get(key) - 如果密钥 ( ...

  9. leetcode: 最长上升子序列

    题目描述: 给定一个无序的整数数组,找到其中最长上升子序列的长度. 示例: 输入: [10,9,2,5,3,7,101,18]输出: 4 解释: 最长的上升子序列是 [2,3,7,101],它的长度是 ...

  10. How To Wake Up at 5 A.M. Every Day

    How To Wake Up at 5 A.M. Every Day For the past 3 months, I’ve successfully transitioned into being ...