zoukankan      html  css  js  c++  java
  • spark2.0.2基于hadoop2.4搭建分布式集群

    一、Scala安装

    因为spark的版本原因,所以Scala我用的2.11.7。

      下载目录http://www.scala-lang.org/download/

    拷贝到要安装的地址,我的地址是/usr/local

    解压tar zxvf scala-2.11.7.tgz

    修改gedit /etc/profile。

    export SCALA_HOME=/usr/local/scala-2.11.7
    export PATH=/usr/local/scala-2.11.7/bin:$PATH

    然后测试

    scala -version
    Scala code runner version 2.11.7-- Copyright 2002-2013, LAMP/EPFL

    二、安装Spark
    官网下载地址:http://spark.apache.org/downloads.html 
    需要下载预编译版本

    (1)、拷贝到要安装的地址,我的地址是/usr/local

    解压tar zxvf spark-2.0.2-bin-hadoop2.4.tgz spark

    (2)、spark-env.sh

    安装后,需要在 /usr/local/spark/conf,执行如下命令拷贝一个配置文件:

    cd  /usr/local/spark/conf

    cp ./conf/spark-env.sh.template ./conf/spark-env.sh

    这样就有了spark-env.sh,否则只有.template。

    编辑 gedit spark-env.sh,在最后面加上如下:

    export JAVA_HOME=/usr/local/jdk7
    export SCALA_HOME=/usr/local/scala-2.11.7
    export HADOOP_HOME=/usr/local/hadoop
    export HADOOP_CONF_DIR=/usr/local/hadoop/etc/hadoop
    export SPARK_MASTER_HOST=192.168.1.134          #主节点ip
    export SPARK_WORKER_MEMORY=1g
    export SPARK_WORKER_CORES=1
    export SPARK_HOME=/usr/local/spark
    export SPARK_DIST_CLASSPATH=$(/usr/local/hadoop/bin/hadoop classpath)

    (3)slaves

    然后修改slaves

    cd  /usr/local/spark/conf

    cp slaves.template slaves

    编辑 gedit slaves,我的hadoop是搭建好了的,主节点名为:master,三个子节点分别为:slave1,slave2,slave3,所以在最后面加上如下:

    master
    slave1
    slave2
    slave3

    (4)spark-defaults.conf

    然后修改spark-defaults.conf

    cd  /usr/local/spark/conf

    cp spark-defaults.conf.template spark-defaults.conf

    编辑 gedit spark-defaults.conf,在最后追加(下面的9000端口是我hadoop配置的hdfs的端口,这样spark才能访问hdfs):

    spark.executor.extraJavaOptions -XX:+PrintGCDetails -DKey=value -Dnumbers="one two three"
    spark.eventLog.enabled true
    spark.eventLog.dir hdfs://master:9000/historyserverforSpark
    spark.yarn.historySever.address Master:18080
    spark.history.fs.logDirectory hdfs://master:9000/historyserverforSpark

    (5)然后将路径/usr/local 下面的spark文件夹拷贝到各个子节点相同的位置上

    (6)在hadoop hdfs上创建历史服务器文件夹,否则打不开18080,开启的时候不提示,关闭的时候提示没有historyserver来关闭。hadoop的历史服务器是JHistoryServer,Spark的服务器是HistoryServer。

    hdfsdfs -mkdir /historyserverforSpark

    配置完成。

    三、测试Spark

    启动spark前需启动hadoop

    启动hadoop

    cd $HADOOP_HOME

    sbin/start-all.sh

    启动spark

    cd /usr/local/spark

    sbin/start-all.sh

    启动spark的服务器

    sbin/start-history-server.sh

    启动shell客户端

    bin/spark-shell

    出现scala>时说明成功。

    在浏览器中输入192.168.1.134:8080(master ip)时,会看到如下图,有4个worker

    在浏览器中输入192.168.10.1:4040(必须先启动spark-shell,否则打不开4040)

    出现如图:

    说明spark已启动成功!

    文件测试,提供思路。

    先创建test.txt文件,里面输入内容123123123,然后hadoop上面创建tmp文件,然后将test.txt上传至tmp文件夹。

    然后再spark的shell端输入如图:

    然后输入y.first()

    这里就将test.txt的文件的内容读取出来了,说明能连接hdfs了

    四、总结:

    1、master内存必须要大点,不然这个配置会卡死,我用的虚拟机开启4个系统搭建的,我的master是2G的内存,其余是1G的内存。

    2、指定同一时间最多可打开的文件数一定要大,不然会出现类似

    java.io.IOException: All datanodes 127.0.0.1:50010 are bad. Aborting...

    这种错误。通过ulimit -n查看当前的数量,一般默认为1024,零时修改可以通过ulimit -n 65535来修改。

    参考:http://www.linuxidc.com/Linux/2016-11/137367.htm

  • 相关阅读:
    扫面线模板
    (动态规划、栈)leetcode 84. Largest Rectangle in Histogram, 85. Maximal Rectangle
    tmux 常见命令汇总
    leetcode 221
    leetcode 319 29
    (贪心)leetcode 392. Is Subsequence, 771. Jewels and Stones, 463. Island Perimeter
    leetcode 982 668
    Python import 同文件夹下的py文件的函数,pycharm报错
    Windows里Anaconda-Navigator无法打开的解决方案
    Windows下 gpu版 Tensorflow 安装
  • 原文地址:https://www.cnblogs.com/zhang-ke/p/6267310.html
Copyright © 2011-2022 走看看