基于Livy的Spark提交平台搭建与开发
为了方便使用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提交平台搭建与开发的更多相关文章
- 【读书笔记】iOS-微信公众平台搭建与开发揭秘
一,微信公众平台. 1,“再小的个体,也有自己的品牌”,这是微信公众平台的官方广告. 2,微信公众平台没有认证门槛,只需要一个邮箱和手持身份证照片.目前一个身份证号只可注册两个微信公众帐号. 二,LB ...
- Windows平台搭建NodeJs开发环境以及HelloWorld展示—图解
Windows 7系统下搭建NodeJs开发环境(NodeJs+WebStrom)以及Hello World!展示,大体思路如下:第一步:安装NodeJs运行环境.第二步:安装WebStrom开发工具 ...
- 基于Docker的ELK日志平台搭建
1.安装Docker Docker可简单理解为一个轻量级的虚拟机.Docker对进程进行封装隔离,隔离的进程独立于宿主和其它的隔离的进程,因此也称其为容器.Docker和传统虚拟化方式的不同.传统虚拟 ...
- win/mac平台搭建ionic开发环境教程(转)
出处:http://www.ionic-china.com/doc/ionic-winmac.html#preface 前言 ionic中文网为大家准备了绿色版的nodejs和androidSDK以及 ...
- 在Windows平台搭建PHP开发环境(四)
一.概念 1.1 在Windows下搭建 wamp: apache(iis) + php + mysql +phpmyadmin 1.2 在Linux下搭建 lamp: linux + php ...
- 在window平台搭建Qt开发环境(使用VS2008 IDE)
一直用QT Creator(mingw)开发Qt应用程序,每次如果需要修改编译链接参数选项时,都要修改pro文件,而这个文件是基于文本的,每次都要记住这些选项参数名,如果在知道原理的情况下还记住这些字 ...
- 详解Windows平台搭建Androiod开发环境
http://blog.csdn.net/lyq8479/article/details/6348330 1.安装JDK 2.安装SDK管理器,安装SDK(在线.离线) 3.下载安装Eclipse 4 ...
- cocos2d-x 2.1.4学习笔记01:windows平台搭建cocos2d-x开发环境
cocos2d-x的大致开发流程是,首先使用win32版进行代码编写并完成游戏,然后将代码迁移到对应的开发环境上进行交叉编译完成游戏打包,如iphone上是mac+xcode,android是ecli ...
- Windows X64平台搭建Java开发环境
JDK下载路径:www.oracle.com/technetwork/java/javase/downloads/index.html 下载JDK(Java Develop Kit) (1)针对 ...
随机推荐
- 洛谷 P1120 小木棍 题解
每日一题 day54 打卡 Analysis 一,管理员已经在题目中告诉你输入时去掉长度大于50的木棍. 二,想好搜索什么.很明显我们要枚举把哪些棍子拼接成原来的长棍,而原始长度(原来的长棍的长度)都 ...
- vue的认识===下载
VUE:不建议直接操作DOM Vue.js是前端三大新框架:Angular.js.React.js.Vue.js之一,Vue.js目前的使用和关注程度在三大框架中稍微 胜出,并且它的热度还在递增 Vu ...
- diffy 方便的bug 以及流量测试系统
diffy 是twiiter 开源的流量以及bug 查找系统 参考使用图 几点说明 使用diffy我们需要三个角色 candidate instance 候选实例,运行新的代码 primary ins ...
- 某神奇的cf跳转插件
// ==UserScript== // @name Codeforces快速跳转菜单 // @namespace http://tampermonkey.net/ // @version 2019. ...
- mybatis 根据多个id查询数据 foreach标签
//根据设备多个id获取设备信息 public List<Devices> getDevicesAll(@Param("devicesIds") String[] de ...
- attempt to call method 'getDataString' (a nil value)
错误: LUA ERROR: [: attempt to call method 'getDataString' (a nil value) 在合并cocos和quick的时候,在EventCusto ...
- 《京东上千页面搭建基石——CMS前后端分离演进史》阅读笔记
一.背景 CMS即内容管理系统,目的是用于快速进行网站建设或者网页开发. 对于京东网站部门来说,CMS核心目的是用来快速开发和上线各种页面,诸如各种垂直频道页. 二.CMS核心目的 进行数据和模板的统 ...
- bootstrap弹框去除遮罩层效果
是通过css解决这个问题,核心css代码如下: .modal-backdrop { filter: alpha(opacity=)!important; opacity: !important; } ...
- 访问者模式(Visitor Patten)
参考文章: http://www.importnew.com/15561.html 定义: 封装某些作用于某种数据结构中各元素的操作,它可以在不改变数据结构的前提下定义作用于这些元素的新的操作. um ...
- java对象生成随意属性值
public class RandomObjectValue { public static <T> T getObject(Class<?> clazz) { T t = n ...