基于Hadoop CDH进行Spark编译

本文档介绍了如何在CDH环境下编译Apache Spark-2.4.0。首先从官方地址下载Spark源码,然后修改make-distribution.sh和pom.xml文件,特别是为CDH添加仓库。编译前需设置Maven内存使用,以防CompileFailed错误。成功编译后,解压并配置环境变量,最后可以本地启动Spark进行测试。

Spark-2.4.0下载地址:

官方地址:https://archive.apache.org/dist/spark/spark-2.4.2/spark-2.4.2.tgz

编译Spark源码的文档(参考官方文档)

http://spark.apache.org/docs/latest/building-spark.html

编译Spark源码的前置要求

软件

Hadoop

scala

maven

JDK

版本

2.6.0-cdh5.7.0

2.11.12

3.6.1

jdk1.8.0_45

编译与配置:

1解压Spark源码:

1

2

3

4

5

6

7

[hadoop@hadoop001 software]$ ll spark-2.4.2.tgz

 

-rw-r--r--. 1 hadoop hadoop 16165557 4月  28 04:41 spark-2.4.2.tgz

 

[hadoop@hadoop001 software]$ tar -zxvf spark-2.4.2.tgz

 

[hadoop@hadoop001 software]$ cd spark-2.4.2

2 修改make-make-distribution.sh中的版本号,避免编译时自己取寻找,此过程比较耗时

make-distribution.sh脚本的Github地址:

https://github.com/apache/spark/blob/master/dev/make-distribution.sh

1

2

3

4

5

6

7

8

9

10

11

12

13

### Apache Spark 安装与配置指南 Apache Spark 的安装过程相对简单,但需要确保前提条件和环境配置正确。以下是详细的安装步骤: 1. **下载 Spark** - 访问 [Apache Spark 官方网站](https://spark.apache.org/downloads.html),选择适合的版本进行下载。 - 常见的选择包括预编译的二进制包(适用于大多数用户)或源码包(适用于需要自定义构建的高级用户)。 2. **解压文件** - 下载完成后,将压缩包解压到目标目录中。例如,在 Linux 或 macOS 上可以使用以下命令: ```bash tar -xzf spark-3.5.0-bin-hadoop3.tgz -C /usr/local/ ``` 3. **配置环境变量** - 设置 `SPARK_HOME` 环境变量指向 Spark 的安装目录,并将 `bin` 目录添加到 `PATH` 中。在 Linux 或 macOS 上,可以在 `.bashrc` 或 `.zshrc` 文件中添加以下内容: ```bash export SPARK_HOME=/usr/local/spark-3.5.0-bin-hadoop3 export PATH=$PATH:$SPARK_HOME/bin:$SPARK_HOME/sbin ``` - 应用更改: ```bash source ~/.bashrc # 或 source ~/.zshrc ``` 4. **修改配置文件** - 进入 Spark 的 `conf` 目录并复制模板文件生成实际使用的配置文件: ```bash cd /usr/local/spark/conf cp spark-env.sh.template spark-env.sh ``` - 编辑 `spark-env.sh` 文件,设置 Java 路径和其他必要的参数: ```bash export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64 ``` 5. **验证安装** - 启动 Spark Shell 来验证安装是否成功: ```bash ./bin/spark-shell ``` - 如果成功启动 Scala shell,则说明 Spark 已经正确安装并运行。 6. **配置集群(可选)** - 如果需要在集群环境中运行 Spark,可以选择以下几种集群管理器之一进行配置: - **Standalone**:Spark 自带的简单集群管理器。 - **YARN**:适用于 Hadoop 生态系统的资源调度器。 - **Mesos**:通用的分布式系统内核。 - 配置方式取决于具体需求,通常涉及编辑 `spark-defaults.conf` 和其他相关配置文件。 --- ### 示例代码:运行简单的 Spark 应用程序 以下是一个简单的 Spark 应用程序示例,用于计算文本文件中的单词数量: ```python from pyspark.sql import SparkSession # 创建 SparkSession spark = SparkSession.builder.appName("WordCount").getOrCreate() # 读取文本文件 text_file = spark.read.text("input.txt") # 拆分单词并计数 word_counts = text_file.rdd.flatMap(lambda line: line.value.split()) \ .map(lambda word: (word, 1)) \ .reduceByKey(lambda a, b: a + b) # 显示结果 word_counts.collect() ``` --- ###
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值