热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Spark入门指南I快速配置

文章也同时在个人博客http:kimihe.com更新引言“ApacheSpark™isafastandgeneralengineforlarge-scaledataprocess

文章也同时在个人博客 http://kimihe.com/更新

引言

“Apache Spark™ is a fast and general engine for large-scale data processing.”

Spark是一种高性能分布式计算框架。它基于RDD使用内存来加速迭代过程。相比于前辈Hadoop,Spark有着更好的性能表现,尤其针对Machine Learning此类典型的应用,提升更为显著。

本文将集中介绍如何快速配置Spark。

软件依赖
  • 运行Spark需要java环境。
  • Spark应用多用Scala编写,建议使用SBT来管理。
安装java运行环境

安装JDK&JRE

sudo apt-get install openjdk-8-jre openjdk-8-jdk

建议装version 8不要装9。安装完成后,默认路径是/usr/lib/jvm/java-8-openjdk-amd64,如果不一致请搜索到正确路径。

添加环境变量

cd
vim .bashrc

添加如下jave的PATH:

# JAVA PATH
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64

更新环境变量

source .bashrc

测试java环境

java -version

看到相应版本信息输出即表明配置正确:

hadoop@hadoop-master:~$ java -version
openjdk version "1.8.0_121"
OpenJDK Runtime Environment (build 1.8.0_121-8u121-b13-0ubuntu1.16.04.2-b13)
OpenJDK 64-Bit Server VM (build 25.121-b13, mixed mode)
安装SBT

Mac

使用Homebrew下载

$ brew install sbt@1

或者使用Macports (Third-party package)

$ port install sbt

其它平台

SBT官方链接:有.zip,.tgz以及.msi供选择。

下载Spark

Spark官方链接。笔者选择的是2.2.0版本。

配置Spark

解压下载的.zip后,若只是想单机版运行,无需后续配置,直接就已经可以运行任务了。若想进行真正的分布式运行,请阅读下述配置流程:

  • 进入spark-2.2.0根目录的conf子目录。重点关注如下几个配置文件:log4j.properties.template(日记相关,使用默认即可), slaves.template(分布式worker节点配置)以及spark-defaults.conf.template(运行参数配置)。入门的配置大多只需要修改slaves.template即可。
  • 将slaves.template重命名,去除.template后缀,在其中添加分布式节点的IP信息。若只在本地运行,请填写localhost。笔者进行的是真分布式,所以填写了两台worker节点的IP或hosts信息,如:

# For Cluster
10.10.43.131
10.10.43.132

备注:请自行对应IP与hosts。

  • 配置完成后,进入spark-2.2.0根目录。运行./sbin/start-all.sh启动Spark。
  • 提交一个example中的任务:

./bin/spark-submit --class org.apache.spark.examples.SparkPi \
--master local ./examples/jars/spark-examples_2.11-2.2.0.jar 10

出现一系列反馈信息,如报错请仔细检查前面的配置,以及各类path输入是否正确。
详细的提交格式如下(可查阅Document):

./bin/spark-submit \
--class \
--master \
--deploy-mode \
--conf = \
... # other options
\
[application-arguments]

至此,最简单的Spark配置流程告一段落。

总结

作为Spark入门指南的第一篇,本文介绍了最快速的配置方法。
下篇笔者将讲解如何使用IntelliJ IDEA进行spark应用的开发。


