Spark集群安装指导

Spark集群安装

http://spark.apache.org/downloads.html 下载最新的Spark稳定版本。下载到指定路径下,这里是/opt/h2/下。

tar xvf spark-2.0.2-bin-hadoop2.7.tgz 
mv spark-2.0.2-bin-hadoop2.7 spark

设置关键变量

设置好Java配置参数后,需要设置必要的Spark运行的环境变量。假设我们需要3个worker,一个master的集群。

data5.module.prd
node1.prd
node2.prd
node3.prd

在master机器和slave机器上的hosts文件添加:

192.168.220.91  data5.module.prd
192.168.220.14 node1.prd
192.168.220.15 node2.prd
192.168.220.16 node3.prd
Spark环境变量

根据下面命令,设置Spark运行环境变量。 .bashrc文件内容如下:

# .bashrc

# Source global definitions
if [ -f /etc/bashrc ]; then
    . /etc/bashrc
fi

# User specific aliases and functions
export JAVA_HOME=/usr/local/software/jdk1.8.0_91 
export HADOOP_INSTALL=/opt/h2 <br>
export SPARK_HOME=/opt/h2/spark

export HBASE_HOME=/opt/hb
export HADOOP_OPTS="-Djava.library.path=$HADOOP_INSTALL/lib/native"
export PATH=$PATH:$HADOOP_INSTALL/bin:$HBASE_HOME/bin:$JAVA_HOME/bin
export PATH=$PATH:$HADOOP_INSTALL/sbin:$SPARK_HOME/bin:$SPARK_HOME/sbin 
export HADOOP_MAPRED_HOME=$HADOOP_INSTALL  
export HADOOP_COMMON_HOME=$HADOOP_INSTALL  
export HADOOP_HDFS_HOME=$HADOOP_INSTALL  
export HADOOP_CONF_DIR=$HADOOP_INSTALL/etc/hadoop
export YARN_HOME=$HADOOP_INSTALL 

设置SPARK_HOME和PATH路径参数。

export SPARK_HOME=/opt/h2/spark
export PATH=$PATH:$HADOOP_INSTALL/bin:$HBASE_HOME/bin:$JAVA_HOME/bin
Spark参数设置

编辑conf目录下的配置文件,命令如下所示:

cd spark
cd conf
cp spark-defaults.conf.template spark-defaults.conf

编辑文件:

vi spark-defaults.conf

添加内容:

spark.master                     spark://data5.module.prd:7077  
# 是否记录作业产生的事件或者运行状态(job,stage等使用内存等信息)  
spark.eventLog.enabled           true  
# 如果记录作业产生的事件或者运行状态,则将事件写入什么位置  
spark.eventLog.dir               hdfs://data5.module.prd:9000/user/hadoop/sparkevtlog  
# http history的监听端口号,通过http://hadoop.master:18080访问  
spark.history.ui.port            18080 

编辑slaves节点:

cp slaves.template slaves
vi slaves

添加内容:
node1.prd
node2.prd
node3.prd

SSH设置

在每台机上运行:

ssh-keygen -t rsa  

接着不断按Enter键,记住不能够设置密码。

cd ~/.ssh 

进入到.ssh 目录中,运行:

cp id_rsa.pub authorized_keys  

每个节点运行上面命令。
然后,运行:

#master machine  
ssh-copy-id -i ~/.ssh/id_rsa.pub node1.prd   
ssh-copy-id -i ~/.ssh/id_rsa.pub node2.prd  
ssh-copy-id -i ~/.ssh/id_rsa.pub node3.prd     
#3个slave机器上执行
ssh-copy-id -i ~/.ssh/id_rsa.pub data5.module.prd

master.prd能够直接通过ssh登陆 node1,node2, node3,无需密码,表示配置成功了。 反过来,也可以无密码登陆,表示整个配置正确。

复制文件

重master机器上,copy spark文件到slave机器上。

scp -r /opt/h2/spark node1.prd:/opt/h2/
scp -r /opt/h2/spark node2.prd:/opt/h2/
scp -r /opt/h2/spark node3.prd:/opt/h2/

启动关闭集群

可以使用Spark包提供的脚本启动关闭spark集群。

启动
/opt/h2/spark/sbin/start-all.sh

参看UI界面:

http://master.prd:8080/

当应用程序运行时,你可以浏览application UI:

http://master.prd:4040/

关闭
/opt/h2/spark/sbin/stop-all.sh

欢迎订阅微信公众号

### Spark集群安装教程 #### 单机版环境搭建 在单机版环境中,Spark运行在一个节点上,适合用于开发和测试目的。用户可以从官方网站下载Spark安装包并解压到目标目录下。例如,在本教程中使用的版本为`spark-2.0.0-bin-hadoop2.7.gz`[^1]。 完成下载后,执行以下命令来解压缩文件: ```bash tar -xvzf spark-2.0.0-bin-hadoop2.7.tgz mv spark-2.0.0-bin-hadoop2.7 /usr/local/spark ``` 设置环境变量以便能够全局调用Spark命令。编辑`.bashrc`或者相应的shell配置文件,添加如下内容: ```bash export SPARK_HOME=/usr/local/spark export PATH=$PATH:$SPARK_HOME/bin ``` 使更改生效: ```bash source ~/.bashrc ``` 启动Spark Shell验证安装是否成功: ```bash spark-shell ``` 如果一切正常,则会进入Scala交互界面,表明单机版环境已成功搭建[^1]。 #### 单机伪分布式环境搭建 为了模拟真实的分布式场景,可以在同一台机器上通过不同的进程实现多个角色的功能。这需要修改一些默认配置参数以及开启特定服务组件。 主要步骤包括但不限于调整`conf/spark-env.sh`中的JAVA_HOME路径设定;启用Master与Worker之间的通信机制等操作[^1]。 #### 完全分布式环境构建 对于生产级别的应用来说,通常会选择完全分布式的架构形式。此时不仅涉及到多台物理服务器间的网络互联状况评估,还需要考虑如何高效管理计算资源等问题。 一种常见的方式就是利用Hadoop YARN 或者 Apache Mesos 来充当外部资源调度平台,从而让整个系统更加灵活可控[^2]。另外还可以单独依靠Spark自带的Standalone模式来进行简单快速的小规模部署尝试[^2]。 无论采用哪种方法论指导实践过程里都需要注意保持各组成部分之间良好协作关系的同时也要兼顾性能优化方面的工作细节处理。 ```python # 示例Python脚本连接远程Spark集群提交作业 from pyspark.sql import SparkSession spark = (SparkSession.builder .appName("example-pyspark-read-csv") .getOrCreate()) df = spark.read.csv("/path/to/csv", header=True, inferSchema=True) df.show() ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值