`
congli
  • 浏览: 15433 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

第一个Spark程序(编码+Spark-submit提交运行)

 
阅读更多
第一个程序

将搜狗实验室的日志分析,分析出查询排行榜;
需要先将txt文件传到HDFS上,然后分析;


程序代码:
package main.scala
import org.apache.spark.{ SparkContext, SparkConf }
import org.apache.spark.SparkContext._

object SogouQA {
  def main(args: Array[String]) {
    //    if (args.length == 0) {  都在里面运行不需要提交参数
    //      System.err.println("Usage: WordCount1 <file1>")
    //      System.exit(1)
    //    }

    val conf = new SparkConf().setAppName("SogouQA")
    val sc = new SparkContext(conf)

    //搜索结果排名第1,但是点击次序排在第2的数据有多少?
    // 数据分为六列,用tab健分开,第2列是session
    val rdd1 = sc.textFile("hdfs://hadoop1:8000/datatest/test/SogouQ1.txt")
    val rdd2 = rdd1.map(_.split("\t")).filter(_.length == 6)
    rdd2.count()

    //session查询次数排行榜、相当于查找session最多的
    //思路:先把session变成KV格式,然后每个元素做reduceByKey,这样就求出和,知道哪个最大,
    //这时,再把次数和sessionId调换,就是KV调换,再排序,再调换,就得出了排行榜
    val rdd4 = rdd2.map(x => (x(1), 1)).reduceByKey(_ + _).map(x => (x._2, x._1)).sortByKey(false).map(x => (x._2, x._1))
    rdd4.saveAsTextFile("hdfs://hadoop1:8000/datatest/test/output1")
//    val rdd = sc.parallelize(Array("1","2"));
    sc.stop()
  }
}


1、上传SogouQA.txt到HDFS上
bin/hdfs dfs -put SogouQ1.txt /datatest/test/ 




2、将代码打成jar,Eclipse导出即可;然后将SQA.JAR放到spark目录下;
然后用Spark-submit提交:
bin/spark-submit  --master spark://hadoop1:7077 --class main.scala.SogouQA SQA.jar


3、当程序运行时,我们在Spark的网页客户端上能看到以下信息:



4、运行结束后,我们能看到HDFS上的文件;



5、这些文件是零碎的,我们需要在命令行里将这个合并(目前只知道这一种办法)
bin/hdfs dfs -getmerge hdfs://hadoop1:8000/datatest/test/output1 result1


[b]6、
ls -lsa
查看,有了result1[/b]

7、我们查看下,取前10名看下
[hadoop@hadoop1 hadoop240]$ head result1
(b3c94c37fb154d46c30a360c7941ff7e,676)
(cc7063efc64510c20bcdd604e12a3b26,613)
(955c6390c02797b3558ba223b8201915,391)
(b1e371de5729cdda9270b7ad09484c4f,337)
(6056710d9eafa569ddc800fe24643051,277)
(637b29b47fed3853e117aa7009a4b621,266)
(c9f4ff7790d0615f6f66b410673e3124,231)
(dca9034de17f6c34cfd56db13ce39f1c,226)
(82e53ddb484e632437039048c5901608,221)
(c72ce1164bcd263ba1f69292abdfdf7c,214)


这里我们已经分析结束。

附录
SogouQA.txt的文件格式如下:

第一列是时间  第2列是sessionId   第三列是搜索词  第4列是搜索结果排名  第5列是点击次序 第六列是url

其余数据,可以自己造数据

20111230000005	57375476989eea12893c0c3811607bcf	奇艺高清	1	1	http://www.qiyi.com/
20111230000005	66c5bb7774e31d0a22278249b26bc83a	凡人修仙传	3	1	http://www.booksky.org/BookDetail.aspx?BookID=1050804&Level=1
20111230000007	b97920521c78de70ac38e3713f524b50	本本联盟	1	1	http://www.bblianmeng.com/
20111230000008	6961d0c97fe93701fc9c0d861d096cd9	华南师范大学图书馆	1	1	http://lib.scnu.edu.cn/
  • 大小: 8.6 KB
  • 大小: 24.7 KB
  • 大小: 10.7 KB
分享到:
评论

相关推荐

    Spark-submit

    hdp spark

    Spark源码系列(一)spark-submit提交作业过程

    折腾了很久,终于开始学习Spark的源码了,第一篇我打算讲一下Spark作业的提交过程。这个是Spark的App运行图,它通过一个Driver来和集群通信,集群负责作业的分配。今天我要讲的是如何创建这个Driver Program的过程。...

    spark-submit cluster模式时driver-class-path支持hdfs路径

    spark官方版本的driver-class-path不支持hdfs路径,只支持本地路径。本资源解决了这个问题,driver-class-path在cluster模式时可以支持hdfs路径,解决了cluster模式driver有大量jar依赖的问题。

    spark-3.1.2.tgz & spark-3.1.2-bin-hadoop2.7.tgz.rar

    - 使用SparkSubmit工具提交应用程序到集群。 - Spark Shell提供了一个交互式的环境,可以直接测试代码。 7. 性能优化: - 调整Executor的数量、内存大小和CPU核心分配。 - 使用宽依赖减少shuffle操作以优化数据...

    spark-hive-2.11和spark-sql-以及spark-hadoop包另付下载地址

    Spark是大数据处理领域的一款热门框架,它提供了高效、弹性、分布式的计算能力。Hive则是基于Hadoop的数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供SQL查询功能。Spark与Hive的集成,使得用户...

    kafka_2.11-0.11.0.0.tgz + spark-streaming-kafka-0-8-assembly_2.11-2.4.5.jar

    kafka_2.11-0.11.0.0.tgz + spark-streaming-kafka-0-8-assembly_2.11-2.4.5.jar 一站式搭建sparkstreaming环境见该博客https://blog.csdn.net/wrwhahah/article/details/105716359

    spark-2.4.7-bin-hadoop2.6.tgz

    此外,可以通过`spark-submit`脚本提交应用程序到Spark集群执行,或直接在Spark Shell中交互式探索数据。 总结来说,Spark 2.4.7是大数据处理领域的重要工具,它的高性能、易用性和丰富的功能使其在数据科学和工程...

    spark-3.1.3-bin-without-hadoop.tgz

    Spark是Apache软件基金会下的一个开源大数据处理框架,它以其高效、灵活和易用性而闻名。这个"spark-3.1.3-bin-without-hadoop.tgz"压缩包是Spark的3.1.3版本,不含Hadoop依赖的二进制发行版。这意味着在部署时,你...

    spark-1.6.0-bin-hadoop2.6.tgz

    开发者可以根据需求选择合适的语言编写应用程序,然后使用`spark-submit`脚本来提交任务到集群。 **6. 性能调优** Spark性能优化主要包括内存管理、任务调度和数据本地性等方面。可以通过调整`spark.executor....

    spark-2.1.0-bin-without-hadoop.tgz

    应用程序可以通过`spark-submit`脚本提交到集群。 6. **性能优化**:Spark支持动态资源调度、数据缓存以及Tungsten和Codegen技术,提高内存利用率和执行效率。此外,可以通过调整executor数量、内存分配、shuffle...

    spark-3.2.4-bin-hadoop3.2-scala2.13 安装包

    对于应用程序开发,可以使用Scala、Java、Python或R编写代码,然后通过`spark-submit`脚本提交作业到集群。 6. **性能优化**: Spark提供了一系列性能优化手段,如Tungsten内存管理、Code Generation、Shuffle优化等...

    spark-assembly-1.5.2-hadoop2.6.0.jar

    Spark-assembly-1.5.2-hadoop2.6.0.jar是一个fat jar,包含了Spark的所有依赖,包括Spark自身的核心库、Hadoop客户端库以及其他相关的第三方库。这样做的目的是为了简化Spark应用程序的部署,避免因依赖冲突而引发...

    spark-2.4.8-bin-hadoop2.7.tgz

    在使用Spark时,你可以通过`spark-submit`命令提交应用程序,或者直接在Spark Shell中编写和运行代码。 总的来说,Spark 2.4.8是一个强大且灵活的大数据处理框架,它通过其丰富的组件和优化的性能,为开发者提供了...

    spark-2.1.0-bin-without-hadoop版本的压缩包,直接下载到本地解压后即可使用

    Apache Spark 是一种用于大数据工作负载的分布式开源处理系统。它使用内存中缓存和优化的查询执行方式,可针对任何规模的数据进行快速分析查询。它提供使用 Java、Scala、Python 和 R 语言的开发 API,支持跨多个...

    spark-2.4.7-bin-without-hadoop

    Spark 2.4.7 是 Apache Spark 的一个重要版本,它是一个流行的开源大数据处理框架,被广泛应用于大规模数据处理、机器学习以及实时流处理等领域。这次我们讨论的是"spark-2.4.7-bin-without-hadoop",这是一个不包含...

    spark-3.2.0-bin-hadoop3-without-hive

    你可以通过解压这个压缩包,配置相应的环境变量,然后启动 Spark Shell 或者 Spark Submit 来运行你的应用程序。需要注意的是,对于没有 Hive 支持的 Spark,你可能需要使用其他方式来实现数据仓库的功能,比如使用 ...

    Hadoop+Spark+Hive+HBase+Oozie+Kafka+Flume+Flink+ES+Redash等详细安装部署

    在大数据领域,构建一个完整的生态系统是至关重要的,其中包括多个组件,如Hadoop、Spark、Hive、HBase、Oozie、Kafka、Flume、Flink、Elasticsearch和Redash。这些组件协同工作,提供了数据存储、处理、调度、流...

    spark--bin-hadoop3-without-hive.tgz

    总的来说,"spark--bin-hadoop3-without-hive.tgz"提供了一个在CentOS 8和Hadoop 3.1.3环境下运行的Spark实例,不包含Hive支持,适合那些需要高效大数据处理而不依赖Hive功能的用户。要充分利用这个版本,理解Spark...

    spark-2.2.2-bin-hadoop2.7.tgz

    1. `bin`:存放可执行脚本,如`spark-submit`用于提交Spark应用,`spark-shell`提供交互式Shell环境。 2. `conf`:配置文件夹,存放默认配置模板,如`spark-defaults.conf`,用户可以根据需求自定义配置。 3. `jars`...

    基于Spark的实时日志分析及异常检测系统 Flume + Kafka + Hbase + Spark-Streaming

    这里提到的"人工智能-spark"项目,结合了Flume、Kafka、HBase以及Spark-Streaming,构建了一个高效且实时的数据处理管道。下面我们将详细探讨这些组件各自的作用及其相互间的协同工作原理。 1. **Apache Flume**:...

Global site tag (gtag.js) - Google Analytics