zoukankan      html  css  js  c++  java
  • 服务器上搭建spark开发环境

    1、安装相应的软件

    (1)安装jdk

         下载地址:http://www.Oracle.com/technetwork/java/javase/downloads/index.html

    (2)安装scala 

        下地地址: http://www.scala-lang.org/

    (3)安装spark

         下载地址:http://spark.apache.org/downloads.html

    (4)安装sbt

    如果需要使用到scala独立应用编程,还需一个用来构建应用的工具,sbt或者maven

    sbt的安装过程见:http://blog.csdn.net/wuzhilon88/article/details/46300491

    其中:

    chmod u+x sbt 

    这一步,是把sbt文件的权限更改,表示给当前目录下sbt这个文件的所有者增加执行权限。

    2、配置环境变量

        可以配置用户环境变量文件:

    vim ~/.bash_profile

        添加如下几个环境变量:

    export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.71-1.b15.el6_7.x86_64
    export SCALA_HOME=/home/zengzc/scala-2.10.6
    export SPARK_HOME=/home/zengzc/spark-1.6.0-bin-hadoop2.6
    export SPARK_LOCAL_IP=localhost

    其中,spark_local_ip这个变量可以在项目的启动脚本里面写。但是后来发现,到后面运行spark程序的时候,依然会出现

    16/03/04 14:09:22 ERROR : hefei-log-84: hefei-log-84: unknown error
    java.net.UnknownHostException: hefei-log-84: hefei-log-84: unknown error
        at java.net.InetAddress.getLocalHost(InetAddress.java:1505)
        at tachyon.util.network.NetworkAddressUtils.getLocalIpAddress(NetworkAddressUtils.java:355)
        at tachyon.util.network.NetworkAddressUtils.getLocalHostName(NetworkAddressUtils.java:320)

    这样的错误,解决办法是在/etc/hosts里面添加正确的主机名和IP的映射。

    3、使用spark shell

        在spark解压后的目录下,执行./bin/spark-shell,可以启动scala shell 并初始化一个sparkcontext对象。

                                          执行./bin/pyspark,则可以在python shell中使用spark。

    4、用sbt建立spark scala独立应用程序

    (1)写.scala应用程序文件;

    (2)写.sbt配置依赖文件;

    (3)bash: find . 核对目录结构:

    # Your directory layout should look like this
    $ find .
    .
    ./simple.sbt
    ./src
    ./src/main
    ./src/main/scala
    ./src/main/scala/SimpleApp.scala

    (4)bash: sbt package  打包;

    (5)用spark中的spark-submit运行.jar:

    $ YOUR_SPARK_HOME/bin/spark-submit 
      --class "SimpleApp" 
      --master local[4] 
      target/scala-2.10/simple-project_2.10-1.0.jar

    上面的 local[4] 表示程序运行在4个核上面,如果是在集群上面提交任务,则master后面的参数应该是yarn,然后--deploy-mode的参数是cluster;因为--deploy-mode的参数默认是client。

    注意:在build.sbt添加新的dependencies library之后,有时会出现classdefnotfoundException这样的错误,解决方法如:

    http://stackoverflow.com/questions/28459333/how-to-build-an-uber-jar-fat-jar-using-sbt-within-intellij-idea/28498443#28498443

    主要是需要添加一个sbt assembly插件,用来合并依赖库之间定义类的冲突。添加完后,以后运行scala程序就用sbt assembly取代sbt package,然后再submit即可。

    5、spark集群查看log命令:

    yarn logs -applicationId application_1479387059004_174425 > a
     
    spark集群kill掉自己任务的命令:
    yarn --config /usr/local/hadoop-2.7.0/etc/hadoop-infosec-radar application -kill application_1479387059004_178692/
     
  • 相关阅读:
    遍历二维数组
    冒泡跟扫描共用
    1.8作业
    1.7作业
    1.5作业
    百文百鸡 水仙花数 百马百担
    for循环输出九九乘法表
    循环语句
    1.4作业
    07、找出1-99之间的同构数
  • 原文地址:https://www.cnblogs.com/zichun-zeng/p/5241476.html
Copyright © 2011-2022 走看看