• spark环境搭建(widows+linux)


    一、在idea中调试spark程序-配置windows上的 spark local模式

    spark程序大致有如下运行模式:

      standalone模式:spark自带的模式

      spark on yarn:利用hadoop yarn来做集群的资源管理

      local模式:主要在测试的时候使用,       

      这三个模式先大致了解,目前我用到的就是local和yarn。其中,我们写spark程序,一般在idea上写,若每次都要将程序打包,再上传到集群,再运行,将严重影响我们效率,所以在调试代码的时候,一般用local模式,在windows的idea上直接操作。

      环境配置步骤如下:只做简要说明,各个步骤的具体安装可自行百度

    1、jdk安装,基础环境

    2、hadoop安装,spark要用到hadoop的windows的本地hdfs库,若不安装报如下错误:

      Failed to locate the winutils binary in the hadoop binary path

     hadoop具体安装步骤:(1)先拷贝hadoop的tar.gz安装包,也就是安装到linux上的那个安装包,解压即可.

                                            (2)去github下载https://github.com/srccodes/hadoop-common-2.2.0-bin,这个里面就是winutils,编译包

                                          (3)将common包解压,将bin下的所有文件拷贝到hadoop安装目录下的bin里,重复的文件覆盖。

                                            (4)配置HADOOP_HOME和CLASSPATH,其中classpath指定winutils的具体位置。

    3、idea安装scala插件

    二、spark集群搭建linux

    前置准备:

    (1)需要配置/etc/hosts,即使启动了worker,worker也找不到master进行心跳报活,worker列表中也找不到该worker;

    (2)配置master到worker的免密登陆;

    (3)安装好了jdk,不一定需要hadoop,不需要装scala。

    一、前提安装好了hadoop、jdk

    yarn 的resourcemanager是通过slaves文件,找到nodemanager所在的节点进行启动,因此通过./sbin/start-yarn.sh 必须要配置slaves文件,否则就要单独启动。

    yarn 的nodemanager是通过yarn-site.xml里的resourcemanager来找到其所在的节点,并主动报活的,因此yarn集群中的所有yarn-site.xml文件都要一样,使用scp拷贝即可。

    yarn 集群的资源的配置也是写在yarn-site.xml里面的。

    二、安装scala

      scala正常不需要安装,因为spark安装目录中已经有了scala的jar包,为了日后使用的方便,还是进行安装吧。

    (1)scala去官网下载,版本要参照spark官网,依据spark版本下载对应的版本。

    (2)解压文件

    (3)然后在/etc/profile里配置scala的环境变量:

    export SCALA_HOME=/data/wanglei/soft/scala-2.11.8
    export PATH=$SCALA_HOME/bin:$PATH

    修改保存后执行:source /etc/profile

    (4)保存退出,source一下配置文件让其立刻生效。然后再运行scala:

    [root@datanodetest02 soft]# scala
    Welcome to Scala 2.11.8 (Java HotSpot(TM) 64-Bit Server VM, Java 1.7.0_51).
    Type in expressions for evaluation. Or try :help.
    
    scala>

    说明安装成功了,对集群的所有机器执行这个命令,验证其是否安装成功。

    三、安装spark,修改配置文件,这里主要是配置了standalone模式

    spark中重要的就是spark-env文件,里面可以配置spark集群的相关设置信息,java-home,和master所在的IP和端口信息。当我们配置了master高可用的时候,master信息不是一个了,就要将其注释掉,同时要保证所有节点的这个文件一模一样,不然会启动不起来集群。导致报错。

    spark高可用引入的配置信息:

    export SPARK_DAEMON_JAVA_OPTS="-Dspark.deploy.recoveryMode=ZOOKEEPER -Dspark.deploy.zookeeper.url=Master:2181,Worker1:2181,Worker2:2181 -Dspark.deploy.zookeeper.dir=/spark"

    (1)解压完之后,要先配置环境变量,在/etc/profile 中,要配置bin和sbin,因为spark相应的命令在其中。不然会报错:spark-shell命令不存在。

    (2)spark安装步骤参照博客:主要就是修改几个配置文件,修改完成后,直接发送整个spark安装包到

    https://blog.csdn.net/bitcarmanlee/article/details/51967323

    spark中配置文件各个参数的作用

    https://blog.csdn.net/kwu_ganymede/article/details/50930633

     

    三、单spark集群搭建linux

    前置准备:

    (1)需要配置/etc/hosts,即使启动了worker,worker也找不到master进行心跳报活,worker列表中也找不到该worker;

    (2)配置master到worker的免密登陆;

    (3)安装好了jdk,不一定需要hadoop,不需要装scala。

    进入到Spark安装目录

    cd /usr/local/spark-2.1.0-bin-hadoop2.6

    进入conf目录并重命名并修改spark-env.sh.template文件

    cd conf/

    mv spark-env.sh.template spark-env.sh

    vi spark-env.sh

    在该配置文件中添加如下配置

    export JAVA_HOME=/usr/java/jdk1.8.0_111

    #export SPARK_MASTER_IP=node1.edu360.cn

    #export SPARK_MASTER_PORT=7077

    保存退出

    重命名并修改slaves.template文件

    mv slaves.template slaves

    vi slaves

    在该文件中添加子节点所在的位置(Worker节点)

    node2.edu360.cn

    node3.edu360.cn

    node4.edu360.cn

    保存退出

    将配置好的Spark拷贝到其他节点上

    scp -r spark-2.1.0-bin-hadoop2.6/ node2.edu360.cn:/usr/local/

    scp -r spark-2.1.0-bin-hadoop2.6/ node3.edu360.cn:/usr/local/

    scp -r spark-2.1.0-bin-hadoop2.6/ node4.edu360.cn:/usr/local/

     

    Spark集群配置完毕,目前是1个Master,3个Work,在node1.edu360.cn上启动Spark集群

    /usr/local/spark-2.1.0-bin-hadoop2.6/sbin/start-all.sh

    启动后执行jps命令,主节点上有Master进程,其他子节点上有Work进行,登录Spark管理界面查看集群状态(主节点):http://node1.edu360.cn:8080/

    到此为止,Spark集群安装完毕,但是有一个很大的问题,那就是Master节点存在单点故障,要解决此问题,就要借助zookeeper,并且启动至少两个Master节点来实现高可靠,配置方式比较简单:

    Spark集群规划:node1,node2是Master;node3,node4,node5是Worker

    安装配置zk集群,并启动zk集群

    停止spark所有服务,修改配置文件spark-env.sh,在该配置文件中删掉SPARK_MASTER_IP并添加如下配置

    export SPARK_DAEMON_JAVA_OPTS="-Dspark.deploy.recoveryMode=ZOOKEEPER -Dspark.deploy.zookeeper.url=zk1,zk2,zk3 -Dspark.deploy.zookeeper.dir=/spark"

    1.在node1节点上修改slaves配置文件内容指定worker节点

    2.在node1上执行sbin/start-all.sh脚本,然后在node2上执行sbin/start-master.sh启动第二个Master

  • 相关阅读:
    判断当前时间
    判断页面有没有点击
    js前台与后台数据交互-后台调前台(后台调用、注册客户端脚本)
    js前台与后台数据交互-前台调后台
    关于Cookie
    关于Session
    asp.net中的<%%>的几种形式的用法
    解析客户端脚本、服务器端脚本
    Asp.net--Ajax前后台数据交互
    Asp.Net 前后台交互小结
  • 原文地址:https://www.cnblogs.com/guoyu1/p/11669011.html
Copyright © 2020-2023  润新知