专栏首页about云日志分析实战之清洗日志小实例1:使用spark&Scala分析Apache日志

日志分析实战之清洗日志小实例1:使用spark&Scala分析Apache日志

问题导读 1.如何进入spark shell? 2.spark shell中如何加载外部文件? 3.spark中读取文件后做了哪些操作? about云日志分析,那么过滤清洗日志。该如何实现。这里参考国外的一篇文章,总结分享给大家。 使用spark分析网站访问日志,日志文件包含数十亿行。现在开始研究spark使用,他是如何工作的。几年前使用hadoop,后来发现spark也是容易的。 下面是需要注意的:

如果你已经知道如何使用spark并想知道如何处理spark访问日志记录,我写了这篇短的文章,介绍如何从Apache访问日志文件中生成URL点击率的排序

spark安装需要安装hadoop,并且二者版本要合适。安装可参考下面文章 about云日志分析项目准备6:Hadoop、Spark集群搭建 http://www.aboutyun.com/forum.php?mod=viewthread&tid=20620 进入

[Bash shell] 纯文本查看 复制代码

?

./bin/spark-shell

可能会出错

[Bash shell] 纯文本查看 复制代码

?

java.io.FileNotFoundException: File file:/data/spark_data/history/event-log does not exist

解决办法:

[Bash shell] 纯文本查看 复制代码

?

mkdir -p /data/spark_data/history/event-log

详细错误如下

[Bash shell] 纯文本查看 复制代码

?

17/10/08 17:00:23 INFO client.AppClient$ClientEndpoint: Executor updated: app-20171008170022-0000/1 is now RUNNING
17/10/08 17:00:25 ERROR spark.SparkContext: Error initializing SparkContext.
java.io.FileNotFoundException: File file:/data/spark_data/history/event-log does not exist
      kSubmit.main(SparkSubmit.scala)
 
        at org.apache.spark.deploy.SparkSubmit.main(SparkSubmit.scala)
 
java.lang.NullPointerException
      arkSubmit.scala:121)
        at org.apache.spark.deploy.SparkSubmit.main(SparkSubmit.scala)
 
<console>:16: error: not found: value sqlContext
         import sqlContext.implicits._
                ^
<console>:16: error: not found: value sqlContext
         import sqlContext.sql
                ^

进入spark shell

[Bash shell] 纯文本查看 复制代码

?

val textFile=sc.textFile("file:///data/spark/README.md")

说明: 记得这里如果自己创建的文件可能会读取不到。报错如下

[Bash shell] 纯文本查看 复制代码

?

java.io.FileNotFoundException: File file:/data/spark/change.txt does not exist
      Submit.scala)
Caused by: java.io.FileNotFoundException: File file:/data/spark/change.txt does not exist
        at org.apache.hadoop.fs.RawLocalFileSystem.deprecatedGetFileStatus(RawLocalFileSystem.java:534)
        at org.apache.hadoop.fs.RawLocalFileSystem.getFileLinkStatusInternal(RawLocalFileSystem.java:747)
        at org.apache.hadoop.fs.RawLocalFileSystem.getFileStatus(RawLocalFileSystem.java:524)
        at org.apache.hadoop.fs.FilterFileSystem.getFileStatus(FilterFileSystem.java:409)
        at org.apache.hadoop.fs.ChecksumFileSystem$ChecksumFSInputChecker.<init>(ChecksumFileSystem.java:140)
        at org.apache.hadoop.fs.ChecksumFileSystem.open(ChecksumFileSystem.java:341)
        at org.apache.hadoop.fs.FileSystem.open(FileSystem.java:766)
        at org.apache.hadoop.mapred.LineRecordReader.<init>(LineRecordReader.java:108)
        at org.apache.hadoop.mapred.TextInputFormat.getRecordReader(TextInputFormat.java:67)
        at org.apache.spark.rdd.HadoopRDD$$anon$1.<init>(HadoopRDD.scala:240)
        at org.apache.spark.rdd.HadoopRDD.compute(HadoopRDD.scala:211)
        at org.apache.spark.rdd.HadoopRDD.compute(HadoopRDD.scala:101)
        at org.apache.spark.rdd.RDD.computeOrReadCheckpoint(RDD.scala:306)
        at org.apache.spark.rdd.RDD.iterator(RDD.scala:270)
        at org.apache.spark.rdd.MapPartitionsRDD.compute(MapPartitionsRDD.scala:38)
        at org.apache.spark.rdd.RDD.computeOrReadCheckpoint(RDD.scala:306)
        at org.apache.spark.rdd.RDD.iterator(RDD.scala:270)
        at org.apache.spark.scheduler.ResultTask.runTask(ResultTask.scala:66)
        at org.apache.spark.scheduler.Task.run(Task.scala:89)
        at org.apache.spark.executor.Executor$TaskRunner.run(Executor.scala:227)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)

执行

[Bash shell] 纯文本查看 复制代码

?

textFile.count

[Bash shell] 纯文本查看 复制代码

?

textFile.first

输出如下内容

[Bash shell] 纯文本查看 复制代码

?

