【写在前面】飞腾开发者平台是基于飞腾自身强大的技术基础和开放能力,聚合行业内优秀资源而打造的。该平台覆盖了操作系统、算法、数据库、安全、平台工具、虚拟化、存储、网络、固件等多个前沿技术领域,包含了应用使能套件、软件仓库、软件支持、软件适配认证四大板块,旨在共享尖端技术,为开发者提供一个涵盖多领域的开发平台和工具套件。点击这里开始你的技术升级之旅吧

image.png

本文分享至飞腾开发者平台《飞腾平台Spark3.1.2移植与安装手册》

1 介绍

  Apache Spark是一种快速的集群计算技术,专为快速计算而设计。它基于Hadoop MapReduce,它扩展了MapReduce模型,以有效地将其用于更多类型的计算,包括交互式查询和流处理。Spark的主要特性是它的内存中集群计算,提高了应用程序的处理速度。

2 环境要求

2.1 硬件要求

硬件要求如下表所示。

项目说明
CPUFT-2000+/64服务器
网络无要求
存储无要求
内存无要求

2.2 操作系统要求

操作系统要求如下表所示。

项目说明
CentOS8
Kernel4.18.0-193.el8.aarch64

2.3 软件要求

软件要求如下表所示。

项目说明
Java1.8.0_281
Hadoop3.3.0

3 安装与部署

3.1 程序部署

  下载apache-spark

wget https://archive.apache.org/dist/spark/spark-3.1.2/spark-3.1.2-bin-hadoop3.2.tgz

mv spark-3.1.2-bin-hadoop3.2.tgz /opt

cd /opt/

tar –xzvf spark-3.0.0-bin-hadoop3.2.tgz

3.2 程序配置

  步骤一 配置环境变量

  编辑 /etc/profile 文件,添加以下内容:

export SPARK_HOME=/opt/spark-3.1.2-bin-hadoop3.2

export PATH=\$PATH:\$SPARK_HOME/bin

  步骤二 配置slaves

  编辑conf/workers文件,并填写spark集群内所有的节点hosts

# vim conf/workers

master.hadoop

slave1.hadoop

slave2.hadoop

  步骤三 配置spark环境变量,进入conf目录

# cp spark-env.sh.template spark-env.sh

# vi spark-env.sh

export SCALA_HOME=/usr/bin/scala

export JAVA_HOME=/opt/jdk-11.0.11

export HADOOP_INSTALL=/opt/hadoop-3.3.0

export HADOOP_CONF_DIR=\$HADOOP_INSTALL/etc/hadoop

SPARK_MASTER_IP=master.hadoop

SPARK_LOCAL_DIRS=/opt/spark-3.1.2-bin-hadoop3.2

SPARK_DRIVER_MEMORY=2G

  步骤四 向各个节点分发spark

scp -r /opt/spark-3.1.2-bin-hadoop3.2 hadoop\@slave1.hadoop:/opt/

scp -r /opt/spark-3.1.2-bin-hadoop3.2 hadoop\@slave2.hadoop:/opt/

3.3 启动服务

  步骤一 启动服务

[hadoop@master sbin]$ ./start-all.sh

starting org.apache.spark.deploy.master.Master, logging to
/opt/spark-3.1.2-bin-hadoop3.2/logs/spark-hadoop-org.apache.spark.deploy.master.Master-1-master.hadoop.out

slave1.hadoop: starting org.apache.spark.deploy.worker.Worker, logging to 
/opt/spark-3.1.2-bin-hadoop3.2/logs/spark-hadoop-org.apache.spark.deploy.worker.Worker-1-node1.cloud.phytium.io.out

master.hadoop: starting org.apache.spark.deploy.worker.Worker, logging to
/opt/spark-3.1.2-bin-hadoop3.2/logs/spark-hadoop-org.apache.spark.deploy.worker.Worker-1-master.hadoop.out

slave2.hadoop: starting org.apache.spark.deploy.worker.Worker, logging to
/opt/spark-3.1.2-bin-hadoop3.2/logs/spark-hadoop-org.apache.spark.deploy.worker.Worker-1-node2.cloud.phytium.io.out

  步骤二 检测进程与端口

[hadoop@master sbin]$ ps -elf|grep spark

