热门标签 | 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应用的开发。


推荐阅读
  • 本文详细介绍了 InfluxDB、collectd 和 Grafana 的安装与配置流程。首先,按照启动顺序依次安装并配置 InfluxDB、collectd 和 Grafana。InfluxDB 作为时序数据库,用于存储时间序列数据;collectd 负责数据的采集与传输;Grafana 则用于数据的可视化展示。文中提供了 collectd 的官方文档链接,便于用户参考和进一步了解其配置选项。通过本指南,读者可以轻松搭建一个高效的数据监控系统。 ... [详细]
  • 为了确保iOS应用能够安全地访问网站数据,本文介绍了如何在Nginx服务器上轻松配置CertBot以实现SSL证书的自动化管理。通过这一过程,可以确保应用始终使用HTTPS协议,从而提升数据传输的安全性和可靠性。文章详细阐述了配置步骤和常见问题的解决方法,帮助读者快速上手并成功部署SSL证书。 ... [详细]
  • 为了在Hadoop 2.7.2中实现对Snappy压缩和解压功能的原生支持,本文详细介绍了如何重新编译Hadoop源代码,并优化其Native编译过程。通过这一优化,可以显著提升数据处理的效率和性能。此外,还探讨了编译过程中可能遇到的问题及其解决方案,为用户提供了一套完整的操作指南。 ... [详细]
  • Amoeba 通过优化 MySQL 的读写分离功能显著提升了数据库性能。作为一款基于 MySQL 协议的代理工具,Amoeba 能够高效地处理应用程序的请求,并根据预设的规则将 SQL 请求智能地分配到不同的数据库实例,从而实现负载均衡和高可用性。该方案不仅提高了系统的并发处理能力,还有效减少了主数据库的负担,确保了数据的一致性和可靠性。 ... [详细]
  • 本文介绍了 Vue 开发的入门指南,重点讲解了开发环境的配置与项目的基本搭建。推荐使用 WebStorm 作为 IDE,其下载地址为 。安装时请选择适合您操作系统的版本,并通过 获取激活码。WebStorm 是前端开发者的理想选择,提供了丰富的功能和强大的代码编辑能力。 ... [详细]
  • 本文介绍了如何在 Windows 系统上利用 Docker 构建一个包含 NGINX、PHP、MySQL、Redis 和 Elasticsearch 的集成开发环境。通过详细的步骤说明,帮助开发者快速搭建和配置这一复杂的技术栈,提升开发效率和环境一致性。 ... [详细]
  • 利用ZFS和Gluster实现分布式存储系统的高效迁移与应用
    本文探讨了在Ubuntu 18.04系统中利用ZFS和Gluster文件系统实现分布式存储系统的高效迁移与应用。通过详细的技术分析和实践案例,展示了这两种文件系统在数据迁移、高可用性和性能优化方面的优势,为分布式存储系统的部署和管理提供了宝贵的参考。 ... [详细]
  • 在 CentOS 6.5 系统上部署 VNC 服务器的详细步骤与配置指南
    在 CentOS 6.5 系统上部署 VNC 服务器时,首先需要确认 VNC 服务是否已安装。通常情况下,VNC 服务默认未安装。可以通过运行特定的查询命令来检查其安装状态。如果查询结果为空,则表明 VNC 服务尚未安装,需进行手动安装。此外,建议在安装前确保系统的软件包管理器已更新至最新版本,以避免兼容性问题。 ... [详细]
  • 在 Ubuntu 系统中安装 Python pip 时遇到错误的解决方案 ... [详细]
  • 在JavaWeb项目架构中,NFS(网络文件系统)的实现与优化是关键环节。NFS允许不同主机系统通过局域网共享文件和目录,提高资源利用率和数据访问效率。本文详细探讨了NFS在JavaWeb项目中的应用,包括配置、性能优化及常见问题的解决方案,旨在为开发者提供实用的技术参考。 ... [详细]
  • Docker镜像加载优化:开发者的高效实践指南
    Docker镜像加载优化:开发者的高效实践指南 ... [详细]
  • 如何在PHP中正确配置错误显示功能
    在PHP中正确配置错误显示功能的方法如下:首先,定位并打开“php.ini”配置文件;接着,将“display_errors”参数设置为“On”;最后,在PHP代码文件的顶部添加 `ini_set('display_errors', '1');` 以确保错误信息能够被正确显示。此外,建议在开发环境中启用此功能,而在生产环境中禁用,以避免敏感信息泄露。 ... [详细]
  • 本文深入解析了 FCEUX 源码,并详细介绍了两种制作 DEB 包的方法及其技术细节。首先,DEB 包通常由两部分组成:控制信息(位于 DEBIAN 目录)和安装内容(模拟目录)。通过解压现有的 DEB 包,可以查看其内部结构,进而理解其工作原理。具体操作包括将安装内容释放到指定目录中,以便进行进一步的修改和定制。此外,文章还探讨了如何修改现有的 DEB 包,以满足特定需求,提供了实用的步骤和技巧。 ... [详细]
  • 在 CentOS 7 环境中安装 OpenCV 2.4.13 后,如果出现无法找到模块的问题,通常是由于环境变量未正确配置所致。解决方法是在用户主目录下的 `.bashrc` 文件中添加相应的路径。具体操作为:进入主目录,使用 `vim .bashrc` 命令打开文件,并在文件末尾添加 OpenCV 的库路径。保存并退出后,通过 `source .bashrc` 使配置生效。这将确保系统能够正确识别并加载 OpenCV 模块。 ... [详细]
  • CentOS 7环境下Jenkins的安装与前后端应用部署详解
    CentOS 7环境下Jenkins的安装与前后端应用部署详解 ... [详细]
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社区 版权所有