Spark 配置

修改主机名和HOSTS

修改各台机器的主机名

nano /etc/hostname

主机名的命名规则如下

spark-001
spark-002
...

修改各台机器的hosts文件

nano /etc/hosts

配置如下

127.0.0.1  localhost
192.168.100.201  spark-001
192.168.100.202  spark-002
...

配置无密码SSH登录

无密码SSH登录需要各台主机能无密码SSH到localhost,并且Master即spark-001能无密码SSH到各个Slave。

首先配置无密码SSH到localhost,需要安装openssh-server,并生成ssh公钥。

apt-get install openssh-server
ssh-keygen -t rsa -P ""
cat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys

测试能否SSH到localhost

ssh localhost

配置Master能免密码SSH到Slave,需要将Master的公钥复制到Slave的authorized_keys中。首先将公钥复制到各台Slave机器中。

# 在spark-001上运行
scp /root/.ssh/id_rsa.pub google@192.168.100.202:/home/google/
scp /root/.ssh/id_rsa.pub google@192.168.100.203:/home/google/
...

在各台Slave中将Master的公钥复制到authorized_keys。

# 在各台Slave上运行
cat /home/google/id_rsa.pub >> /root/.ssh/authorized_keys

测试能够免密码SSH到各台Slave

# 在spark-001上运行
ssh spark-002
ssh spark-003
...

JDK安装

在各台机器上安装JDK

apt-get install default-jdk

编辑~/.bashrc文件,添加如下内容:

export JAVA_HOME=/usr/lib/jvm/default-java

让环境变量生效,执行如下代码:

source /etc/profile

检验JAVA是否安装成功

java -version

Hadoop安装

先在Master主机上安装Hadoop,然后将Master上配置好的Hadoop发送给各个Slave。首先在官网下载最新的Hadoop安装包。最新版下载地址为http://hadoop.apache.org/releases.html

wget http://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common/hadoop-2.8.0/hadoop-2.8.0.tar.gz

在Master主机上执行以下命令:

tar -zxf ~/hadoop-2.8.0.tar.gz -C /usr/local
mv /usr/local/hadoop-2.8.0/ /usr/local/hadoop

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

export HADOOP_HOME=/usr/local/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

让环境变量生效,执行如下代码:

source ~/.bashrc

检验hadoop是否安装成功

hadoop version

修改/usr/local/hadoop/etc/hadoop目录下Hadoop配置文件。

  • 修改slaves文件,这里把DataNode的主机名写入该文件,每行一个。
spark-001
spark-002
spark-003
...
  • 修改core-site.xml
<configuration>
    <property>
        <name>hadoop.tmp.dir</name>
        <value>file:/data/hadoop/tmp</value>
        <description>Abase for other temporary directories.</description>
    </property>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://spark-001:9000</value>
    </property>
</configuration>
  • 修改hdfs-site.xml
# Master配置
<configuration>
    <property>
        <name>dfs.namenode.name.dir</name>
        <value>/data/hadoop/name</value>
    </property>
    <property>
        <name>dfs.datanode.data.dir</name>
        <value>/data/hadoop/data</value>
    </property>
</configuration>
# Slave配置
<configuration>
    <property>
        <name>dfs.datanode.data.dir</name>
        <value>/data/hadoop/data</value>
    </property>
</configuration>
  • 修改yarn-site.xml
<configuration>
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
    <property>
        <name>yarn.resourcemanager.hostname</name>
        <value>spark-001</value>
    </property>
</configuration>

配置好后,将Master上的/usr/local/Hadoop文件夹复制到各个节点上。在 Master 节点主机上执行:

