Spark-Hdfs

Spark HadoopRDD读取HDFS文件 Spark HadoopRDD读取HDFS文件 更多资源 SPARK 源码分析技术分享(bilibilid视频汇总套装视频): https://www.bilibili.com/video/av37442139/ github: https://github.com/opensourceteams/spark-scala-maven csdn(汇总视频在线看): https://blog.csd... 阅读详情

 addr.dat

1.0.1.1|1.0.1.2|16777471|16777472|亚洲|中国|山东|遥墙||电信|350100|China|CN|119.306239|26.075302
1.0.1.1|1.0.1.2|16777473|16777474|亚洲|中国|山东|王楼||电信|350100|China|CN|119.306239|26.075302
1.0.1.1|1.0.1.2|16777475|16777476|亚洲|中国|山东|济南||电信|350100|China|CN|119.306239|26.075302
1.0.1.2|1.0.1.3|16777477|16777478|亚洲|中国|山东|潍坊||电信|350100|China|CN|119.306239|26.075302
1.0.1.3|1.0.1.4|16777479|16777480|亚洲|中国|山东|烟台||电信|350100|China|CN|119.306239|26.075302
1.0.1.4|1.0.1.5|16777481|16777482|亚洲|中国|山东|菏泽||电信|350100|China|CN|119.306239|26.075302
1.0.1.5|1.0.1.6|16777483|16777484|亚洲|中国|山东|聊城||电信|350100|China|CN|119.306239|26.075302
1.0.1.6|1.0.1.7|16777485|16777486|亚洲|中国|山东|威海||电信|350100|China|CN|119.306239|26.075302
1.0.1.7|1.0.1.8|16777487|16777488|亚洲|中国|山东|青岛||电信|350100|China|CN|119.306239|26.075302

ip.log

20090121000132124542000|1.0.1.1|www.jiayuan.com|/19245971|Mozilla/4.0 (compatible; MSIE6.0; Windows NT 5.1; SV1; TencentTraveler 4.0)|http://photo.jiayuan.com/
20090121000132124542000|1.0.1.2|www.jiayuan.com|/19245971|Mozilla/4.0 (compatible; MSIE6.0; Windows NT 5.1; SV1; TencentTraveler 4.0)|http://photo.jiayuan.com/
20090121000132124542000|1.0.1.3|www.jiayuan.com|/19245971|Mozilla/4.0 (compatible; MSIE6.0; Windows NT 5.1; SV1; TencentTraveler 4.0)|http://photo.jiayuan.com/
20090121000132124542000|1.0.1.4|www.jiayuan.com|/19245971|Mozilla/4.0 (compatible; MSIE6.0; Windows NT 5.1; SV1; TencentTraveler 4.0)|http://photo.jiayuan.com/
20090121000132124542000|1.0.1.5|www.jiayuan.com|/19245971|Mozilla/4.0 (compatible; MSIE6.0; Windows NT 5.1; SV1; TencentTraveler 4.0)|http://photo.jiayuan.com/
20090121000132124542000|1.0.1.6|www.jiayuan.com|/19245971|Mozilla/4.0 (compatible; MSIE6.0; Windows NT 5.1; SV1; TencentTraveler 4.0)|http://photo.jiayuan.com/
20090121000132124542000|1.0.1.7|www.jiayuan.com|/19245971|Mozilla/4.0 (compatible; MSIE6.0; Windows NT 5.1; SV1; TencentTraveler 4.0)|http://photo.jiayuan.com/
20090121000132124542000|1.0.1.7|www.jiayuan.com|/19245971|Mozilla/4.0 (compatible; MSIE6.0; Windows NT 5.1; SV1; TencentTraveler 4.0)|http://photo.jiayuan.com/
20090121000132124542000|1.0.1.8|www.jiayuan.com|/19245971|Mozilla/4.0 (compatible; MSIE6.0; Windows NT 5.1; SV1; TencentTraveler 4.0)|http://photo.jiayuan.com/

 

package com.ws.ip

import java.io.{BufferedReader, FileReader, InputStreamReader}
import java.net.URI
import java.util

import org.apache.commons.lang3.StringUtils
import org.apache.hadoop.conf.Configuration
import org.apache.hadoop.fs.{FSDataInputStream, FileSystem, Path}
import org.apache.hadoop.hdfs.client.HdfsAdmin

import scala.io.{BufferedSource, Source}

