spark 统计线上日志ip分组统计

2023-10-30

线上日志格式如下


每次访问都会记录ip,标记红色部分

获取某一行看看怎么解析

2017-12-01 09:57:11.970 [http-nio-8082-exec-2] INFO  - com.fullshare.common.aop.ControllerAop                       [ 144] - 请求head:{content-type=application/json, platform=ios, requestsign=f8ea2ff2af562ac5665ada231317a66b, accept-language=zh-Hans-CN;q=1, en-GB;q=0.9, host=tapi.fshtop.com, x-forwarded-for=192.168.132.167, accept=application/json, appid=123456, appversion=2.5, user-agent=FullShareTop/2.5 (iPhone; iOS 10.3.2; Scale/2.00), authorization=072a2431f2bd6cf8108eb3231488cb6dfcc6e11eead3d04283f67762313b2259b937d07358140ef1acf6c6963f8ad42bb088f3223638244e, osversion=10.3.2, mode=iPhone7,2, deviceid=88793C63-994E-44FF-A8BA-506B3897C963, clienttime=1512093518629, content-length=67, brand=iphone, channel=appstore, idfa=CC2E3934-6C3E-4E64-9894-02603E7CED3A}


可以写代码了

那些安装hadoop ,spark我不说了网上有,jar包引入在我另一篇文章

代码如下

package test.spark;

import org.apache.spark.SparkConf;
import org.apache.spark.api.java.JavaPairRDD;
import org.apache.spark.api.java.JavaRDD;
import org.apache.spark.api.java.JavaSparkContext;

import scala.Tuple2;

/**
 * 
 * @author huangjiangnan
 *
 */
public class FilterLine {
	
	@SuppressWarnings("resource")
	public static void main(String[] args) {
		SparkConf conf = new SparkConf().setMaster("spark://192.168.7.202:7077").setAppName(FilterLine.class.getName());
		JavaSparkContext sc = new JavaSparkContext(conf);
		JavaRDD<String> inputRDD=sc.textFile("hdfs://192.168.7.202:900/test/nohup.out");
		//java  lambda表达式 jdk8以上,省很多代码
		//转化RDD,过滤,只需要想要的行
		JavaRDD<String> reqRDD=inputRDD.filter((String x)->{
			if(x.contains("请求head")){
				return true;
			}
			return false;
		});
		//JavaPairRDD 建值对
	    JavaPairRDD<String, Integer> pairRDD=reqRDD.mapToPair((String x)->{
	    	String[] ss=x.split(",");
	    	String ip="未知ip";
	    	for (String st : ss) {
				if(st.contains("x-forwarded-for")){
					String[] ipStr=st.split("=");
					if(ipStr.length>1){
						ip=ipStr[1];
						break;
					}
				}
			}
	    	return new Tuple2<String,Integer>(ip,1);
	    }).reduceByKey((Integer num1,Integer num2)->{
	    	return num1+num2;
	    });
	    pairRDD.saveAsTextFile("hdfs://192.168.7.202:900/test/FilterLine-spark");
	}

}





打包然后提交执行

最后结果如下



本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