rm -f /usr/local/hadoop/logs/*
tar -zcf ~/hadoop.tar.gz /usr/local/hadoop
scp ~/hadoop.tar.gz spark-002:/home/google
scp ~/hadoop.tar.gz spark-003:/home/google
...

在Slave上执行:

rm -rf /usr/local/hadoop/
tar -zxf ~/hadoop.master.tar.gz -C /usr/local

启动Hadoop集群,在Master上执行

/usr/local/hadoop/bin/hdfs namenode -format
/usr/local/hadoop/sbin/start-all.sh

Spark安装

首先在Master上安装,安装完成后分发到各Slave节点。首先从Spark官网下载最新的Spark软件包。http://spark.apache.org/downloads.html
在Master上运行如下命令

tar -zxf ~/spark-2.1.0-bin-hadoop2.7.tgz -C /usr/local/
mv /usr/local/spark-2.1.0-bin-hadoop2.7 /usr/local/spark

配置环境变量
在Master中编辑/etc/profile文件,添加如下内容

export SPARK_HOME=/usr/local/spark
export PATH=$PATH:$SPARK_HOME/bin:$SPARK_HOME/sbin

让环境变量生效,执行如下代码

source ~/.bashrc

修改/usr/local/spark/conf/下的配置文件

  • 配置slaves文件
    将 slaves.template 拷贝到 slaves
cp /usr/local/spark/conf/slaves.template /usr/local/spark/conf/slaves

slaves文件设置Worker节点。编辑slaves内容,把默认内容localhost替换成如下内容:

spark-001
spark-002
spark-003
...
  • 配置spark-env.sh文件
    将 spark-env.sh.template 拷贝到 spark-env.sh
cp /usr/local/spark/conf/spark-env.sh.template /usr/local/spark/conf/spark-env.sh

编辑spark-env.sh,添加如下内容

export SPARK_DIST_CLASSPATH=$(/usr/local/hadoop/bin/hadoop classpath)
export HADOOP_CONF_DIR=/usr/local/hadoop/etc/hadoop
export SPARK_MASTER_IP=192.168.100.201

SPARK_MASTER_IP 指定 Spark 集群 Master 节点的 IP 地址

配置好后,将Master主机上的/usr/local/spark文件夹复制到各个节点上。在Master主机上执行如下命令:

tar -zcf ~/spark.tar.gz /usr/local/spark
scp ~/spark.tar.gz spark-002:/home/google
scp ~/spark.tar.gz spark-003:/home/google
...

在各台Slave节点上执行下面命令

rm -rf /usr/local/spark/
tar -zxf ~/spark.tar.gz -C /usr/local

启动Spark集群

  • 启动Hadoop集群
    启动Spark集群前,要先启动Hadoop集群。在Master节点主机上运行如下命令:
/usr/local/hadoop/sbin/start-all.sh
  • 启动Spark集群
    启动Master节点,在Master节点主机上运行如下命令
/usr/local/spark/sbin/start-master.sh
  • 在Master节点上运行jps命令,查看进程
    启动所有Slave节点,在Master节点主机上运行如下命令:
/usr/local/spark/sbin/start-slaves.sh
  • 在Salve节点上运行jps命令,查看进程
    在浏览器上查看Spark独立集群管理器的集群信息在Master主机上打开浏览器,访问http://spark-001:8080

关闭Spark集群

  • 关闭Master节点
/usr/local/spark/sbin/stop-master.sh
  • 关闭Worker节点
/usr/local/spark/sbin/stop-slaves.sh
  • 关闭Hadoop集群
/usr/local/hadoop/sbin/stop-all.sh

配置程序说明

程序运行准备

  • 服务器准备
1 各台服务器命名规则为spark-001、spark-002
2 各台服务器能够通过apt-get顺利安装软件
3 Master上将Hadoop安装包和Spark安装包放在根目录
  • 程序配置
    程序需要配置四个参数
hostcnt:服务器总台数,包括Master和Slave
deployedcnt:已经配置好的服务器台数
hadoop_name:主目录Hadoop安装包名,不包括.tar.gz后缀
spark_name:主目录Spark安装包名,不包括.tar.gz后缀
    原文作者:sumsalt
    原文地址: https://www.jianshu.com/p/70d664fc8dbe
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