0 S hadoop  1426736    1 95 80  0 - 188951 futex_ 16:23 pts/1  00:00:11
/opt/jdk-11.0.11/bin/java -cp
/opt/spark-3.1.2-bin-hadoop3.2/conf/:/opt/spark-3.1.2-bin-hadoop3.2/jars/*:/opt/hadoop 3.3.0/etc/hadoop/ -Xmx1g org.apache.spark.deploy.master.Master --host master.hadoop --port 7077 --webui-port 8080

0 S hadoop  1426898    1 99 80  0 - 191637 futex_ 16:23 ?    00:00:11
/opt/jdk-11.0.11/bin/java -cp
/opt/spark-3.1.2-bin-hadoop3.2/conf/:/opt/spark-3.1.2-bin-hadoop3.2/jars/*:/opt/hadoop 3.3.0/etc/hadoop/ Xmx1g org.apache.spark.deploy.worker.Worker --webui-port 8081
spark://master.hadoop:7077

0 S hadoop  1427183 1426026 0 80  0 -  58 pipe_w 16:23 pts/1  00:00:00 grep
--color=auto spark

hadoop@master sbin]$ netstat -anpt|grep 1426736

(Not all processes could be identified, non-owned process info

will not be shown, you would have to be root to see it all.)

tcp6    0   0 172.16.32.200:7077   :::*          LISTEN   1426736/java

tcp6    0   0 :::8082         :::*          LISTEN   1426736/java

4 功能测试

4.1 启动客户端测试

  步骤一 启动spark-shell

[hadoop@master bin]$ ./spark-shell --master spark://master.hadoop:7077 --executor-memory 600m
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by org.apache.spark.unsafe.Platform
(file:/opt/spark-3.1.2-bin-hadoop3.2/jars/spark-unsafe_2.12-3.1.2.jar) to constructor java.nio.DirectByteBuffer(long,int)
WARNING: Please consider reporting this to the maintainers of org.apache.spark.unsafe.Platform
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release 2021-07-30 16:29:33,474 WARN util.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://master.hadoop:4040
Spark context available as 'sc' (master = spark://master.hadoop:7077, app id = app-20210730162943-0000).
Spark session available as 'spark'.
Welcome to

      ____              __
     / __/__  ___ _____/ /__
    _\ \/ _ \/ _ `/ __/  '_/
   /___/ .__/\_,_/_/ /_/\_\   version 3.1.2
      /_/

Using Scala version 2.12.10 (Java HotSpot(TM) 64-Bit Server VM, Java 11.0.11)
Type in expressions to have them evaluated.
Type :help for more information.
scala>

  步骤二 统计文件行数

scala> val lines = sc.textFile("/tmp/spark/README.md")
lines: org.apache.spark.rdd.RDD[String] = /tmp/spark/README.md
MapPartitionsRDD[5] at textFile at <console>:24 

scala> lines.count()
res2: Long = 108

scala> lines.first()
res3: String = # Apache Spark

scala>

  结果表明:大数据组件spark3.1.2 在飞腾平台下运行结果正确,符合预期,功能正常。


推荐阅读

欢迎广大开发者来飞腾开发者平台获取更多前沿技术文档及资料

如开发者在使用飞腾产品有任何问题可通过在线工单联系我们



版权所有。飞腾信息技术有限公司 2023。保留所有权利。

未经本公司同意,任何单位、公司或个人不得擅自复制,翻译,摘抄本文档内容的部分或全部,不得以任何方式或途径进行传播和宣传。

商标声明

Phytium和其他飞腾商标均为飞腾信息技术有限公司的商标。

本文档提及的其他所有商标或注册商标,由各自的所有人拥有。

注意

本文档的内容视为飞腾的保密信息,您应当严格遵守保密任务;未经飞腾事先书面同意,您不得向任何第三方披露本文档内容或提供给任何第三方使用。

由于产品版本升级或其他原因,本文档内容会不定期进行更新。除非另有约定,本文档仅作为使用指导,飞腾在现有技术的基础上尽最大努力提供相应的介绍及操作指引,但飞腾在此明确声明对本文档内容的准确性、完整性、适用性、可靠性的等不作任何明示或暗示的保证。

本文档中所有内容,包括但不限于图片、架构设计、页面布局、文字描述,均由飞腾和/或其关联公司依法拥有其知识产权,包括但不限于商标权、专利权、著作权等。非经飞腾和/或其关联公司书面同意,任何人不得擅自使用、修改,复制上述内容。


飞腾开发者
6 声望3 粉丝

飞腾开发者技术小助手,定期分享飞腾技术文档,助力开发者打怪升级。更多材料获取:[链接]