中文
注册
我要评分
文档获取效率
文档正确性
内容完整性
文档易理解
在线提单
论坛求助

Spark配置

操作步骤

  1. 使用PuTTY工具,以root用户登录服务器。
  2. 执行以下命令下载scala。
    cd /path/to/HADOOP
    wget https://downloads.lightbend.com/scala/2.12.4/scala-2.12.4.tgz
    tar xvf scala-2.12.4.tgz
  3. 执行以下命令解压Spark安装包。
    tar -xvf  spark-2.4.4-bin-hadoop2.7.tgz
  4. 执行以下命令进入解压后的目录。
    cd /path/to/HADOOP/spark-2.4.4-bin-hadoop2.7/conf
  5. 执行以下命令修改“spark-defaults.conf”配置文件。
    mv spark-defaults.conf.template spark-defaults.conf
    vi spark-defaults.conf
    1. 按“i”进入编辑模式,编辑“spark-defaults.conf”文件,新增以下内容。
      spark.master                     spark://armnode2:7077
      spark.scheduler.mode             FAIR
      spark.eventLog.enabled           true
      spark.eventLog.dir               hdfs://armnode2:9000/sparklog
      spark.shuffle.consolidateFiles   true
      spark.shuffle.manager            SORT
      spark.sql.hive.convertMetastoreOrc false

      “armnode2”为安装环境的主机名,用户根据实际情况进行配置,可以使用“hostname”查询安装环境的主机名。

    2. 按“Esc”键,输入:wq!,按“Enter”保存并退出编辑。
  6. 执行以下命令修改“slaves”配置文件。
    mv slaves.template slaves
    vi slaves
    1. 按“i”进入编辑模式,编辑“slaves”文件,新增安装环境的主机名。
      armnode2
    2. 按“Esc”键,输入:wq!,按“Enter”保存并退出编辑。
  7. 执行以下命令修改“spark-env.sh”配置文件。
    mv spark-env.sh.template spark-env.sh
    vi spark-env.sh
    1. 按“i”进入编辑模式,编辑“spark-env.sh”文件,新增以下内容。
      export JAVA_HOME=/path/to/HADOOP/jdk1.8.0_171
      export SCALA_HOME=/path/to/HADOOP/scala-2.12.4
      export SPARK_HOME=/path/to/HADOOP/spark-2.4.4-bin-hadoop2.7
      export SPARK_MASTER_IP=armnode2
      export HADOOP_HOME=/path/to/HADOOP/hadoop-3.1.2
      export HADOOP_CONF_DIR=/path/to/HADOOP/hadoop-3.1.2/etc/hadoop
      export SPARK_DIST_CLASSPATH=$(/path/to/HADOOP/hadoop-3.1.2/bin/hadoop classpath)
      export SPARK_DRIVER_MEMORY=30g
      export SPARK_WORKER_INSTANCES=10
      export SPARK_WORKER_CORES=16
      export SPARK_WORKER_MEMORY=20g
      export SPARK_EXECUTOR_MEMORY=10g
      export SPARK_LOCAL_DIRS=/path/to/HADOOP/hadoop-3.1.2/hdfs/spark/tmp
      export SPARK_WORKER_DIR=/path/to/HADOOP/hadoop-3.1.2/hdfs/spark/work

      “armnode2”为安装环境的主机名,用户根据实际情况进行配置,可以使用“hostname”查询安装环境的主机名。

    2. 按“Esc”键,输入:wq!,按“Enter”保存并退出编辑。
  8. 执行以下命令进入配置文件目录。
    cd /path/to/HADOOP
  9. 执行以下命令配置环境变量。
    1. 打开文件。
      vi env.sh
    2. 按“i”进入编辑模式,新建环境变量文件,添加如下内容。
      export JAVA_HOME=/path/to/HADOOP/jdk1.8.0_171
      export JRE_HOME=$JAVA_HOME/jre
      export PATH=:$JAVA_HOME/bin:$PATH
      export CLASSPATH=.:$CLASSPATH:$JAVA_HOME/lib:$JRE_HOME/lib
      export HADOOP_HOME=/path/to/HADOOP/hadoop-3.1.2
      export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
      export HDFS_DATANODE_USER=root
      export HDFS_NAMENODE_USER=root
      export HDFS_SECONDARYNAMENODE_USER=root
      export YARN_RESOURCEMANAGER_USER=root
      export YARN_NODEMANAGER_USER=root
      export SCALA_HOME=/path/to/HADOOP/scala-2.12.4
      export PATH=$SCALA_HOME/bin:$PATH
      export SPARK_HOME=/path/to/HADOOP/spark-2.4.4-bin-hadoop2.7
      export PATH=$SPARK_HOME/bin:$PATH

      Hadoop配置文件说明:

      Hadoop的运行方式是由配置文件决定的(运行Hadoop时会读取配置文件),因此如果需要从伪分布式模式切换回非分布式模式,需要删除core-site.xml中的配置项。

      此外,伪分布式虽然只需要配置fs.defaultFS和dfs.replication就可以运行(官方教程如此),不过若没有配置hadoop.tmp.dir参数,则默认使用的临时目录为/tmp/hadoo-hadoop,而这个目录在重启时有可能被系统清理掉,导致必须重新执行format才行。所以我们进行了设置,同时也指定dfs.namenode.name.dir和dfs.datanode.data.dir,否则在接下来的步骤中可能会出错。

    3. 按“Esc”键,输入:wq!,按“Enter”保存并退出编辑。
    4. 执行以下命令使环境变量生效。
      source env.sh
  10. 配置完成后,执行NameNode的格式化。
    hdfs namenode -format

    显示如下内容表示正常结束。

  11. 执行以下命令开启NameNode和DataNode守护进程。
    start-dfs.sh
    jps

    启动完成后,可以通过命令jps来判断是否成功启动,若成功启动则会列出如图1所示进程: “NameNode”“DataNode”“SecondaryNameNode”(如果“SecondaryNameNode”没有启动,请运行sbin/stop-dfs.sh关闭进程,然后再次尝试启动尝试)。如果没有“NameNode”“DataNode”,那就是配置不成功,请仔细检查之前步骤,或通过查看启动日志排查原因。

    图1 显示样例
  12. 执行以下命令进入spark相应路径。
    cd /path/to/HADOOP/spark-2.4.4-bin-hadoop2.7/sbin
  13. 执行以下命令开启spark进程。
    ./start-all.sh
    jps

    启动完成后,可以通过命令jps来判断是否成功启动,若成功启动则会列出多个“Worker”进程,如图2所示。

    图2 显示样例