安装

    2. 环境准备

    我们将搭建1个Master,2个Slave的集群方案。首先修改主机名nano /etc/hostname,在Master上修改为Master,其中一个Slave上修改为Slave1,另一个同理。

    配置hosts

    在每台主机上修改host文件

    1. 192.168.1.80 Master
    2. 192.168.1.82 Slave1
    3. 192.168.1.84 Slave2

    配置之后ping一下用户名看是否生效

    1. ping Slave1
    2. ping Slave2

    安装Openssh server

    sudo apt-get install openssh-server

    在所有机器上都生成私钥和公钥

    ssh-keygen -t rsa #一路回车

    需要让机器间都能相互访问,就把每个机子上的id_rsa.pub发给Master节点,传输公钥可以用scp来传输。

    在Master上,将所有公钥加到用于认证的公钥文件authorized_keys中

    cat ~/.ssh/id_rsa.pub* >> ~/.ssh/authorized_keys

    将公钥文件authorized_keys分发给每台Slave

    scp ~/.ssh/authorized_keys spark:~/.ssh/

    在每台机子上验证SSH无密码通信

    如果登陆测试不成功,则可能需要修改文件authorized_keys的权限(权限的设置非常重要,因为不安全的设置安全设置,会让你不能使用RSA功能 )

    chmod 600 ~/.ssh/authorized_keys

    4.安装 Java

    从官网下载最新版 Java 就可以,Spark官方说明 Java 只要是6以上的版本都可以,我下的是 jdk-7u75-linux-x64.gz在~/workspace目录下直接解压

    tar -zxvf jdk-7u75-linux-x64.gz

    1. export JAVA_HOME=/usr/lib/jvm/
    2. export JRE_HOME=${JAVA_HOME}/jre
    3. export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib:/usr/local/hive/lib
    4. export PATH=${JAVA_HOME}/bin:$PATH
    5. #HADOOP VARIABLES START
    6. export JAVA_HOME=/usr/lib/jvm/
    7. export HADOOP_INSTALL=/usr/local/hadoop
    8. export PATH=$PATH:$HADOOP_INSTALL/bin
    9. export PATH=$PATH:$JAVA_HOME/bin
    10. export PATH=$PATH:$HADOOP_INSTALL/sbin
    11. export HADOOP_MAPRED_HOME=$HADOOP_INSTALL
    12. export HADOOP_COMMON_HOME=$HADOOP_INSTALL
    13. export HADOOP_HDFS_HOME=$HADOOP_INSTALL
    14. export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_INSTALL/lib/native
    15. #HADOOP VARIABLES END
    16. export HIVE_HOME=/usr/local/hive
    17. export PATH=$PATH:$HIVE_HOME/bin:/usr/local/hbase/bin
    18. export JAVA_LIBRARY_PATH=/usr/local/hadoop/lib/native
    19. export SCALA_HOME=/usr/lib/scala
    20. export PATH=$PATH:$SCALA_HOME/bin

    然后使环境变量生效,并验证 Java 是否安装成功

    1. $ source /etc/profile #生效环境变量
    2. $ java -version #如果打印出如下版本信息,则说明安装成功
    3. java version "1.7.0_75"
    4. Java(TM) SE Runtime Environment (build 1.7.0_75-b13)
    5. Java HotSpot(TM) 64-Bit Server VM (build 24.75-b04, mixed mode)

    Spark官方要求 Scala 版本为 2.10.x,注意不要下错版本,我这里下了 2.10.6

    6.安装配置 Hadoop YARN

    此处参考以前的安装过程

    下载解压进入官方下载地址下载最新版 Spark。我下载的是 spark-1.6.0-bin-hadoop2.6.tgz。

    1. tar -zxvf spark-1.6.0-bin-hadoop2.6.tgz
    2. mv spark-1.6.0-bin-hadoop2.4 /usr/local/spark
    3. 配置 Spark
    4. chmod -R 775 /usr/local/spark
    5. chown -R hadoop:hadoop /usr/local/spark
    6. cd /usr/local/spark/conf #进入spark配置目录
    7. cp spark-env.sh.template spark-env.sh #从配置模板复制
    8. vi spark-env.sh #添加配置内容
    9. export SCALA_HOME=/usr/lib/scala
    10. export JAVA_HOME=/usr/lib/jvm/
    11. SPARK_MASTER_IP=Master
    12. SPARK_LOCAL_DIRS=/usr/local/spark
    13. SPARK_DRIVER_MEMORY=1G

    注:在设置Worker进程的CPU个数和内存大小,要注意机器的实际硬件条件,如果配置的超过当前Worker节点的硬件条件,Worker进程会启动失败。

    1. nano Slavesslaves文件下填上Slave主机名:
    2. Slave1
    3. Slave2
    4. 将配置好的spark-1.6.0文件夹分发给所有Slaves
    5. 启动Spark
    6. sbin/start-all.sh
    7. 验证 Spark 是否安装成功
    8. jps检查,在 master 上应该有以下几个进程:
    9. $ jps
    10. 7949 Jps
    11. 7328 SecondaryNameNode
    12. 7805 Master
    13. 7137 NameNode
    14. 7475 ResourceManager
    15. slave 上应该有以下几个进程:
    16. $jps
    17. 3132 DataNode
    18. 3759 Worker
    19. 3858 Jps
    20. 3231 NodeManager

    8.运行示例

    本地模式两线程运行

    ./bin/run-example SparkPi 10 —master local[2]

    Spark Standalone 集群模式运行

    Spark on YARN 集群上 yarn-cluster 模式运行

    1. ./spark-submit --class org.apache.spark.examples.SparkPi --master yarn-cluster /usr/local/spark/lib/spark-examples-1.6.0-hadoop2.6.0.jar 10