【写在前面】飞腾开发者平台是基于飞腾自身强大的技术基础和开放能力,聚合行业内优秀资源而打造的。该平台覆盖了操作系统、算法、数据库、安全、平台工具、虚拟化、存储、网络、固件等多个前沿技术领域,包含了应用使能套件、软件仓库、软件支持、软件适配认证四大板块,旨在共享尖端技术,为开发者提供一个涵盖多领域的开发平台和工具套件。点击这里开始你的技术升级之旅吧
本文分享至飞腾开发者平台《飞腾平台Spark3.1.2移植与安装手册》
1 介绍
Apache Spark是一种快速的集群计算技术,专为快速计算而设计。它基于Hadoop MapReduce,它扩展了MapReduce模型,以有效地将其用于更多类型的计算,包括交互式查询和流处理。Spark的主要特性是它的内存中集群计算,提高了应用程序的处理速度。
2 环境要求
2.1 硬件要求
硬件要求如下表所示。
项目 | 说明 |
---|---|
CPU | FT-2000+/64服务器 |
网络 | 无要求 |
存储 | 无要求 |
内存 | 无要求 |
2.2 操作系统要求
操作系统要求如下表所示。
项目 | 说明 |
---|---|
CentOS | 8 |
Kernel | 4.18.0-193.el8.aarch64 |
2.3 软件要求
软件要求如下表所示。
项目 | 说明 |
---|---|
Java | 1.8.0_281 |
Hadoop | 3.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和其他飞腾商标均为飞腾信息技术有限公司的商标。
本文档提及的其他所有商标或注册商标,由各自的所有人拥有。
注意
本文档的内容视为飞腾的保密信息,您应当严格遵守保密任务;未经飞腾事先书面同意,您不得向任何第三方披露本文档内容或提供给任何第三方使用。
由于产品版本升级或其他原因,本文档内容会不定期进行更新。除非另有约定,本文档仅作为使用指导,飞腾在现有技术的基础上尽最大努力提供相应的介绍及操作指引,但飞腾在此明确声明对本文档内容的准确性、完整性、适用性、可靠性的等不作任何明示或暗示的保证。
本文档中所有内容,包括但不限于图片、架构设计、页面布局、文字描述,均由飞腾和/或其关联公司依法拥有其知识产权,包括但不限于商标权、专利权、著作权等。非经飞腾和/或其关联公司书面同意,任何人不得擅自使用、修改,复制上述内容。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。