object IpDictUtil {
  val dict: util.ArrayList[String] = new util.ArrayList[String]()
  // 静态代码快
//  val source: BufferedSource = Source.fromFile("data/addr.dat")
//  val reader: BufferedReader = source.bufferedReader()
  var line: String = ""
  private val system: FileSystem = FileSystem.get(URI.create("hdfs://dream1:9000"), new Configuration())
  private val stream: FSDataInputStream = system.open(new Path("/test/addr.dat"))
  private val reader = new BufferedReader(new InputStreamReader(stream))
  do {
    line = reader.readLine()
    if (StringUtils.isNotBlank(line)) {
      dict.add(line)
    }
  } while (line != null)
  def ip2Long(ip: String): Long = {
    val fragments = ip.split("[.]")
    var ipNum = 0L
    for (i <- 0 until fragments.length) {
      ipNum = fragments(i).toLong | ipNum << 8L
    }
    ipNum
  }

  /**
   * 使用递归的二分查找
   * title:recursionBinarySearch
   *
   * @param key 待查找关键字
   * @return 找到的位置
   */
  def recursionBinarySearch(key: Long, low: Int = 0, high: Int = dict.size()): String = {
    val mid = (low + high) / 2
    if(low < high && low != mid){
      val fields = dict.get(mid).split("[|]")
      val b1 = fields(2).toLong
      val b2 = fields(3).toLong
      if (b1 <= key && key <= b2) {
        fields(7)
      } else {
        if (b2 < key) {
          recursionBinarySearch(key, mid, high)
        } else {
          recursionBinarySearch(key, low, mid)
        }
      }
    }else{
      "-1"
    }
  }

  def main(args: Array[String]): Unit = {
    println(recursionBinarySearch(16777485,0,6))
  }
}
package com.ws.ip

import com.ws.orderCount.OrderCountToHbase
import org.apache.spark.rdd.RDD
import org.apache.spark.{SparkConf, SparkContext}
import org.slf4j.{Logger, LoggerFactory}

object IpLogGetAddress {

  private val logger: Logger = LoggerFactory.getLogger(OrderCountToHbase.getClass)

  def main(args: Array[String]): Unit = {
    val conf: SparkConf = new SparkConf().setAppName("OrderCountJoinDict").setMaster("local[*]")
    val sc: SparkContext = new SparkContext(conf)
    //说明:数据用|分隔,第一个字段是时间、第二个是 IP 地址、第三个是域名、第四个是访问的地址
    val file: RDD[String] = sc.textFile("data/ip.log")
    val resulterr: RDD[(String, Int)] = file.mapPartitions(it => {
      it.map(line => {
        val order = try {
          val ip = line.split("[|]")(1)
          val l = IpDictUtil.ip2Long(ip)
          val str = IpDictUtil.recursionBinarySearch(l)
          (str, 1)
        } catch {
          case e: Exception =>
            e.printStackTrace()
            logger.debug("gson err: " + line)
            ("-1",1)
        }
        order
      })
    })
    val orders: RDD[(String, Int)] = resulterr.filter(x => !"-1".equalsIgnoreCase(x._1))
    val value: RDD[(String, Int)] = orders.reduceByKey(_ + _)
    println(value.collect().toBuffer)
  }
}

 

spark on hdfs spark处理hdfs上的文件简单的wordcount 进入spark/bin 目录 输入spark-shell  进入spark shell模式 阅读详情

相关推荐

scala 在 spark 中操作 hdfs

问题场景:在编写spark程序时,输出目录存在会造成spark任务失败。处理方法有2种,第一利用脚本方式,在主任务之上加层处理,第二,在spark任务中先处理掉目录。spark支持的可编程语言有Scala、Python、Java。其中Python无需编译打包,十分方便,但是貌似没有处理hdfs系统的Python接口,而Python的执行脚本语言是异步于主任务的,换言之,主任务与脚本任务的执行完成顺

小刀的专栏 7736

spark之用hadoopAPI读写文件

saveAsNewAPIHadoopFIle和saveAsHadoopFile的的区别 引用的outputFormat的类路径不同,saveAsNewAPIHadoopFIle用的OutputFormat是import org.apache.hadoop.mapreduce.lib.output.TextOutputFormat,saveAsHadoopFile用的是org.apache.had...

帆了个帆的专栏 1万+

spark+hdfs+hive

1 启动hdfs https://blog.youkuaiyun.com/ssllkkyyaa/article/details/86735817 2启动hive https://blog.youkuaiyun.com/ssllkkyyaa/article/details/86527365 s200启动hive $HIVE_HOME/bin/hive 3启动spark https://blog.csdn.n...

lucky的专栏 2651

Spark1.4从HDFS读取文件运行Java语言WordCounts并将结果保存至HDFS

本次实验相关信息如下: 操作系统:Ubuntu 14 Hadoop版本:2.4.0 Spark版本:1.4.0 运行前提是Hadoop与Spark均已正确安装配置 2、在Linux中生成一个文件test.txt,保存在/home/testjars/目录下 3、通过hadoop fs -put命令上传 hadoop fs -put /home...