推荐阅读
  • 本文介绍了Java工具类库Hutool,该工具包封装了对文件、流、加密解密、转码、正则、线程、XML等JDK方法的封装,并提供了各种Util工具类。同时,还介绍了Hutool的组件,包括动态代理、布隆过滤、缓存、定时任务等功能。该工具包可以简化Java代码,提高开发效率。 ... [详细]
  • 本文介绍了使用postman进行接口测试的方法,以测试用户管理模块为例。首先需要下载并安装postman,然后创建基本的请求并填写用户名密码进行登录测试。接下来可以进行用户查询和新增的测试。在新增时,可以进行异常测试,包括用户名超长和输入特殊字符的情况。通过测试发现后台没有对参数长度和特殊字符进行检查和过滤。 ... [详细]
  • JVM 学习总结(三)——对象存活判定算法的两种实现
    本文介绍了垃圾收集器在回收堆内存前确定对象存活的两种算法:引用计数算法和可达性分析算法。引用计数算法通过计数器判定对象是否存活,虽然简单高效,但无法解决循环引用的问题;可达性分析算法通过判断对象是否可达来确定存活对象,是主流的Java虚拟机内存管理算法。 ... [详细]
  • 本文介绍了在Mac上搭建php环境后无法使用localhost连接mysql的问题,并通过将localhost替换为127.0.0.1或本机IP解决了该问题。文章解释了localhost和127.0.0.1的区别,指出了使用socket方式连接导致连接失败的原因。此外,还提供了相关链接供读者深入了解。 ... [详细]
  • flowable工作流 流程变量_信也科技工作流平台的技术实践
    1背景随着公司业务发展及内部业务流程诉求的增长,目前信息化系统不能够很好满足期望,主要体现如下:目前OA流程引擎无法满足企业特定业务流程需求,且移动端体 ... [详细]
  • SpringMVC接收请求参数的方式总结
    本文总结了在SpringMVC开发中处理控制器参数的各种方式,包括处理使用@RequestParam注解的参数、MultipartFile类型参数和Simple类型参数的RequestParamMethodArgumentResolver,处理@RequestBody注解的参数的RequestResponseBodyMethodProcessor,以及PathVariableMapMethodArgumentResol等子类。 ... [详细]
  • 本文总结了Linux下多线程执行shell脚本的4种方法,包括切换到工作目录执行、使用绝对路径执行、直接使用bash或sh执行。同时介绍了为什么需要加上"./"来执行脚本的原因。 ... [详细]
  • 本文介绍了一种轻巧方便的工具——集算器,通过使用集算器可以将文本日志变成结构化数据,然后可以使用SQL式查询。集算器利用集算语言的优点,将日志内容结构化为数据表结构,SPL支持直接对结构化的文件进行SQL查询,不再需要安装配置第三方数据库软件。本文还详细介绍了具体的实施过程。 ... [详细]
  • Servlet多用户登录时HttpSession会话信息覆盖问题的解决方案
    本文讨论了在Servlet多用户登录时可能出现的HttpSession会话信息覆盖问题,并提供了解决方案。通过分析JSESSIONID的作用机制和编码方式,我们可以得出每个HttpSession对象都是通过客户端发送的唯一JSESSIONID来识别的,因此无需担心会话信息被覆盖的问题。需要注意的是,本文讨论的是多个客户端级别上的多用户登录,而非同一个浏览器级别上的多用户登录。 ... [详细]
  • node.jsrequire和ES6导入导出的区别原 ... [详细]
  • ZABBIX 3.0 配置监控NGINX性能【OK】
    1.在agent端查看配置:nginx-V查看编辑时是否加入状态监控模块:--with-http_stub_status_module--with-http_gzip_stat ... [详细]
  • 其实之前也有下载过完整的android源码,但是从来没有对这个做过一些总结,在加上最近需要经常去看,索性就在从新下载,编译一下,其实这些东西官网上面都有。http:sou ... [详细]
  • 进入配置文件目录:[rootlinuxidcresin-4.0.]#cdusrlocalresinconf查看都有哪些配置文件:[rootlinuxid ... [详细]
  • 生产环境下JVM调优参数的设置实例
     正文前先来一波福利推荐: 福利一:百万年薪架构师视频,该视频可以学到很多东西,是本人花钱买的VIP课程,学习消化了一年,为了支持一下女朋友公众号也方便大家学习,共享给大家。福利二 ... [详细]
  • 一面自我介绍对象相等的判断,equals方法实现。可以简单描述挫折,并说明自己如何克服,最终有哪些收获。职业规划表明自己决心,首先自己不准备继续求学了,必须招工作了。希望去哪 ... [详细]
author-avatar
青春梦敲门砖
我滴妈呀!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有