1. 说明

本文基于:spark-2.4.0-hadoop2.7-高可用(HA)安装部署

2. 启动Spark Shell

  在任意一台有spark的机器上执行

 # --master spark://mini02:7077  连接spark的master,这个master的状态为alive,而不是standby
# --total-executor-cores 总共占用2核CPU
# --executor-memory 512m 每个woker占用512m内存
[yun@mini03 ~]$ spark-shell --master spark://mini02:7077 --total-executor-cores 2 --executor-memory 512m
-- :: WARN NativeCodeLoader: - Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
Setting default log level to "WARN".
To adjust logging level use sc.setLogLevel(newLevel). For SparkR, use setLogLevel(newLevel).
Spark context Web UI available at http://mini03:4040
Spark context available as 'sc' (master = spark://mini02:7077, app id = app-20181125120746-0001).
Spark session available as 'spark'.
Welcome to
____ __
/ __/__ ___ _____/ /__
_\ \/ _ \/ _ `/ __/ '_/
/___/ .__/\_,_/_/ /_/\_\ version 2.4.
/_/ Using Scala version 2.11. (Java HotSpot(TM) -Bit Server VM, Java 1.8.0_112)
Type in expressions to have them evaluated.
Type :help for more information. scala> sc
res0: org.apache.spark.SparkContext = org.apache.spark.SparkContext@77e1b84c

注意:

  如果启动spark shell时没有指定master地址,但是也可以正常启动spark shell和执行spark shell中的程序,其实是启动了spark的local模式,该模式仅在本机启动一个进程,没有与集群建立联系。

2.1. 相关截图

3. 执行第一个spark程序

  该算法是利用蒙特•卡罗算法求PI

 [yun@mini03 ~]$ spark-submit \
--class org.apache.spark.examples.SparkPi \
--master spark://mini02:7077 \
--total-executor-cores \
--executor-memory 512m \
/app/spark/examples/jars/spark-examples_2.-2.4..jar
# 打印的信息如下:
-- :: WARN NativeCodeLoader: - Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
-- :: INFO SparkContext: - Running Spark version 2.4.
………………
-- :: INFO TaskSetManager: - Finished task 97.0 in stage 0.0 (TID ) in ms on 172.16.1.14 (executor ) (/)
-- :: INFO TaskSetManager: - Finished task 98.0 in stage 0.0 (TID ) in ms on 172.16.1.13 (executor ) (/)
-- :: INFO TaskSetManager: - Finished task 99.0 in stage 0.0 (TID ) in ms on 172.16.1.14 (executor ) (/)
-- :: INFO TaskSchedulerImpl: - Removed TaskSet 0.0, whose tasks have all completed, from pool
-- :: INFO DAGScheduler: - ResultStage (reduce at SparkPi.scala:) finished in 3.881 s
-- :: INFO DAGScheduler: - Job finished: reduce at SparkPi.scala:, took 4.042591 s
Pi is roughly 3.1412699141269913
………………

4. Spark shell求Word count 【结合Hadoop】

1、启动Hadoop

2、将文件放到Hadoop中

 [yun@mini05 sparkwordcount]$ cat wc.info
zhang linux
linux tom
zhan kitty
tom linux
[yun@mini05 sparkwordcount]$ hdfs dfs -ls /
Found items
drwxr-xr-x - yun supergroup -- : /hbase
drwx------ - yun supergroup -- : /tmp
drwxr-xr-x - yun supergroup -- : /wordcount
-rw-r--r-- yun supergroup -- : /zookeeper-3.4..tar.gz
[yun@mini05 sparkwordcount]$ hdfs dfs -mkdir -p /sparkwordcount/input
[yun@mini05 sparkwordcount]$ hdfs dfs -put wc.info /sparkwordcount/input/.info
[yun@mini05 sparkwordcount]$ hdfs dfs -put wc.info /sparkwordcount/input/.info
[yun@mini05 sparkwordcount]$ hdfs dfs -put wc.info /sparkwordcount/input/.info
[yun@mini05 sparkwordcount]$ hdfs dfs -put wc.info /sparkwordcount/input/.info
[yun@mini05 sparkwordcount]$ hdfs dfs -ls /sparkwordcount/input
Found items
-rw-r--r-- yun supergroup -- : /sparkwordcount/input/.info
-rw-r--r-- yun supergroup -- : /sparkwordcount/input/.info
-rw-r--r-- yun supergroup -- : /sparkwordcount/input/.info
-rw-r--r-- yun supergroup -- : /sparkwordcount/input/.info

3、进入spark shell命令行,并计算

 [yun@mini03 ~]$ spark-shell --master spark://mini02:7077 --total-executor-cores 2 --executor-memory 512m
# 计算完毕后,打印在命令行
scala> sc.textFile("hdfs://mini01:9000/sparkwordcount/input").flatMap(_.split(" ")).map((_, )).reduceByKey(_+_).sortBy(_._2, false).collect
res6: Array[(String, Int)] = Array((linux,), (tom,), (kitty,), (zhan,), ("",), (zhang,))
# 计算完毕后,保存在HDFS【因为有多个文件组成,则有多个reduce,所以输出有多个文件】
scala> sc.textFile("hdfs://mini01:9000/sparkwordcount/input").flatMap(_.split(" ")).map((_, )).reduceByKey(_+_).sortBy(_._2, false).saveAsTextFile("hdfs://mini01:9000/sparkwordcount/output")
# 计算完毕后,保存在HDFS【将reduce设置为1,输出就只有一个文件】
scala> sc.textFile("hdfs://mini01:9000/sparkwordcount/input").flatMap(_.split(" ")).map((_, )).reduceByKey(_+_, ).sortBy(_._2, false).saveAsTextFile("hdfs://mini01:9000/sparkwordcount/output1")

4、在HDFS的查看结算结果

 [yun@mini05 sparkwordcount]$ hdfs dfs -ls /sparkwordcount/
Found items
drwxr-xr-x - yun supergroup -- : /sparkwordcount/input
drwxr-xr-x - yun supergroup -- : /sparkwordcount/output
drwxr-xr-x - yun supergroup -- : /sparkwordcount/output1
[yun@mini05 sparkwordcount]$ hdfs dfs -ls /sparkwordcount/output
Found items
-rw-r--r-- yun supergroup -- : /sparkwordcount/output/_SUCCESS
-rw-r--r-- yun supergroup -- : /sparkwordcount/output/part-
-rw-r--r-- yun supergroup -- : /sparkwordcount/output/part-
-rw-r--r-- yun supergroup -- : /sparkwordcount/output/part-
-rw-r--r-- yun supergroup -- : /sparkwordcount/output/part-
[yun@mini05 sparkwordcount]$
[yun@mini05 sparkwordcount]$ hdfs dfs -cat /sparkwordcount/output/part*
(linux,)
(tom,)
(,)
(zhang,)
(kitty,)
(zhan,)
###############################################
[yun@mini05 sparkwordcount]$ hdfs dfs -ls /sparkwordcount/output1
Found items
-rw-r--r-- yun supergroup -- : /sparkwordcount/output1/_SUCCESS
-rw-r--r-- yun supergroup -- : /sparkwordcount/output1/part-
[yun@mini05 sparkwordcount]$ hdfs dfs -cat /sparkwordcount/output1/part-
(linux,)
(tom,)
(,)
(zhang,)
(kitty,)
(zhan,)

spark-2.4.0-hadoop2.7-简单操作的更多相关文章

  1. spark编译安装 spark 2.1.0 hadoop2.6.0-cdh5.7.0

    1.准备: centos 6.5 jdk 1.7 Java SE安装包下载地址:http://www.oracle.com/technetwork/java/javase/downloads/java ...

  2. Spark学习笔记0——简单了解和技术架构

    目录 Spark学习笔记0--简单了解和技术架构 什么是Spark 技术架构和软件栈 Spark Core Spark SQL Spark Streaming MLlib GraphX 集群管理器 受 ...

  3. spark sql的简单操作

    测试数据 sparkStu.text zhangxs chenxy wangYr teacher wangx teacher sparksql { ,"job":"che ...

  4. moloch1.8.0简单操作手册

    moloch1.8.0简单操作手册 Sessions 页面:Sessions主要通过非常简单的查询语言来构建表达式追溯数据流量,以便分析. SPIView 页面: SPIGraph页面:SPIGrap ...

  5. spark 1.1.0 单机与yarn部署

    环境:ubuntu 14.04, jdk 1.6, scala 2.11.4, spark 1.1.0, hadoop 2.5.1 一 spark 单机模式 部分操作参考:http://www.cnb ...

  6. Spark快速入门 - Spark 1.6.0

    Spark快速入门 - Spark 1.6.0 转载请注明出处:http://www.cnblogs.com/BYRans/ 快速入门(Quick Start) 本文简单介绍了Spark的使用方式.首 ...

  7. Apache Spark 2.2.0 中文文档 - Spark 编程指南 | ApacheCN

    Spark 编程指南 概述 Spark 依赖 初始化 Spark 使用 Shell 弹性分布式数据集 (RDDs) 并行集合 外部 Datasets(数据集) RDD 操作 基础 传递 Functio ...

  8. Apache Spark 2.2.0 中文文档 - Spark Streaming 编程指南 | ApacheCN

    Spark Streaming 编程指南 概述 一个入门示例 基础概念 依赖 初始化 StreamingContext Discretized Streams (DStreams)(离散化流) Inp ...

  9. Apache Spark 2.2.0 中文文档 - Spark SQL, DataFrames and Datasets Guide | ApacheCN

    Spark SQL, DataFrames and Datasets Guide Overview SQL Datasets and DataFrames 开始入门 起始点: SparkSession ...

  10. Apache Spark 2.2.0 中文文档 - SparkR (R on Spark) | ApacheCN

    SparkR (R on Spark) 概述 SparkDataFrame 启动: SparkSession 从 RStudio 来启动 创建 SparkDataFrames 从本地的 data fr ...

随机推荐

  1. child_process 子进程

    创建子进程,使其可以在进程中执行操作,应用系统命令等.nodejs创建子进程有四种方法,分别是spawn,fork,exec,execFile. 区别 : 格式 : spawn和execFile的格式 ...

  2. C++日志系统log4cxx使用总结

    原文地址:C++日志系统log4cxx使用总结作者:邵明 本文主要从log4cxx级别.layout.格式化.命名规则.Filter几个方面介绍.   一.log4cxx命名规则         Lo ...

  3. Elasticsearch 分词器

    无论是内置的分析器(analyzer),还是自定义的分析器(analyzer),都由三种构件块组成的:character filters , tokenizers , token filters. 内 ...

  4. JAVA数组和集合谁是儿子

    Java有哪些数据存储方式? 基本数据类型(1byte3整2小数1字符1布尔)分别是byte,short,int long,flort,double,char,boolean(颜色好喜庆的样子O(∩_ ...

  5. 设计模式总结篇系列:桥接模式(Bridge)

    在实际类设计过程中,有时会遇到此类情况:由于实际的需要,某个类具有两个或两个以上的维度变化,如果利用继承将每种可能的变化情况都定义成一个类,一是会导致类膨胀的问题,二是以后不太好维护和并且违背类的设计 ...

  6. Spring拓展接口之BeanFactoryPostProcessor,占位符与敏感信息解密原理

    前言 开心一刻 一只被二哈带偏了的柴犬,我只想弄死隔壁的二哈 what:是什么 BeanFactoryPostProcessor接口很简单,只包含一个方法 /** * 通过BeanFactoryPos ...

  7. 用TensorFlow教你手写字识别

    博主原文链接:用TensorFlow教你做手写字识别(准确率94.09%) 如需转载,请备注出处及链接,谢谢. 2012 年,Alex Krizhevsky, Geoff Hinton, and Il ...

  8. 【Zabbix】Zabbix Server自动发现

    Zabbix自动发现 由于有上百台的虚拟机需要监控,如果一个个去添加配置,费时费力.Zabbix的自动发现,可以自动发现需要监控的机器,监控相应指标. 前置条件 安装部署好Zabbix Server. ...

  9. SpringCloud系列——Eureka 服务注册与发现

    前言 Eureka是一种基于REST(具像状态传输)的服务,主要用于AWS云中定位服务,以实现中间层服务器的负载平衡和故障转移.本文记录一个简单的服务注册与发现实例. GitHub地址:https:/ ...

  10. c# IO操作

    今天我们主要讨论的IO的一些操作,首先我们先引入三个变量: /// <summary> /// 配置绝对路径 /// </summary> private static str ...