zoukankan      html  css  js  c++  java
  • Scala IDE for Eclipse的下载、安装和WordCount的初步使用(本地模式和集群模式)

      

       不多说,直接上干货!

      

    这篇博客是, 

      是在Scala IDEA for Eclipse里maven创建scala和java代码编写环境。

    Scala IDEA for Eclipse里用maven来创建scala和java项目代码环境(图文详解)

    本博文包括:

       Scala IDE for Eclipse的下载

       Scala IDE for Eclipse的安装

       本地模式或集群模式

      我们知道,对于开发而言,IDE是有很多个选择的版本。如我们大部分人经常用的是如下。

    Eclipse *版本

    Eclipse *下载

       而我们知道,对于spark的scala开发啊,有为其专门设计的eclipse,Scala IDE for Eclipse。

      

    1、Scala IDE for Eclipse的下载

     http://scala-ide.org/   

     2、Scala IDE for Eclipse的安装

    进行解压

      3、Scala IDE for Eclipse的WordCount的初步使用

     在这之前,先在本地里安装好java和scala

      因为,我这篇博客,是面向基础的博友而分享的。所以,在此,是在Scala IDE for Eclipse里,手动新建scala项目。

    注意:推荐使用IDEA , 当然有人肯定还依依不舍Scala IDE for Eclipse。

    则,如下是我写的另一篇博客

    Scala IDEA for Eclipse里用maven来创建scala和java项目代码环境(图文详解)

    默认竟然变成了scala 2.11.8去了

    这一定要换!

             Scala2.11.8(默认的版本)   -------->      scala2.10.4(我们的版本)

    第一步:修改依赖的scala版本,从scala2.11.*,至scala2.10.*。

     

     

    这里是兼容版本,没问题。Scala2.10.6和我们的scala2.10.4没关系!!!

    第二步:加入spark的jar文件依赖

    http://spark.apache.org/downloads.html

    我这里,以spark-1.5.2-bin-hadoop2.6.tgz为例,其他版本都是类似的,很简单!

    http://www.apache.org/dyn/closer.lua/spark/spark-1.5.2/spark-1.5.2-bin-hadoop2.6.tgz

    第三步:找到spark依赖的jar文件,并导入到Scala IDE for Eclipse的jar依赖中

     

    添加Spark的jar依赖spark-1.5.2-bin-hadoop2.6.tgz里的lib目录下的spark-assembly-1.5.2-hadoop2.6.0.jar

    第四步:在src下,建立spark工程包

     

    第五步:创建scala入口类

    定义main方法

    第六步:把class变成object,并编写main入口方法。

     

    本地模式

    第1步

    第2步

    第3步

     

     第4步

     第5步

    第6步

    集群模式

      这里,学会巧,复制粘贴,WordCount.scala 为 WordCount_Clutser.scala。

     

     

     

    现在呢,来从Linux里,拷贝文件到hadoop集群里

    即,将

         /usr/local/spark/spark-1.5.2-bin-hadoop2.6/README.md   到  / 或  hdfs://SparkSingleNode:9000

    spark@SparkSingleNode:/usr/local/hadoop/hadoop-2.6.0$ pwd
    /usr/local/hadoop/hadoop-2.6.0
    spark@SparkSingleNode:/usr/local/hadoop/hadoop-2.6.0$ bin/hadoop fs -copyFromLocal /usr/local/spark/spark-1.5.2-bin-hadoop2.6/README.md  hdfs://SparkSingleNode:9000/
    spark@SparkSingleNode:/usr/local/hadoop/hadoop-2.6.0$ bin/hadoop fs -ls /
    Found 2 items
    -rw-r--r-- 1 spark supergroup 3593 2016-09-18 10:15 /README.md
    drwx-wx-wx - spark supergroup 0 2016-09-09 16:28 /tmp
    spark@SparkSingleNode:/usr/local/hadoop/hadoop-2.6.0$

     

    // val lines:RDD[String] = sc.textFile("D://SoftWare//spark-1.6.2-bin-hadoop2.6//README.md", 1)//path指的是文件路径,minPartitions指的是最小并行度
    // val lines = sc.textFile("D://SoftWare//spark-1.6.2-bin-hadoop2.6//README.md", 1)//path指的是文件路径,minPartitions指的是最小并行度
    // val lines = sc.textFile("hdfs://SparkSingleNode:9000/README.md", 1)//没必要会感知上下文
    // val lines = sc.textFile("/README.md", 1)//path指的是文件路径,minPartitions指的是最小并行度
    val lines = sc.textFile("/README.md")//为什么,这里不写并行度了呢?因为,hdfs会有一个默认的

    如,我们的这里/里,有188个文件,每个文件小于128M。

    所以,会有128个小集合。

    当然,若是大于的话,我们可以人为干预,如3等

    做好程序修改之后,

    我这里啊,遇到如上的错误。

    http://blog.csdn.net/weipanp/article/details/42713121 

    (3)Exception in thread "main" java.lang.UnsatisfiedLinkError: org.apache.hadoop.util.NativeCrc32.nativeComputeChunkedSumsByteArray(II[BI[BIILjava/lang/String;JZ)V

    at org.apache.hadoop.util.NativeCrc32.nativeComputeChunkedSumsByteArray(Native Method)

    修复方法:在hadoop2.6源码里找到NativeCrc32.java,创建与源码一样的包名,拷贝NativeCrc32.java到该包工程目录下。

     

    hadoop-2.6.0-src/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/util/NativeCrc32.java

     

    以及,缺少hadoop.dll,注意是64位的。放到hadoop-2.6.0下的bin目录下

     玩玩spark-1.5.2-bin-hadoop2.6.tgz

     继续,,,出现了一些问题!

    其实啊,在集群里,模板就是如下

    val file = spark.textFile("hdfs://...”)

    val counts = file.flatMap("line => line.spilt(" "))

            .map(word => (word,1))

            .reduceByKey(_+_)

     counts.saveAsTextFile("hdfs://...”)

    欢迎大家,加入我的微信公众号:大数据躺过的坑     免费给分享
     
     
     

    同时,大家可以关注我的个人博客

       http://www.cnblogs.com/zlslch/   和  http://www.cnblogs.com/lchzls/ 

      人生苦短,我愿分享。本公众号将秉持活到老学到老学习无休止的交流分享开源精神,汇聚于互联网和个人学习工作的精华干货知识,一切来于互联网,反馈回互联网。
      目前研究领域:大数据、机器学习、深度学习、人工智能、数据挖掘、数据分析。 语言涉及:Java、Scala、Python、Shell、Linux等 。同时还涉及平常所使用的手机、电脑和互联网上的使用技巧、问题和实用软件。 只要你一直关注和呆在群里,每天必须有收获

           以及对应本平台的QQ群:161156071(大数据躺过的坑)

     

     

  • 相关阅读:
    总结:关于作用域的经典面试题
    解决JS拖拽出现的问题
    JS正则(3)总结
    JS正则(2)对正则的理解
    JS 闭包 正则(1)
    JS Date对象
    笔记
    9.13笔记
    9.12学习笔记
    9.11学习笔记
  • 原文地址:https://www.cnblogs.com/zlslch/p/5880006.html
Copyright © 2011-2022 走看看