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

  • 相关阅读:
    Debian vim没有颜色的解决办法
    第四次作业
    第三次作业
    第二次作业
    Mad Libs游戏 & 华氏温度与摄氏温度转换
    有趣故事
    Mybatis的使用及增删改查
    jdbc数据连接池
    详解MySQL数据类型
    SQL语法大全
  • 原文地址:https://www.cnblogs.com/zhang-ke/p/6267310.html
Copyright © 2011-2022 走看看