Centos7下Spark集群搭建

最近在研究大数据,打算抛弃Hadoop直接使用mongo充当hdfs使用处理小规模的数据,也不知道行不行,苦于没找到详细的Spark安装集群的方法,所以总结了一下,希望能帮助更多的兄弟!

一、集群ssh免密登录配置
我准备了三台机器采用一主两从的配置
master 192.168.80.129
node1 192.168.80.130
node2 192.168.80.130
需求:master免密登陆到node1和node2
*准备:为后续方便,默认已在各个服务器上相互间已配置好域名
1.master上执行ssh-keygen -t rsa -P ‘’
有输入时输入回车该命令将在/root/.ssh目录下面产生一对密钥id_rsa和id_rsa.pub
在这里插入图片描述
2.master执行ls /root/.ssh
查看文件是否存在
在这里插入图片描述

  1. master执行scp /root/.ssh/id_rsa.pub root@192.168.80.130:/root/.ssh/authorized_keys
    把master下的/root/.ssh/id_rsa.pub 复制到node的 /root/.ssh/authorized_keys文件里,先要在node上创建好 /root/.ssh 这个目录,用scp复制,期间要输入node的密码

在这里插入图片描述
4.node执行 ls /root/.ssh/
在node上查看文件
在这里插入图片描述
5.node执行chmod 600 /root/.ssh/authorized_keys
在node上将文件权限设为600
在这里插入图片描述
6.master执行ssh登录
master免密登陆到node,登陆到node时推出使用exit。

在这里插入图片描述
二、集群每个节点关闭防火墙
下面是red hat/CentOs7关闭防火墙的命令!
1:查看防火状态
systemctl status firewalld
service iptables status
2:暂时关闭防火墙
systemctl stop firewalld
service iptables stop
3:永久关闭防火墙
systemctl disable firewalld
chkconfig iptables off
4:重启防火墙
systemctl enable firewalld
service iptables restart
5:永久关闭后重启
chkconfig iptables on

三、各台机器配置jdk和scala环境
在/etc/profile中配置
#java & scala
JAVA_HOME=/opt/jdk/jdk1.8.0_191
PATH= J A V A H O M E / b i n : JAVA_HOME/bin: JAVAHOME/bin:PATH:/opt/scala/scala-2.11.8/bin
CLASSPATH= J A V A H O M E / j r e / l i b / e x t : JAVA_HOME/jre/lib/ext: JAVAHOME/jre/lib/ext:JAVA_HOME/lib/tools.jar
export PATH JAVA_HOME CLASSPATH

配置完后保存一下,source /etc/perfile 使配置生效

四、master中安装spark
1.解压spark
在这里插入图片描述

2.进入到conf目录
将spark-env.sh.template复制一份spark-env.sh,对spark-env.sh进行修改

在这里插入图片描述
3.vi spark-env.sh
在最下面加上
export JAVA_HOME=/opt/jdk/jdk1.8.0_191
export SPARK_MASTER_IP=master1 #注:这里是当前机器的域名或者IP
export SPARK_MASTER_PORT=7077
4.在conf目录中将slaves.template复制一份slaves修改配置,只需加入从节点的域名或者IP即可
在这里插入图片描述

至此,spark基本配置已经完成,接下来我们将配置分发到node1和node2

5.分发到各node
master中执行scp -r ./spark/ root@node1:$PWD
此命令意思是将master当前目录/opt下的/spark中的所有内容远程复制到node1中的/opt目录下

在这里插入图片描述
6.启动集群
注意下图的这波操作

在这里插入图片描述
在sbin目录下,执行./start-all.sh 启动当前主节点及所有从节点
使用jps查看启动情况 这里出现Master代表启动成功
我们再看看从节点,里面出现Worker代表启动成功。
浏览器访问http://192.168.80.129:8080
在这里插入图片描述
访问成功~集群部署完成!
倍棒!

