Spark集群配置

机器准备

准备两台以上linux服务器,安装好JDK1.8

下载Spark安装包

下载地址

Spark集群配置

解压安装包到指定目录

配置Spark【Standalone】

Spark 的部署模式有 Local、Local-Cluster、Standalone、Yarn、Mesos,我们选择最具代表性的 Standalone 集群部署模式。

进入到Spark安装目录

  1. 将conf目录下的slaves.template复制为slaves,将slave节点的主机名写入
  2. 将conf目录下的spark.env.sh.template复制为spark.env.sh,编写SPARK.MASTER.HOST SPARK.MASTER.PORT
  3. 将整个目录分发到slave节点上
  4. 在master节点上执行sbin/start-all.sh启动整个集群
  5. 通过http://lmaster:8080来访问spark的http界面,注意之前设置的PORT是服务端口号

测试一下,进入spark-shell执行以下wordcount

#$bin/spark-shell --master spark://namenode:7077

scala>sc.textFile("./LICENSE").flatMap(_.split(" "))map((_,1)).reduceByKey(_+_).collect

配置Spark【Yarn】

修改 Hadoop配置下的 yarn-site.xml:

<configuration>
    <!-- Site specific YARN configuration properties -->
    <property>
        <name>yarn.resourcemanager.hostname</name>
        <value>master01</value>
    </property>
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
    <!--是否启动一个线程检查每个任务正使用的物理内存量,如果任务超出分配值,则直接将其杀掉,默认是 true -->
    <property>
        <name>yarn.nodemanager.pmem-check-enabled</name>
        <value>false</value>
    </property>
    <!--是否启动一个线程检查每个任务正使用的虚拟内存量,如果任务超出分配值,则直接将其杀掉,默认是 true -->
    <property>
        <name>yarn.nodemanager.vmem-check-enabled</name>
        <value>false</value>
    </property>
</configuration>

修改 Spark-env.sh 添加:

HADOOP_CONF_DIR=/home/bigdata/hadoop/hadoop-2.7.2/etc/hadoop
YARN_CONF_DIR=/home/bigdata/hadoop/hadoop-2.7.2/etc/hadoop

让 Spark 能够发现 Hadoop 配置文件

最后别忘了启动yarn(不需要启动spark集群就可以进行spark程序执行)