spark 统计线上日志ip分组统计 的相关文章

  • Spark集群安装部署

    目录 一 环境准备 二 安装步骤 三 使用Standalone模式 四 使用Yarn模式 一 环境准备 由于Spark仅仅是一种计算机框架 不负责数据的存储和管理 因此 通常都会将Spark和Hadoop进行统一部署 由Hadoop中的HD
  • 任务长期不释放和占用单节点持续的cpu,导致hivesever2本身内存泄漏造成

    任务长期不释放和占用单节点持续的cpu 导致hivesever2本身内存泄漏造成 产生的原因在于 查询过于复杂或者数据量过大 当有复杂的查询或处理大量数据的请求时 HiveServer2可能会出现高负载 这可能涉及大量的计算 IO操作或涉及
  • Spark(七)——累加器和广播变量

    5 累加器 通过在驱动器中调用SparkContext accumulator initialValue 方法 创建出存有初始值的累加器 返回值为org apache spark Accumulator T 对象 其中 T 是初始值 ini
  • Spark数据处理实战之列空值&新增列处理

    在spark dataset dataframe操作过程中 我们经常会遇到对于一个列值的一些判断情况 是否为NULL 创建一个新列等 本文讲解了常用的增加列的方法 并且对于列空值判断 填充处理以及查询的api做了详细的描述和实例讲解 阅读完
  • cdh下spark2-yarn运行sparkstreaming获取kafka数据使用spark-streaming-kafka-0-10_2.11报错解决

    报错问题 20 07 15 17 20 51 INFO utils AppInfoParser Kafka version 0 9 0 kafka 2 0 0 20 07 15 17 20 51 INFO utils AppInfoPars
  • Spark中的基本概念

    Spark中的基本概念 1 基本概念 1 1 RDD 弹性分布式数据集 1 2 DAG 有向无环图 1 3 Partition 数据分区 1 4 NarrowDependency 窄依赖 1 5 ShuffleDependency 宽依赖
  • Kafka/Spark消费topic到写出到topic

    1 Kafka的工具类 1 1 从kafka消费数据的方法 消费者代码 def getKafkaDStream ssc StreamingContext topic String groupId String consumerConfigs
  • 浅谈Hadoop体系和MPP体系

    浅谈Hadoop体系和MPP体系 引言 如题 在大数据发展至今 为了应对日益繁多的数据分析处理 和解决客户各种奇思妙 怪 想需求 形形色色的大数据处理的框架和对应的数据存储手段层出不穷 有老当益壮的Hadoop体系 依靠Hadoop巨大的社
  • Spark Job写文件个数的控制以及小文件合并的一个优化

    文章目录 背景说明 通过引入额外Shuffle对写入数据进行合并 EnsureRepartitionForWriting Rule CoalesceShufflePartitions Rule OptimizeShuffleWithLoca
  • 大数据spark开发入门教程

    大数据是互联网发展的方向 大数据人才是未来的高薪贵族 随着大数据人才的供不应求 大数据人才的薪资待遇也在不断提升 如果你也想进入大数据行业 也想学习大数据技术 大数据讲师认为 可以先从spark技术开始 一 Spark是什么 Spark是一
  • Impala presto hbase hive sparksql

    Impala 技术点梳理 http www cnblogs com TiestoRay p 10243365 html Impala 优点 实时性查询 计算的中间结果不写入磁盘 缺点 对于内存的依赖过于严重 内存溢出直接导致技术任务的失败
  • Spark 【分区与并行度】

    RDD 并行度和分区 SparkConf setMaster local 我们在创建 SparkContext 对象时通常会指定 SparkConf 参数 它包含了我们运行时的配置信息 如果我们的 setMaster 中的参数是 local
  • Spark学习(文件读取路径)

    在不同的启动模式下 加载文件时的路径写法是不一样的 对于local模式下 默认就是读取本地文件 而在standlone或者yarn client 或者cluster模式下 默认读的都是hdfs文件系统 这几种模式下很难读取本地文件 这是很显
  • 大数据手册(Spark)--Spark基本概念

    文章目录 Spark 基本概念 Hadoop 生态 Spark 生态 Spark 基本架构 Spark运行基本流程 弹性分布式数据集 RDD Spark安装配置 Spark基本概念 Spark基础知识 PySpark版 Spark机器学习
  • Spark 任务调度机制

    1 Spark任务提交流程 Spark YARN Cluster模式下的任务提交流程 如下图所示 图YARN Cluster任务提交流程 下面的时序图清晰地说明了一个Spark应用程序从提交到运行的完整流程 图Spark任务提交时序图 提交
  • 【硬刚大数据之学习路线篇】2021年从零到大数据专家的学习指南(全面升级版)

    欢迎关注博客主页 https blog csdn net u013411339 本文由 王知无 原创 首发于 CSDN博客 本文首发CSDN论坛 未经过官方和本人允许 严禁转载 欢迎点赞 收藏 留言 欢迎留言交流 声明 本篇博客在我之前发表
  • spark hadoop环境及运行

    hadoop配置 在Ubuntu20 04里安装Hadoop详细步骤 图文 亲测成功 ubuntu20 04安装hadoop 菜鸡的学习之路的博客 CSDN博客 启动hadoop root ubuntu usr local hadoop s
  • JAVA 安装与简单使用

    JAVA简易安装 下载安装 环境变量 进入变量界面 设置变量 验证JAVA环境 运行Java程序 个人站 ghzzz cn 还在备案 很快就能访问了 下载安装 第一步当然是从官网下载安装java了 网上有很多的教程 这里简单的写一下 在这里
  • Spark SQL 项目:实现各区域热门商品前N统计

    一 需求1 1 需求简介这里的热门商品是从点击量的维度来看的 计算各个区域前三大热门商品 并备注上每个商品在主要城市中的分布比例 超过两个城市用其他显示 1 2 思路分析使用 sql 来完成 碰到复杂的需求 可以使用 udf 或 udaf查
  • python+django基于Spark的国漫画推荐系统 可视化大屏分析

    国漫推荐信息是现如今社会信息交流中一个重要的组成部分 本文将从国漫推荐管理的需求和现状进行分析 使得本系统的设计实现具有可使用的价 做出一个实用性好的国漫推荐系统 使其能满足用户的需求 并可以让用户更方便快捷地国漫推荐 国漫推荐系统的设计开