weixin_30385925的博客 358

Spark从hdfs下读取txt文件并保存到hdfs目录下

多说无益,先参考代码: object File { //文件读取 def main(args: Array[String]): Unit = { val conf = new SparkConf().setAppName(“File”).setMaster(“spark://IP地址:7077”) val sc = new SparkContext(conf); // 读取hdfs数据 val t...

weixin_43127762的博客 3522

Spark Streaming处理kafka的数据落地HDFS

Spark Streaming处理kafka的数据落地HDFS 背景 生产上项目的数据从上游kafka topic下发过来,经过spark Streaming简单清洗处理后,下发到下一个kafka topic中,目前需要将清洗处理好的数据,按小时分区落地到HDFS上。 要求,如果当前落地HDFS的程序断了,能按照消息下发kafka topic 的时间进行分区。 实现思路 1:在下发的kafka t...

Rachel的博客 4285

spark处理HDFS文件

【自己的学习尝试,无实际帮助作用。】 此部分内容几乎完全参考http://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-common/SingleCluster.html

yangyangrenren的专栏 1万+

spark读取hdfs的权限异常

hdfs本身是没有身份认证的,但是为了防止用户误操作,它也有类似linux的文件权限限制 我在IDE里开发程序连接hdfs因为本机名和服务器的文件所属用户名不同导致没有读取权限,错误异常堆栈如下:   这样有两种解决方法,一是更改文件权限或所属用户,二是更改本地用户名。 我用的是第二种: 可以在程序中定义sparksession之前。加入这么一段代码 System.setProper...

piduzi的博客 3744

Spark 读取hdfs上的文件 错误:Caused by: java.io.IOException: Filesystem closed的处理

解决办法: 第一种方法: 源代码:FileSystem  fs = FileSystem.get(URI.create(hdfsFilePath), config); 改为: FileSystem  fs = FileSystem.newInstance(URI.create(hdfsFilePath), config); 第二种方法: 在hdfs core-site.xml里把fs

Make progress step by step everyday..... 4593

手把手教你:基于STM32H7自制飞控,如何从零开始移植PX4固件(附避坑指南)

本文详细介绍了如何基于STM32H7自制飞控板并移植PX4固件的完整流程,包括硬件设计、开发环境搭建、关键配置文件移植、驱动开发与适配等关键步骤。特别针对PX4-AutoPilot的移植过程提供了实用技巧和避坑指南,帮助开发者高效完成飞控系统开发。

weixin_30271335的博客 143

Brainstorm简单分析近红外数据(fNIRS)(一)

Brainstorm分析fNIRS数据

weixin_43604817的博客 1352

【Spark】Spark Stream 读取 HDFS 数据

从HDFS读取文本数据作为DStream 准备数据,本地目录/opt/datas/sparkDatas 下有文件wc.txt 内容如下: hadoop spark streaming spark hdfs streaming spark 启动hadoop的namenode 和 datanode sbin/hadoop-daemon.sh start namenode sbin/ha...

晚风中的自由 1341

学习STM32的流体水位传感器

引言: 流体水位传感器是一种常用于测量液体水位的设备,广泛应用于水位监测、液位控制和流量计量等领域。STM32是一款功能强大的单片机,具有丰富的外设和灵活的编程能力,非常适合用于流体水位传感器的开发。本文将介绍如何使用STM32开发板与流体水位传感器进行连接和通信,并通过编写代码实现水位的测量和显示。五、总结: 通过以上的代码示例,我们可以实现使用STM32开发板与流体水位传感器进行连接和通信的功能。三、编写代码: 以下是使用STM32CubeIDE编写的示例代码,实现了读取流体水位传感器的功能。

xiaoalla的博客 740

【Spark】Spark读取本地与hdfs文件

https://zhuanlan.zhihu.com/p/26506724

littlemichelle 1万+

PLSQL Developer新手必看:如何避免安装过程中的常见坑

本文为PL/SQL Developer新手提供了详尽的安装与配置避坑指南。从版本选择、注册码使用、汉化包安装到Oracle客户端连接配置,逐一解析常见问题并提供解决方案,帮助开发者快速搭建稳定的PL/SQL开发环境,顺利开启Oracle数据库编程工作。

g9h0i1的博客 654

Unity嵌套ScrollView滑动冲突解决方案:ExecuteEvents.Execute事件透传

在Unity UGUI中,竖向与横向ScrollView嵌套时出现滑动失效,本质是EventSystem事件分发机制的拦截限制。其原理在于PointerDown被外层捕获后,后续PointerMove默认不向下透传;ExecuteEvents.Execute提供了一条绕过常规冒泡流程的官方事件旁路,支持低延迟、方向自适应的精准透传。该技术具备高兼容性与零侵入特性,广泛应用于电商商品页、内容流卡片组、多级导航等需‘列表中嵌套轮播/标签’的真实场景,是解决UGUI嵌套滚动问题的核心工程实践方案。

weixin_33164198的博客 634

spark写入hdfs

spark streaming写入hdfs 场景: 需要将数据写入hdfs,打包成一个gz包, 每5分钟执行一次spark任务。 最终的结果如下: 5分钟跑一次spark, 将数据写入hdfs, 会产生很多的小文件。 spark代码 val hadoopConf: Configuration = rdd.context.hadoopConfiguration hadoopConf.set("ma...

u012447842的博客 1万+

告别玄学:手把手配置EtherCAT从站PDI接口与同步采样(含Sync/Latch信号实战)

本文详细解析了EtherCAT从站PDI接口配置与同步采样技术,涵盖微处理器通信与直接驱动IO模式选择、同步采样四大触发模式(SOF、Latch_in、Sync0/Sync1)及输出触发实战。通过伺服驱动器实例,帮助工程师突破配置难点,实现高精度同步控制,提升工业自动化系统性能。

weixin_30667649的博客 484

Spark读取和存储HDFS上的数据

本篇来介绍一下通过Spark来读取和HDFS上的数据,主要包含四方面的内容:将RDD写入HDFS、读取HDFS上的文件、将HDFS上的文件添加到Driver、判断HDFS上文件路径是否存...

abcdefg90876的博客 1万+

手把手教你学SOME/IP「3.2.1.发布/订阅行为」

本文详细介绍了SOME/IP协议中的服务发现机制,重点解析了发布/订阅行为的流程。主要内容包括:1)服务发布与Method通信流程,涵盖find/offer报文交互、TTL保活机制及异常处理;2)服务订阅与Event通信流程,包括subscribe/ack报文交互和组播延迟机制;3)特殊场景如快速发送、半周期回复、重置订阅等机制。通过邮局订阅报纸的类比,帮助理解服务发现的核心原理,并强调流程图对于问题定位的重要性。文章为SOME/IP协议的工程实现提供了实用指导。