<think>好的,我需要帮助用户在CentOS 7搭建Spark运行环境,并且要兼容Hadoop。首先,我得回顾一下用户提供的引用内容,看看有哪些信息可以利用。引用[1]提到了Hadoop的安装目录是/usr/local/hadoop/,引用[2]列出了安装顺序,包括Java、Hadoop伪分布式、集群等步骤,建议先完成其他工具再配置集群。引用[3]提到了在Hadoop安装后需要格式化NameNode,引用[4]是关于CentOS7安装Spark在Hadoop伪分布下的步骤,提到环境变量生效后测试scala,还有jdk版本的问题。引用[5]涉及修改Spark目录权限和分发给slave节点。 用户的问题是如何在CentOS7上配置Spark环境,并确保与Hadoop兼容。根据这些引用,我需要整理出一个步骤清晰的教程。首先,确保Hadoop已经正确安装并配置好伪分布式或集群环境,因为Spark需要依赖Hadoop。然后安装Java,因为Hadoop和Spark都需要Java环境。接下来是安装Scala和sbt,可能还有Spark本身的安装步骤。需要注意环境变量的配置,比如JAVA_HOME、HADOOP_HOME等,以及Spark的配置文件如spark-env.sh。权限设置和文件分发到集群节点也是关键步骤,特别是如果用户搭建的是Spark集群的话。 需要确保步骤正确,比如先安装Java,再Hadoop,然后Spark,并验证各组件版本兼容性。例如,Spark的版本需要与Hadoop的版本匹配,可能需要查看官方文档确认兼容性。此外,Hadoop的配置文件如core-site.xml、hdfs-site.xml是否正确,HDFS是否已经初始化(格式化NameNode)并启动。引用[3]提到格式化NameNode,所以步骤中需要包括这一步。另外,引用[4]提到环境变量生效后测试scala,可能是在安装Scala后检查是否安装成功。 可能的遗漏点包括:防火墙设置、SSH免密登录配置(如果是在集群环境下)、各个服务的启动顺序,以及最后的测试步骤,比如运行Spark示例程序来验证安装是否成功。同时,引用[5]提到修改Spark目录权限为Hadoop用户,并分发给slave节点,这可能是在集群配置中的步骤,需要详细说明如何操作。 需要检查用户提供的引用中是否有具体的配置示例,比如spark-env.sh的配置内容,或者环境变量的设置。例如,引用[4]提到使用jdk1.8.0,可能需要指定JAVA_HOME路径。另外,Hadoop的配置文件路径是否正确,比如是否在/usr/local/hadoop/etc/hadoop目录下。 可能还需要考虑Spark的运行模式,比如是本地模式、standalone模式,还是基于Hadoop YARN的资源管理。用户的问题提到Hadoop兼容,所以可能需要配置Spark使用Hadoop的YARN或者HDFS。需要指导用户在Spark配置中指定Hadoop的配置文件路径,或者将Hadoop的配置文件如core-site.xml和hdfs-site.xml复制到Spark的配置目录中。 最后,生成相关问题时要围绕Spark环境搭建,可能的后续问题包括如何配置Spark集群、如何优化Spark性能、如何处理版本冲突等。</think>### CentOS 7 Spark 环境配置教程(兼容Hadoop) #### 1. **前置条件** - **系统要求**:CentOS 7 64位,已配置SSH免密登录(集群环境下需配置)[^2]。 - **依赖组件**:需先完成以下安装: - **Java JDK 1.8+**:Hadoop和Spark均依赖Java环境[^2][^4]。 - **Hadoop伪分布式/集群**:确保Hadoop已正确安装并启动(需完成NameNode格式化)[^3]。 #### 2. **安装Hadoop(若未完成)** ```bash # 参考Hadoop伪分布式配置步骤 cd /usr/local/hadoop/ bin/hdfs namenode -format # 初始化HDFS sbin/start-dfs.sh # 启动HDFS ``` #### 3. **安装Scala** ```bash # 下载Scala(以2.12.x版本为例) wget https://downloads.lightbend.com/scala/2.12.15/scala-2.12.15.tgz tar -zxvf scala-2.12.15.tgz -C /usr/local/ # 配置环境变量 echo 'export SCALA_HOME=/usr/local/scala-2.12.15' >> /etc/profile echo 'export PATH=$PATH:$SCALA_HOME/bin' >> /etc/profile source /etc/profile scala -version # 验证安装 ``` #### 4. **安装Spark** ```bash # 下载Spark(选择与Hadoop兼容的版本,如Spark 3.1.3 + Hadoop 3.2) wget https://archive.apache.org/dist/spark/spark-3.1.3/spark-3.1.3-bin-hadoop3.2.tgz tar -zxvf spark-3.1.3-bin-hadoop3.2.tgz -C /usr/local/ mv /usr/local/spark-3.1.3-bin-hadoop3.2 /usr/local/spark # 配置环境变量 echo 'export SPARK_HOME=/usr/local/spark' >> /etc/profile echo 'export PATH=$PATH:$SPARK_HOME/bin:$SPARK_HOME/sbin' >> /etc/profile source /etc/profile ``` #### 5. **配置Spark兼容Hadoop** - **修改`spark-env.sh`**: ```bash cd /usr/local/spark/conf cp spark-env.sh.template spark-env.sh echo 'export JAVA_HOME=/usr/local/jdk1.8.0' >> spark-env.sh # 替换为实际JDK路径 echo 'export HADOOP_HOME=/usr/local/hadoop' >> spark-env.sh # Hadoop安装路径[^1] echo 'export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop' >> spark-env.sh ``` - **分发配置到集群节点(若为集群模式)**: ```bash scp -r /usr/local/spark hadoop@slave1:/usr/local/ # 替换为实际节点IP chown -R hadoop:hadoop /usr/local/spark # 修改权限[^5] ``` #### 6. **验证Spark安装** ```bash # 启动Spark Shell spark-shell # 执行测试代码 val data = Array(1, 2, 3) val rdd = sc.parallelize(data) rdd.sum() # 应输出6 ``` #### 7. **运行Spark任务(基于HDFS)** ```bash # 上传文件到HDFS hdfs dfs -put /path/to/local/file /user/hadoop/input # 提交Spark任务 spark-submit --class org.apache.spark.examples.SparkPi \ --master yarn \ $SPARK_HOME/examples/jars/spark-examples_2.12-3.1.3.jar ``` --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值