华为云耀云服务器L实例-Spark的配置-中下
产品官网:云耀云服务器L实例 _【最新】_轻量云服务器_轻量服务器_轻量应用服务器-华为云
今天我们采用可靠更安全、智能不卡顿、价优随心用、上手更简单、管理特省心的华为云耀云服务器L实例为例,继续教程的介绍。
项目源代码地址:https://github.com/lenve/vhr
Apache Spark 是一个快速、通用的大数据处理引擎,旨在提供简单、高效、通用的数据处理平台。Spark 提供了一种基于内存的计算模型,支持复杂的数据处理任务,包括批处理、交互式查询、流处理和机器学习。
以下是 Apache Spark 的主要特点和组件:
1. 快速性能: Spark 使用内存计算和弹性分布式数据集(Resilient Distributed Dataset,简称 RDD)来提供高性能的数据处理。它支持迭代计算,适用于需要多次迭代的机器学习算法。
2. 通用性: Spark 提供了统一的数据处理平台,支持多种数据处理任务,包括批处理(Spark Core)、交互式查询(Spark SQL)、流处理(Spark Streaming)和机器学习(MLlib)。
3. 易用性: Spark 提供了丰富的 API,包括 Scala、Java、Python 和 R,使开发者能够使用自己熟悉的编程语言进行大数据处理。它还提供了交互式的 shell 界面(Spark Shell)用于实时测试和调试。
4. 弹性分布式数据集(RDD): RDD 是 Spark 中的核心抽象,代表了可并行操作的不可变分布式集合。RDD 具有容错性,如果节点发生故障,可以重新计算丢失的数据。
5. Spark生态系统: Spark 生态系统包括许多附加组件,如 Spark SQL(用于结构化数据处理)、Spark Streaming(用于实时数据处理)、MLlib(用于机器学习)、GraphX(用于图处理)等,丰富了 Spark 的功能。
6. 分布式调度器: Spark 使用自己的分布式调度器,称为 Standalone 调度器,也可以与其他调度器集成,如 Apache Mesos、Hadoop YARN。
7. 开源社区: Spark 是一个开源项目,拥有庞大的用户社区和活跃的开发者社区,不断推动 Spark 的发展和改进。
Apache Spark 在大规模数据处理、机器学习和图计算等方面都取得了显著的成功,成为大数据处理领域的主要工具之一。其灵活性、性能和丰富的功能使得它适用于各种大数据处理场景。
以下是在华为云耀云服务器L实例上配置完毕Spark后,在 单机模式上运行WordCount。请注意,这里提供的步骤是基于Spark 2.12.8版本,你可以根据实际情况修改版本号。
首先创建 word.txt 文件,其内容如下:
(1)WordCount 的 scala 版本,进入 spark 目录。
[yhadoop@主机名 spark-Z-bin-hadoop1]$ ./bin/spark-shell --master local[2] scala>val file=sc.textFile("hdfs://node1:9000/wordcount/word.txt")
scala>valcount=file.flatMap(line=>line.split(" ")).map(word=>(word,1)).reduceByKey(_+_)
运行结果如下:
rest0: Array[(String,Int)]=Aray((Hello,1),(Hadoop,2),(hive,1),(zookeeper,1),(pig,2),(hbase,1))
【控制台运行结果】
scala>count.saveAsTextFile("hdfs://node1:9000/wordcount/result.txt")
【运行结果保存到文件中】
【Scala 运行结果】
(2)WordCount 的Java 版本
执行下面命令,其中--class 指定主类,--master 指定 spark master 地址,后面是执行的jar 和需要的参数,这里指定输入文件从HDFS 里读取,也可以从本地读取。
使用以下命令:
bin/spark-submit --master spark://node1:7077 /home/yhadoop/spark/examples/jars/spark- examples_2.11-2.4.0.jarhdfs://node1:9000/wordcount/word.txt
控制台结果如下:
本次记录中,我们在华为云耀云服务器L实例上完成了Spark最基础的计数功能程序的运行,这是绝大多数大数据基础服务在云服务器上运行的基础。接下来,我们将顺带了解一下spark的集群部署步骤,在有多台条件的前提下能够完成集群的部署。