随机推荐

  • java 清除字符串空格

    JAVA中去掉空格 1 String trim trim 是去掉首尾空格 2 str replace 去掉所有空格 包括首尾 中间 String str hell o String str2 str replaceAll System ou
  • 当代年轻人,为什么越来越穷?

    作者 啡小沫 来源 ID feixiaomo6 1 这个问题 在网上被浏览了400多万次 不吹不黑 我们先来看一组数据 知乎大V 经济学博弈论话题优秀回答者Manolo列举了Raj Chetty等六位研究者2017年发表在Science上的
  • Item 48:了解模板元编程

    Item 48 Be aware of template metaprogramming 模板元编程 Template Metaprogramming TMP 就是利用模板来编写那些在编译时运行的C 程序 模板元程序 Template Me
  • java 校验某对象是否存在某属性

    java 校验某对象是否存在某属性 String name username if StrKit isEmpty type JsonResult error 参数不能为空 Class class1 User class Field fiel
  • 《Attention Is All You Need》论文笔记 - 【transformer模型】

    论文来源 NeurIPS 2017 论文链接 点击进入 该篇论文提出了一个新颖的网络结构 Transformer 其没有使用循环递归结构和卷积结构 仅基于注意力机制 在两个机器任务上表明了模型能够更好的并行化计算 可以显著地减少训练时间 性
  • 大数据可视化课程笔记 1

    文章目录 第一章 数据可视化概述 1 1 什么是数据可视化 1 2 数据可视化的作用 1 3 数据可视化的分类 1 4 数据可视化的发展历史 1 5 数据可视化的未来 第一章 数据可视化概述 1 1 什么是数据可视化 数据可视化定义 将抽象
  • 【笔记】LaTex常见问题汇总(四)

    1 Texstudio显示编辑器代码行号 参考 https jingyan baidu com article f79b7cb339bbec9144023e84 html 2 Latex出现Unable to open xxxxx pdf
  • 1399: 最小生成树

    题目描述 最小生成树问题是实际生产生活中十分重要的一类问题 假设需要在n个城市之间建立通信联络网 则连通n个城市只需要n 1条线路 这时 自然需要考虑这样一个问题 即如何在最节省经费的前提下建立这个通信网 可以用连通网来表示n个城市以及n个
  • C# Study

    直接使用 t 和 n类似 字符串中文件路径的写法 3 当字符串中需要大量修改时 用StringBuilder更好 运行时间更短 4 Console ReadLine 读进来的默认是字符串string 5 C 严格区分大小写 Main需要大写
  • 蓝桥杯单片机第七届国赛笔记

    蓝桥杯单片机第七届国赛笔记 做完这届题目之后有很多感触和一些好的思想 想分享一下顺便巩固巩固 1 摆脱标志位的依赖 好的编程我认为是用最简洁 清晰的程序 最近的路径 去实现某个功能 如果遇到问题就做标志位这种方法我认为有点low了 对思维和
  • golang语言_2

    init函数 每一个源文件都可以包含一个 init 函数 该函数会在 main 函数执行前 被 Go 运行框架调用 也 就是说 init 会在 main 函数前被调用 可以做初始化操作 func init fmt Println 123 f
  • 【Python算法系列十一】二叉树的3种遍历方式

    二叉树的遍历是指从根结点出发 按照某种次序依次访问二叉树中所有结点 使得每个结点被访问一次且仅被访问一次 遍历二叉树的方法主要分 3 种 先序遍历 中序遍历和后序遍历 先序遍历指最先遍历节点本身 再遍历节点的左子树 最后遍历右子树的遍历方法
  • (一)esp8266透传简单使用

    最近闲的在捣鼓wifi 以太网连接网 不过好像没有那么多时间去研究cc3200 先从封装好的芯片模块开始玩起吧 这几天准备研究下ESP8266 由于手头上是有一个透传的模块 和一个块STM32F4的板子 而且有对应的代码例程 所以先开始研究
  • 华为OD机试 - 服务失效判断(Java)

    题目描述 某系统中有众多服务 每个服务用字符串 只包含字母和数字 长度 lt 10 唯一标识 服务间可能有依赖关系 如A依赖B 则当B故障时导致A也故障 依赖具有传递性 如A依赖B B依赖C 当C故障时导致B故障 也导致A故障 给出所有依赖
  • QT显示图片的四种方法

    QT显示图片的四种方法 原文地址 https blog csdn net flowerspring article details 113307194 1 Qt 设置背景图片的三种方式 setAutoFillBackground http
  • Error invoking remote method ‘docker-start-container‘: Error: (HTTP code 500) server error - Ports a

    文章目录 一 Error invoking remote method docker start container Error HTTP code 500 server error Ports are not available list
  • web到底是什么意思,web站点的创建方法

    web到底是什么意思 先来看看两个名词 一 超文本 hypertext 一种全局性的信息结构 它将文档中的不同部分通过关键字建立链接 使信息得以用交互方式搜索 它是超级文本的简称 二 超媒体 hypermedia 简介 WWW WorldW
  • HTML基础

    超文本标记语言 英语 HyperText Markup Language 简称 HTML 是一种用来结构化 Web 网页及其内容的标记语言 网页内容可以是 一组段落 一个重点信息列表 也可以含有图片和数据表 正如标题所示 本文将对 HTML
  • 多处使用laydate,上方限制下方时间范围

    多处使用laydate 上方限制下方时间范围 前言 需求是上方laydate开始与结束时间是一个范围 选定后 下方添加出的每一行数据中 都会调用laydate 但是范围不能超过上方 默认和上面时间一致 当点击上方切换时间时 下方时间同步更换
  • spark 统计线上日志ip分组统计

    线上日志格式如下 每次访问都会记录ip 标记红色部分 获取某一行看看怎么解析 2017 12 01 09 57 11 970 http nio 8082 exec 2 INFO com fullshare common aop Contro