nihaoljq2010的博客 1222

【毕设实战】飞行器目标识别系统:基于YOLOv5的智能检测全流程教程,助你毕设脱颖而出

本文介绍了一个基于YOLOv5的飞行器目标识别系统的开发过程。系统包含数据采集与标注、模型训练、实时检测和UI界面四大模块。文章详细讲解了从环境搭建、数据标注到YOLOv5模型训练的全流程,包括如何划分数据集、配置参数和测试模型性能。同时提供了实时检测代码示例和UI界面开发思路,使读者能够快速实现一个完整的智能检测系统。该系统可应用于军事侦察、民用巡检等领域,具有较高的实用价值,适合作为计算机视觉相关的毕业设计项目。

FJN110的博客 108

【Spark学习笔记】Spark访问hdfs

本篇来介绍一下通过Spark来读取和HDFS上的数据,主要包含四方面的内容:将RDD写入HDFS、读取HDFS上的文件、将HDFS上的文件添加到Driver、判断HDFS上文件路径是否存在。 本文的代码均在本地测试通过,实用的环境时MAC上安装的Spark本地环境,详细环境配置教程参考:https://www.jianshu.com/p/5ac3e97c409e 1、启动Hadoop 首先启动咱们...

不可能打工的博客 3855

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

spark集群从HDFS中读取数据并计算

一、             对于安装有spark的集群的节点要做好时间同步问题,因为节点的心跳机制需要系统时间。 解决办法一: 通过securecrt同时向多个tab窗口发送相同的时间调整命令 a.选择菜单栏View -->ChatWindows  对号,此时所有服务器连接下方应该有个空白的部分 b.在空白的部分(Chat Windows)右键鼠标, 选上Send Chatto All

vinsuan93的专栏 2万+

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

spark读写hdfs

package sparkUtil import org.apache.spark.SparkConf import org.apache.spark.sql.{SaveMode, SparkSession} object SparkHDFS { def main(args: Array[String]): Unit = { val sparkConf = new SparkCo...

学习进步 524

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

Spark操作hdfs

Windows平台spark连接hadoop集群,并读取hdfs数据 开发工具:idea 数据hdfs://hdfs://192.168.10:9000/word/ 在idea运行地方,选择RUN-->Edit-->program arguments:添加hdfs目录地址,即可运行。 此例子适合调试使用,实际生产环境中最终将程序打包,部署到服务器中通过spark命令进行运行。 pac

sinat_32651363的博客 2684
上一篇: sparkToHbase
下一篇: scala复习
JNWsong
博客等级 码龄9年 287粉丝 204原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值