scala> textFile.first
17/10/08 18:34:23 INFO spark.SparkContext: Starting job: first at <console>:30
17/10/08 18:34:23 INFO scheduler.DAGScheduler: Got job 1 (first at <console>:30) with 1 output partitions
17/10/08 18:34:23 INFO scheduler.DAGScheduler: Final stage: ResultStage 1 (first at <console>:30)
17/10/08 18:34:23 INFO scheduler.DAGScheduler: Parents of final stage: List()
17/10/08 18:34:23 INFO scheduler.DAGScheduler: Missing parents: List()
17/10/08 18:34:23 INFO scheduler.DAGScheduler: Submitting ResultStage 1 (file:///data/spark/README.md MapPartitionsRDD[1] at textFile at <console>:27), which has no missing parents
17/10/08 18:34:23 INFO storage.MemoryStore: Block broadcast_2 stored as values in memory (estimated size 3.1 KB, free 517.2 MB)
17/10/08 18:34:23 INFO storage.MemoryStore: Block broadcast_2_piece0 stored as bytes in memory (estimated size 1843.0 B, free 517.2 MB)
17/10/08 18:34:23 INFO storage.BlockManagerInfo: Added broadcast_2_piece0 in memory on 192.168.1.10:41717 (size: 1843.0 B, free: 517.4 MB)
17/10/08 18:34:23 INFO spark.SparkContext: Created broadcast 2 from broadcast at DAGScheduler.scala:1006
17/10/08 18:34:23 INFO scheduler.DAGScheduler: Submitting 1 missing tasks from ResultStage 1 (file:///data/spark/README.md MapPartitionsRDD[1] at textFile at <console>:27)
17/10/08 18:34:23 INFO scheduler.TaskSchedulerImpl: Adding task set 1.0 with 1 tasks
17/10/08 18:34:23 INFO scheduler.TaskSetManager: Starting task 0.0 in stage 1.0 (TID 2, slave2, partition 0,PROCESS_LOCAL, 2128 bytes)
17/10/08 18:34:23 INFO storage.BlockManagerInfo: Added broadcast_2_piece0 in memory on slave2:35228 (size: 1843.0 B, free: 517.4 MB)
17/10/08 18:34:23 INFO scheduler.TaskSetManager: Finished task 0.0 in stage 1.0 (TID 2) in 116 ms on slave2 (1/1)
17/10/08 18:34:23 INFO scheduler.TaskSchedulerImpl: Removed TaskSet 1.0, whose tasks have all completed, from pool 
17/10/08 18:34:23 INFO scheduler.DAGScheduler: ResultStage 1 (first at <console>:30) finished in 0.117 s
17/10/08 18:34:23 INFO scheduler.DAGScheduler: Job 1 finished: first at <console>:30, took 0.161753 s
res1: String = # Apache Spark

本文分享自微信公众号 - about云(wwwaboutyuncom),作者:pig2

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2017-10-16

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • spark入门(2.0.1版本):概述,下载,编译,运行环境及实例运行

    问题导读 1.spark下载方式有哪些? 2.spark可以运行在哪些系统? 3.spark支持哪些语言? 4.如何运行spark各种语言版本例子? ...

    用户1410343
  • spark2.2以后版本任务调度将增加黑名单机制

    问题导读 1.spark如何开启黑名单机制? 2.哪些条件将将executors列入黑名单? 3.整个节点被列入黑名单,executors如何处理? s...

    用户1410343
  • 让你真正明白spark streaming

    spark streaming介绍 Spark streaming是Spark核心API的一个扩展,它对实时流式数据的处理具有可扩展性、高吞吐量、可容错性等...

    用户1410343
  • 执行Spark运行在yarn上的命令报错 spark-shell --master yarn-client

    别先生
  • Java中的Object类 (下篇)

    hashCode是根据一定的规则和对象相关的信息映射成一个数值,这个数值成为散列值。他是由native关键字修饰的,native关键字主要是Java与本地C代码...

    陈琛
  • alpine docker exec: "/bin/bash": stat /bin/bash: no such file or directory 解决方案

    用户2235302
  • 微服务资源springboot、springcloud、docker、dubbo项目实战等倾心分享

    今天又是周末,还是想给大家送一些福利,因为最近一直有小伙伴问我要springboot等微服务的学习资源,所以,本次分享一整套的微服务学习资源,带项目实战。

    好好学java
  • alpine docker exec: "/bin/bash": stat /bin/bash: no such file or directory 解决方案

    码农笔录
  • 个人博客网站接入来必力评论系统

    网易在7月6日正式发表了公告,通知用户即将停止服务(7月底),所以我们这些免费的使用者也不得不换窝了。 第三方评论 在之前,第三方评论系统主要有畅言、来比力、网...

    xiangzhihong
  • python 求解线性规划问题

    某机床厂生产甲、乙两种机床,每台销售后的利润分别为 4000 元与 3000 元。生产甲机床需用 A、B 机器加工,加工时间分别为每台 2 小时和 1 小时;生...

    用户6021899

扫码关注云+社区

领取腾讯云代金券