Spark的安装和使用方法
1. 安装Spark
2. 在Spark shell中运行代码
Spark Shell本身就是一个Driver,Driver包mian()和分布式数据集。
启动Spark Shell 命令:
./bin/spark-shell --master <master-url>
Spark的运行模式取决于传递给SparkContext的Master URL的值,可以有如下选择:
1. local 使用一个Worker线程来本地化运行Spark,非并行。默认模式。
2. local[*] 使用逻辑CPU个数数量的线程来本地化运行Spark。
3. local[K] 使用K个Worker线程来本地化运行Spark(理想情况下K应该根据运行机器的CPU核数设定)。
4. spark://HOST:PORT 连接到指定的Spark standalone master,默认端口7077。
5. yarn-client 以客户端模式连接Yarn集群,集群位置在HADOOP_CONF_DIR环境变量中。
6. yarn-cluster 以集群模式连接Yarn集群。
7. mesos://HOST:PORT 连接到指定的Mesos集群,默认端口5050。
在Spark中采用本地模式启动Spark Shell命令主要包括以下参数:
--master 表示要连接的master,如local[*]表示使用本地模式,其中*表示需要使用几个CPU Core(启动几个线程)模拟Spark集群;
--jars 用于把相关的jar包添加到CLASSPATH中,多个jar包可使用“,”连接。
比如要采用本地模式,在4个CPU核心上运行spark-shell
cd /usr/local/spark
./bin/spark-shell --master local[4] --jars code.jar
# 获取完整的选项列表
./bin/spark-shell --help
退出交互环境 :quit
3. 编写Spark独立应用程序
3.1 不同语言应用程序的编译方式
1. Scala编写的应用程序需要使用sbt或Maven进行编译打包;
2. Java编写的应用程序使用Maven编译打包;
3. Python编写的应用程序通过spark-submit直接提交;
3.2 安装sbt
sbt是一款Spark用来对Scala编写的程序进行打包的工具,Spark没有自带sbt,需下载安装。
3.3 scala应用程序
创建代码目录
/usr/local/spark/mycode/src/mian/scala
test.scala
import org.apache.spark.SparkContext
import org.apache.spark.SparkContext._
import org.apache.spark.SparkConfobject SimpleApp {def main(args: Array[String]): Unit = {val file = "file:///usr/local/spark/11.log"val conf = new SparkConf().setMaster("local[*]").setAppName("Simple Application")val sc = new SparkContext(conf)val data = sc.textFile(file, 2).cache()val num_a = data.filter(_.contains("a")).count()val num_b = data.filter(_.contains("b")).count()println("Line with a:%s, b:%s".format(num_a, num_b))}
}
3.4 使用sbt打包
第一次编译时,需在./sparkapp文件中新建文件simple.sbt(名字可以随便起,与工程无关,有一个以后就可以一直用了),声明该独立应用程序的信息以及与Spark的依赖关系。
name := "Simple Project"
version := "1.0"
scalaVersion := "2.11.8"
libraryDependencies += "org.apache.spark" %% "spark-core"%"2.1.0"
第一次运行可能很慢,需下载大量依赖,耐心等待。
运行前先执行检查
打包jar包
/usr/local/sbt/sbt package
3.5 通过spark-submit 运行
./bin/spark-submit--class <mian-class> // 应用程序入口点--master <master-url>--deploy-mode <deploy-mode>... # other options //其他参数<application-jar>[application-arguments] // 传递给主类的主方法的参数
运行
/usr/local/spark/bin/spark-submit --class "SimpleAPP" ~/sparkapp/target/scala-2.11/simple-project_2.11-1.0.jar
简化输出结果:
/usr/local/spark/bin/spark-submit --class "SimpleAPP" ~/sparkapp/target/scala-2.11/simple-project_2.11-1.0.jar 2>&1 | grep "Lines with a:"
4. WordCount
import org.apache.spark.SparkContext
import org.apache.spark.SparkContext_
import org.apache.spark.SparkConfobject SimpleApp {def main(args: Array[String]): Unit = {val file = "file:///usr/local/spark/11.log"val conf = new SparkConf().setAppName("Simple Application").setMaster("local[2]")val sc = new SparkContext(conf)val data = sc.textFile(file)val result = data.flatMap(line => line.split(" ")).map(word => (word, 1)).reduceByKey((a, b) => a+b)result.foreach(println)}
}
5. 使用Intellij IDEA编写Spark应用程序
1. 安装idea
2. 在idea中安装Scala插件,并配置JDK、Scala SDK
3. 创建Maven工程文件
4. 编写代码
5. 编译打包程序
参考: http://dblab.xmu.edu.cn/blog/1327/
6. Spark集群环境搭建
6.1 集群概况
使用3台机器(节点),1台作为Master节点,另外两台作为Slave节点(Woker节点),主机名分别为Slave01、Slave02。
6.2 搭建Hadoop集群环境
Spark+HDFS运行架构
参考: http://dblab.xmu.edu.cn/blog/1177-2/
6.3 安装Spark
6.3.1 节点配置
在Master节点上,下载Spark安装包
1. 配置slaves文件;
2. 配置spark-env.sh文件;
3. 将Master主机上的/usr/local/spark文件夹复制到各个节点上;
6.3.2 启动集群
1. 首先启动Hadoop集群;
2. 启动Master节点;
3. 启动所有Slave节点。
在Master主机浏览器上访问 http://master:8080,查看Spark独立集群管理器的集群信息。
6.3.3 关闭Spark集群
1. 关闭Master节点;
2. 关闭Worker节点;
3. 关闭Hadoop集群。
7. 在集群上运行Spark应用程序
7.1 采用独立集群管理器
7.1.1 在集群中运行应用程序jar包
sprak自带样例,计算pai值
/usr/local/spark/bin/spark-submit --class org.apache.spark.examples.SparkPi
--master spark://master:7077 examples/jars/spark-examples_2.11-2.0.2.jar 100 2>&1
| grep "PI is roughly"
7.1.2 在集群中运行spark-shell
用spark-shell连接到独立集群管理器
bin/spark-shell --master spark://master:7077
在独立集群管理Web界面查看应用的运行情况 http://master:8080
7.2 采用Haoop YARN管理器
7.2.1 在集群中运行应用程序jar包
bin/spark-submit --class org.apache.spark.examples.SparkPi--master yarn-cluster examples/jars/spark-examples_2.11-2.0.2.jar
在浏览器中打开运行追踪URL,点击Logs,再点击stdout,查看结果。
7.2.2 在集群中运行spark-shell
bin/spark-shell --master yarn
查看运行结果:http://master:8080/cluster
Spark的安装和使用方法相关推荐
- 2.Scala的安装和使用方法(华为云学习笔记,Spark编程基础,大数据)
Scala的安装和使用方法 ① 在Linux系统中安装Scala: ② 使用Scala REPL: ③ 编译打包Scala程序代码. 实验原理-> Scala Scala于2004年1月公开发布 ...
- Python之fastparquet:fastparquet的简介、安装、使用方法之详细攻略
Python之fastparquet:fastparquet的简介.安装.使用方法之详细攻略 目录 fastparquet的简介 fastparquet的安装 fastparquet的使用方法 1.读 ...
- Python之pyspark:pyspark的简介、安装、使用方法之详细攻略
Python之pyspark:pyspark的简介.安装.使用方法之详细攻略 目录 pyspark的简介 pyspark的安装 pyspark的使用方法 pyspark的简介 Spark是一个用于大规 ...
- Spark笔记整理(一):spark单机安装部署、分布式集群与HA安装部署+spark源码编译...
[TOC] spark单机安装部署 1.安装scala 解压:tar -zxvf soft/scala-2.10.5.tgz -C app/ 重命名:mv scala-2.10.5/ scala 配置 ...
- DL框架之DL4J/Deeplearning4j:深度学习框架DL4J/Deeplearning4j的简介、安装、使用方法之详细攻略
DL框架之DL4J/Deeplearning4j:深度学习框架DL4J/Deeplearning4j的简介.安装.使用方法之详细攻略 目录 深度学习框架Deeplearning4j的简介 1.Deep ...
- Kafka与Spark集成系列二Spark的安装及简单应用
原 [Kafka与Spark集成系列二] Spark的安装及简单应用https://blog.csdn.net/u013256816/article/details/82082019版权声明:本文为博 ...
- Spark安全威胁及建模方法
转载请注明出处:http://blog.csdn.net/hsluoyc/article/details/43977779 索取本文Word版本请回复,我会通过私信发送 本文主要通过官方文档.相关论文 ...
- 大数据之spark学习记录二: Spark的安装与上手
大数据之spark学习记录二: Spark的安装与上手 文章目录 大数据之spark学习记录二: Spark的安装与上手 Spark安装 本地模式 Standalone 模式 基本配置 步骤1: 复制 ...
- php symfony 安装,Symfony的安装和配置方法
这篇文章主要介绍了Symfony的安装和配置方法,分析了使用Composer安装Symfony的具体步骤与相关技巧,需要的朋友可以参考下 本文实例讲述了Symfony的安装和配置方法.分享给大家供大家 ...
- Spark的安装和使用
Spark2.1.0入门:Spark的安装和使用 Hadoop安装教程_单机/伪分布式配置_Hadoop2.6.0(2.7.1)/Ubuntu14.04(16.04) 手把手教你在VirtualBox ...
最新文章
- Linux系统版 lscpu
- Andrej Karpathy发文谈神经网络:这不仅仅是分类器,这是一种新的软件开发思想
- 链表问题(6)-----排序
- python框架大全_常用的Python开源框架有哪些?列举这3个
- 链接分析算法系列-机器学习排序
- LeetCode 2091. 从数组中移除最大值和最小值(一次遍历)
- 实现 Bootstrap 基本布局
- matlab 多项式表达,Matlab多项式运算
- 为什么现在的手机不像以前一样可以换电池?
- 余承东吐槽苹果续航;微软 IE 浏览器被曝漏洞;React Native 0.61.0 发布 | 极客头条...
- oracle把ascii吗,oracle中ascii函数及to_char函数使用及编码间的转换
- python ljust函数,Python 字符串左对齐-Python 指定字符串左对齐-python ljust() 函数-python ljust() 函数用法-嗨客网...
- 太阳能充电调节代码_储能管理系统对于充电站的作用
- java zookeeper 使用_Zookeeper简介
- HTML 区块、布局与框架
- png转ico+windows图标+GIMP
- 给一整型变量a,写两段代码,第一个设置a的bit3,第二个清除a的bit3.“a的bit3”
- 如何调节MAC 命令行终端字体大小
- 华为开始全面部署启用鸿蒙os系统,华为开始全面部署启用鸿蒙OS系统!
- 20 React项目生成及部署