`

spark初探

 
阅读更多
首先解压scala,本次选用版本scala-2.11.1

[Hadoop@CentOS software]$ tar -xzvf scala-2.11.1.tgz

[hadoop@centos software]$ su -

[root@centos ~]# vi /etc/profile

添加如下内容:

SCALA_HOME=/home/hadoop/software/scala-2.11.1

PATH=$SCALA_HOME/bin

EXPORT SCALA_HOME

[root@centos ~]# source /etc/profile

[root@centos ~]# scala -version

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

然后解压spark,本次选用版本spark-1.0.0-bin-hadoop1.tgz,这次用的是hadoop 1.0.4

[hadoop@centos software]$ tar -xzvf spark-1.0.0-bin-hadoop1.tgz

--------------------------------------分割线 --------------------------------------

CentOS 6.2(64位)下安装Spark0.8.0详细记录 http://www.linuxidc.com/Linux/2014-06/102583.htm

Spark简介及其在Ubuntu下的安装使用 http://www.linuxidc.com/Linux/2013-08/88606.htm

安装Spark集群(在CentOS上) http://www.linuxidc.com/Linux/2013-08/88599.htm

Hadoop vs Spark性能对比 http://www.linuxidc.com/Linux/2013-08/88597.htm

Spark安装与学习 http://www.linuxidc.com/Linux/2013-08/88596.htm

Spark 并行计算模型 http://www.linuxidc.com/Linux/2012-12/76490.htm

--------------------------------------分割线 --------------------------------------

进入到spark的conf目录下

[hadoop@centos conf]$ cp spark-env.sh.template spark-env.sh

[hadoop@centos conf]$ vi spark-env.sh

添加如下内容:

export SCALA_HOME=/home/hadoop/software/scala-2.11.1

export SPARK_MASTER_IP=centos.host1

export SPARK_WORKER_MEMORY=5G

export JAVA_HOME=/usr/software/jdk

启动

[hadoop@centos spark-1.0.0-bin-hadoop1]$ sbin/start-master.sh

可以通过 http://centos.host1:8080/ 看到对应界面

[hadoop@centos spark-1.0.0-bin-hadoop1]$ sbin/start-slaves.sh park://centos.host1:7077

可以通过 http://centos.host1:8081/ 看到对应界面

下面在spark上运行第一个例子:与Hadoop交互的WordCount

首先将word.txt文件上传到HDFS上,这里路径是 hdfs://centos.host1:9000/user/hadoop/data/wordcount/001/word.txt

进入交互模式

[hadoop@centos spark-1.0.0-bin-hadoop1]$ master=spark://centos.host1:7077 ./bin/spark-shell

scala>val file=sc.textFile("hdfs://centos.host1:9000/user/hadoop/data/wordcount/001/word.txt")

scala>val count=file.flatMap(line=>line.split(" ")).map(word=>(word,1)).reduceByKey(_+_)

scala>count.collect()

可以看到控制台有如下结果:

res0: Array[(String, Int)] = Array((hive,2), (zookeeper,1), (pig,1), (spark,1), (hadoop,4), (hbase,2))

同时也可以将结果保存到HDFS上

scala>count.saveAsTextFile("hdfs://centos.host1:9000/user/hadoop/data/wordcount/001/result.txt")

接下来再来看下如何运行Java版本的WordCount

这里需要用到一个jar文件:spark-assembly-1.0.0-hadoop1.0.4.jar

WordCount代码如下:

public class WordCount {
 
 private static final Pattern SPACE = Pattern.compile(" ");

 @SuppressWarnings("serial")
 public static void main(String[] args) throws Exception {
  if (args.length < 1) {
   System.err.println("Usage: JavaWordCount <file>");
   System.exit(1);
  }

  SparkConf sparkConf = new SparkConf().setAppName("JavaWordCount");
  JavaSparkContext ctx = new JavaSparkContext(sparkConf);
  JavaRDD<String> lines = ctx.textFile(args[0], 1);

  JavaRDD<String> words = lines.flatMap(new FlatMapFunction<String, String>() {
     @Override
     public Iterable<String> call(String s) {
      return Arrays.asList(SPACE.split(s));
     }
    });

  JavaPairRDD<String, Integer> ones = words.mapToPair(new PairFunction<String, String, Integer>() {
     @Override
     public Tuple2<String, Integer> call(String s) {
      return new Tuple2<String, Integer>(s, 1);
     }
    });

  JavaPairRDD<String, Integer> counts = ones.reduceByKey(new Function2<Integer, Integer, Integer>() {
     @Override
     public Integer call(Integer i1, Integer i2) {
      return i1 + i2;
     }
    });

  List<Tuple2<String, Integer>> output = counts.collect();
  for (Tuple2<?, ?> tuple : output) {
   System.out.println(tuple._1() + " : " + tuple._2());
  }
  
  ctx.stop();
 }
}
分享到:
评论

相关推荐

    Spark初探

    Spark基于内存计算,提高了在大数据环境下数据处理的实时性,同时保证了高容错性和高可伸缩性,允许用户将Spark部署在大量廉价硬件之上,形成集群。...

    Spark源码初探.md

    Spark底层

    基于DeepLearning4J on Spark深度学习方法在药用植物图像识别中应用初探.pdf

    基于DeepLearning4J on Spark深度学习方法在药用植物图像识别中应用初探.pdf

    基于物联网技术的计算机嵌入式系统初探.zip

    这涉及大数据处理技术和云计算平台,如Hadoop、Spark等。 5. 软件开发:嵌入式系统的软件通常需要针对特定硬件进行优化,开发者需熟悉操作系统(如Linux、RTOS)、编程语言(如C/C++、Python)以及驱动程序开发。 ...

    数据科学与大数据技术专业程序设计课程教学初探.zip

    在这个课程教学初探中,我们将探讨几个关键的知识点,包括数据科学的基础概念、大数据技术的应用、程序设计语言的选择以及实践教学策略。 首先,我们需要理解数据科学的基本概念。数据科学是一门多学科交叉的领域,...

    DG1000170-Ⅰ型锅炉热效率诊断初探.zip

    标题中的“DG1000170-Ⅰ型锅炉热效率诊断初探”表明这是一个关于特定型号锅炉——DG1000170-Ⅰ型的热效率分析和诊断的研究。在这个主题下,我们可以探讨以下几个重要的IT相关知识点: 1. **数据采集与处理**:对...

    kafka初探尝鲜

    kafka实时计算灵域内的一颗耀眼的新宠,与storm、spark等实时计算框架相整合,更好滴服务于互联网行业,同时亦可与离线批量计算hadoop相整合,方便数据源的采集,总之,kafka你值得学习......

    大数据时代下的信息安全问题初探.zip

    大数据的存储通常涉及到分布式系统,如Hadoop或Spark,这些系统的设计初衷并非为了安全,因此需要额外的安全层来保护数据。这包括加密存储、访问控制和日志监控等。同时,数据生命周期管理也应得到重视,确保数据在...

    信息化背景下的新型实验室建设初探.docx

    此外,实验环境涵盖了多种虚拟化技术,以满足云计算框架如Hadoop和Spark的实验需求。 大数据实验室则针对硕士和博士研究生,提供大数据存储、管理和分析的实验平台,特别强调对大数据4V特征的处理能力,即大数据的...

    大数据技术在图书馆中的运用策略初探.zip

    首先,图书馆需要构建合适的技术基础设施,包括强大的数据存储系统、高效的数据处理工具(如Hadoop、Spark)以及先进的数据分析平台。其次,培养具有大数据技能的专业人才,他们能进行数据挖掘、清洗和分析,为决策...

    基于电商技术的公交大数据平台构建及应用初探.zip

    电商领域的分布式计算框架(如Hadoop、Spark)和云存储服务(如AWS S3、阿里云OSS)可为公交大数据平台提供强大的数据处理能力和弹性存储空间。 3. 实时分析:公交大数据平台需要实时监控公交运行状态,预测拥堵和...

    海量数据处理的初探--亿级数据的离线计算--LevelDB简单封装

    此外,为了处理大规模数据,我们可能还需要使用分布式文件系统(如HDFS)来存储SSTable文件,或者使用分布式计算框架(如MapReduce或Spark)来并行处理多个LevelDB实例。 对于描述中提到的"后续讲解思路",这可能...

    QCon广州 2019年全球软件开发大会PPT合集(30份).zip

    智能 Web 研发初探 一站式业务稳定性保障平台的 AIOps 实践 信息流广告的排序算法演进 小游戏质量保证测试实践之路 物流仓储数据分发平台架构实践及挑战 万亿规模下高吞吐低时延查询系统架构设计 数字化转型提升企业...

    Impala大数据分析快速入门视频教程

    从零开始讲解大数据分布式计算的发展及Impala的应用场景,对比Hive、MapReduce、Spark等类似框架讲解内存式计算原理,基于Impala构建高性能交互式SQL分析平台 课程亮点 1,知识体系完备,从小白到大神各阶段读者均...

    BigDataProject:这是我的大数据类项目

    大数据生态链初探。 目录 因配置环境只需要一篇文档,这里把配置环境的说明统一文件放到Documentations文件夹下。 环境安装与Hello-World DEMO 核心环境搭建 ---依赖[0] ---依赖[1] ---依赖[1] ---依赖[3] spark探索...

    Postgresql中国用户大会 2016(PG大象会)所有PPT汇总.zip

    楼方鑫-平民软件-Spark_over_OneProxy_Postgresql.pdf Mason Sharp-华为-Scaling with PostgreSQL 9.6 and Postgres-XL.pdf 陆公瑜-Pivotal- Greenplum 5.0及规划.pdf Sylvain - CodeBunker - The power of ...

    2-7+网易传媒离线数仓建设实践.pdf

    网易传媒事业部的数仓建设展望包括数仓4.0:APP层数据建设工具、数仓4.0:核心数据资产白皮书、应用视角的数仓评价体系建设流批一体数据体系建设初探等。这些展望将有助于网易传媒事业部继续推进数仓建设,提高数据...

    ida:使用R进行数据分析简介(2013)

    《IDA:R语言在数据分析中的应用初探》 在当今数据驱动的世界中,掌握有效的数据分析工具至关重要。R语言,作为一种强大的统计分析和图形绘制软件,因其开源、免费且功能丰富的特性,深受数据科学家和分析师的喜爱...

Global site tag (gtag.js) - Google Analytics