目录索引

  • 使用Hadoop MapReduce进行大数据分析
    • 关于Hadoop
    • 数据,数据无处不在!
    • 追踪地震
    • 用opencsv解析数据
    • 转换日期格式
    • Hadoop的地图和缩小
    • 定义Hadoop Job
    • 编写另一个Mapper
    • 结论

使用Hadoop MapReduce进行大数据分析

Google在2001年推出图片搜索功能时,拥有2.5亿张索引图片。 不到十年后,这家搜索巨头就索引了超过100亿张图片。 每分钟有35个小时的内容上传到YouTube。 据说Twitter平均每天处理5500万条推文。 今年早些时候,其搜索功能每天记录6亿个查询。 这就是我们谈论大数据时的意思。

关于本系列
自从Java技术首次出现以来,Java开发环境发生了根本变化。 得益于成熟的开源框架和可靠的租用部署基础架构,现在可以快速,廉价地组装,测试,运行和维护Java应用程序。 在本系列中 ,Andrew Glover探索了使这种新的Java开发范例成为可能的技术和工具的范围。

如此大规模的数据曾经仅限于大型公司,大学和政府,这些实体能够购买非常昂贵的超级计算机,并需要员工来维持运行。 如今,随着存储成本的降低和处理能力的商品化,较小的公司和一些个人已经开始存储和挖掘相同的数据,从而引发了应用创新浪潮。

大数据革命的使能技术之一是MapReduce,这是Google开发的用于处理大规模分布式数据集的编程模型和实现。 在本文中,我介绍了Apache的开源MapReduce实现Hadoop,有人将其称为云计算的杀手级应用。

关于Hadoop

Apache的Hadoop框架本质上是一种用于分析大型数据集的机制,不一定需要将其存储在数据存储区中。 Hadoop抽象了MapReduce的海量数据分析引擎,使开发人员更易于使用。 Hadoop可以扩展到无数节点,并且可以处理与数据排序相关的所有活动和协调。

Hadoop的众多功能和配置使其成为了一个非常有用且功能强大的框架。 雅虎! 无数其他组织发现它是一种有效的机制,可以分析大量的位和字节。 Hadoop也很容易在单个节点上工作。 您只需要一些数据即可分析和熟悉Java代码(包括泛型)。 Hadoop还可以与Ruby,Python和C ++一起使用。

有关MapReduce的更多信息
如果您是本系列的读者,那么您已经几次看到了MapReduce的实际应用。 在“ 使用CouchDB和Groovy的RESTClient进行REST结合 ”中,我演示了CouchDB如何利用MapReduce获取视图,然后在“ MongoDB:带有RDBMS移动的NoSQL数据存储 ”中再次使用了它,它是处理MongoDB文档的机制。

作为用于处理海量数据集的概念性框架,MapReduce经过了高度优化,可使用大量计算机来解决分布式问题。 顾名思义,该框架包含两个功能。 map功能旨在接收大数据输入并将其分成较小的部分,然后将其移交给可以对其执行某些操作的其他进程。 reduce功能可提取由map收集的各个答案,并将其呈现为最终输出。

在Hadoop中,您可以通过扩展Hadoop自己的基类来定义map并reduce实现。 这些实现由指定它们的配置以及输入和输出格式捆绑在一起。 Hadoop非常适合处理包含结构化数据的大文件。 Hadoop的一个特别方便的方面是它可以处理输入文件的原始解析,因此您一次只能处理一行。 因此,定义map功能实际上仅是确定要从输入的文本行中获取的内容的问题。

数据,数据无处不在!

美国政府产生了大量数据,其中许多数据对于普通公民来说是非常有趣的。 各种政府机构免费分发与美国经济健康状况和不断变化的社会人口状况有关的数据。 美国地质调查局(USGS)发布国际地震数据。

世界各地每天都发生多次小地震。 它们中的大多数都发生在地壳深处,因此没有人能感觉到它们,但听众仍在记录它们。 USGS以每周CSV(或逗号分隔值)文件的形式发布其地震数据。

平均每周文件不是很大-大约只有100KB左右。 尽管如此,它将作为学习Hadoop的基础。 记住这一点,虽然,Hadoop是能够处理更大的数据集。

追踪地震

我最近从USGS网站下载的CSV文件包含大约920行,如清单1所示:

清单1. USGS地震数据文件的行数

$> wc -l eqs7day-M1.txt 920 eqs7day-M1.txt

CVS文件的内容类似于清单2中的内容(即前两行):

清单2. CVS文件的前两行

$> head -n 2 eqs7day-M1.txt 
Src,Eqid,Version,Datetime,Lat,Lon,Magnitude,Depth,NST,Region
ci,14896484,2,"Sunday, December 12, 2010 23:23:20 UTC",33.3040,-116.4130,1.0,11.70,22,"Southern California"

这就是我所说的信息丰富的文件,尤其是当您考虑到它总共920行时。 但是,我只想知道此文件报告的一周中的每一天发生了多少次地震。 然后,我想知道在那七天内哪个地区地震最多。

我的第一个想法是,我可以使用简单的grep命令来搜索每天的地震次数。 查看该文件,我看到它的数据从12月12日开始。所以我对该字符串进行了grep -c ,结果如清单3所示:

清单3. 12月12日发生了几次地震

$> grep -c 'December 12' eqs7day-M1.txt 
98

安装Hadoop
如果您以前尚未安装Hadoop,请立即进行安装。 首先, 下载最新的二进制文件 ,将其解压缩,然后在路径上设置Hadoop的bin目录。 这样做使您可以直接执行hadoop命令。 使用Hadoop要求您执行其hadoop命令,而不是像看到的那样调用java命令。 您可以将选项传递给hadoop命令,例如可以在其中找到Java二进制文件的位置(例如,表示map并reduce实现)。 就我而言,我创建了一个jar文件,并告诉Hadoop我想在jar中运行哪些作业。 我还将运行我的应用程序所需的所有其他二进制文件添加到Hadoop的类路径中。

现在我知道在12月12日有98项记录,即98项记录的地震。 我可以顺其自然,为12月11日,10日做grep ,依此类推。 但这对我来说听起来很乏味。 更糟糕的是,为了实现这一目标,我需要知道文件中的日期。 我并不十分在乎,在某些情况下,我可能无法访问该信息。 真的,我只想知道任何七天之内每一天的数字,而我可以使用Hadoop轻松获得该信息。

Hadoop只需要少量信息即可回答我的第一个和第二个问题:即要处理的输入以及如何处理map和reduce 。 我还必须提供一份将所有内容联系在一起的工作。 但是在开始编写该代码之前,我将花几分钟时间确保CSV数据一切正常。

用opencsv解析数据

除了地震CSV文件的第一行(即标题)之外,每行都是一系列数据值,以逗号分隔。 我主要对三个数据感兴趣:每次地震的日期,位置和震级。 为了获得这些数据,我将使用一个名为opencsv的漂亮开放源代码库,该库有助于解析CSV文件。

作为测试优先的人,我将从编写一个快速的JUnit测试开始,以验证是否可以从从CSV文件获得的示例行中获取所需的信息,如清单4所示:

清单4.解析CSV行

public class CSVProcessingTest {private final String LINE = "ci,14897012,2,\"Monday, December 13, 2010 " +"14:10:32 UTC\",33.0290,-115." +"5388,1.9,15.70,41,\"Southern California\"";@Testpublic void testReadingOneLine() throws Exception {String[] lines = new CSVParser().parseLine(LINE);assertEquals("should be Monday, December 13, 2010 14:10:32 UTC","Monday, December 13, 2010 14:10:32 UTC", lines[3]);assertEquals("should be Southern California","Southern California", lines[9]);assertEquals("should be 1.9", "1.9", lines[6]);}
}

如清单4所示 , opencsv使使用逗号分隔的值变得非常容易。 解析器仅返回String的数组,因此可以获取位置值(只需回想一下Java语言中的数组和集合访问是从零开始的)。

转换日期格式

使用MapReduce时, map功能的工作是从一些值中选取要使用的值以及一些键。 也就是说, map主要用于并返回两个元素:键和值。 回到我以前的要求,我想首先找出每天发生多少地震。 因此,当我分析地震文件时,我将发出两个值:我的密钥将是日期,而该值将是一个计数器。 然后,我的reduce函数将对计数器求和(它们只是值为1的整数),从而为我提供了目标地震文件中日期发生的次数。

因为我对24小时感兴趣,所以我必须在每个文件中删除日期的时间方面。 在清单5中,我编写了一个快速测试,验证了如何将传入文件中的特定日期格式转换为更通用的24小时日期:

清单5.日期格式转换

@Test
public void testParsingDate() throws Exception {String datest = "Monday, December 13, 2010 14:10:32 UTC";SimpleDateFormat formatter = new SimpleDateFormat("EEEEE, MMMMM dd, yyyy HH:mm:ss Z");Date dt = formatter.parse(datest);formatter.applyPattern("dd-MM-yyyy");String dtstr = formatter.format(dt);assertEquals("should be 13-12-2010", "13-12-2010", dtstr);
}

在清单5中 ,我使用了SimpleDateFormat Java对象将日期String (采用UTC 2010年12月13日星期一14:10:32 UTC的CSV文件格式)格式化为更通用的13-12-2010。

Hadoop的地图和缩小

现在,我已经确定了如何处理CSV文件及其日期格式,现在可以开始实现map并reduce Hadoop中的功能了。 此过程需要了解Java泛型,因为Hadoop倾向于显式类型安全。

在使用Hadoop定义地图实现时,我仅扩展了Hadoop的Mapper类。 然后,我可以使用泛型为传出键和值指定显式类型。 type子句还描述了传入的键和值,在读取文件的情况下,它们分别是字节数和文本行。

我的EarthQuakesPerDateMapper类扩展了Hadoop的Mapper对象。 它显式地将输出键描述为Text对象,将其值描述为IntWritable ,它是Hadoop特定的类,本质上是一个整数。 还要注意,class子句中的前两种类型是LongWritable和Text ,它们分别是字节数和文本行。

由于类定义中的type子句,我在map方法中使用的参数类型以及该方法的输出都在context.write子句中设置。 如果尝试指定其他内容,则会遇到编译器问题,否则Hadoop将出错并显示一条描述类型不匹配的消息。

清单6.映射实现

public class EarthQuakesPerDateMapper extends Mapper<LongWritable, Text, Text, IntWritable> {@Overrideprotected void map(LongWritable key, Text value, Context context) throws IOException,InterruptedException {if (key.get() > 0) {try {CSVParser parser = new CSVParser();String[] lines = parser.parseLine(value.toString());SimpleDateFormat formatter = new SimpleDateFormat("EEEEE, MMMMM dd, yyyy HH:mm:ss Z");Date dt = formatter.parse(lines[3]);formatter.applyPattern("dd-MM-yyyy");String dtstr = formatter.format(dt);context.write(new Text(dtstr), new IntWritable(1));} catch (ParseException e) {}}}
}

清单6中的 map实现很简单:Hadoop基本上针对在输入文件中找到的每一行文本调用此类。 为了避免尝试处理CSV的标头,我首先检查字节数( key对象)是否不为零。 然后,执行清单4和5中已经看到的操作:我获取传入的日期,对其进行转换,然后将其设置为传出密钥。 我还提供了一个计数:1.也就是说,我为每个日期编写了一个计数器,当调用reduce实现时,它将获得一个键和一组值。 在这种情况下,键将是日期及其值,如清单7所示:

清单7.映射输出和reduce输入的逻辑视图

"13-12-2010":[1,1,1,1,1,1,1,1]
"14-12-2010":[1,1,1,1,1,1]
"15-12-2010":[1,1,1,1,1,1,1,1,1]

注意, context.write(new Text(dtstr), new IntWritable(1)) (在清单6中 )构建了清单7中所示的逻辑集合。 您可能已经知道, context是Hadoop数据结构,其中包含各种信息。 该context传递给reduce实现,该实现将采用这1个值并将其求和。 因此, reduce实现从逻辑上创建了清单8中所示的数据结构:

清单8. reduce输出的视图

"13-12-2010":8
"14-12-2010":6
"15-12-2010":9

我的reduce实现如清单9所示。 与Hadoop的Mapper , Reducer被参数化:前两个参数是传入的键类型( Text )和值类型( IntWritable ),后两个参数是输出类型:键和值,在这种情况下是相同的。

清单9. reduce实现

public class EarthQuakesPerDateReducer extends Reducer<Text, IntWritable, Text, IntWritable> {@Overrideprotected void reduce(Text key, Iterable<IntWritable> values, Context context)throws IOException, InterruptedException {int count = 0;for (IntWritable value : values) {count++;}context.write(key, new IntWritable(count));}
}

我的reduce实现非常简单。 正如我在清单7中指出的那样,传入值实际上是值的集合,在这种情况下,它意味着1个值的集合。 我要做的就是将它们加起来,然后写出代表日期和计数的新键值对。 然后,我的reduce代码基本上吐出了清单8中看到的行。 逻辑流程如下所示:

"13-12-2010":[1,1,1,1,1,1,1,1] -> "13-12-2010":8

当然,此清单的抽象形式是map -> reduce 。

定义Hadoop Job

现在,我已经编码了map并reduce实现,剩下要做的就是将所有内容链接到Hadoop Job 。 定义Job很简单:您提供输入和输出, map和reduce实现(如清单6和清单9所示 )以及输出类型。 在这种情况下,我的输出类型与我的reduce实现所使用的输出类型相同。

清单10.一个工作关系映射并减少

public class EarthQuakesPerDayJob {public static void main(String[] args) throws Throwable {Job job = new Job();job.setJarByClass(EarthQuakesPerDayJob.class);FileInputFormat.addInputPath(job, new Path(args[0]));FileOutputFormat.setOutputPath(job, new Path(args[1]));job.setMapperClass(EarthQuakesPerDateMapper.class);job.setReducerClass(EarthQuakesPerDateReducer.class);job.setOutputKeyClass(Text.class);job.setOutputValueClass(IntWritable.class);System.exit(job.waitForCompletion(true) ? 0 : 1);}
}

在清单10中 ,我将所有内容与一个采用两个参数的main方法绑定在一起:地震CSV文件所在的目录,以及应写入结果报告的目录(Hadoop更喜欢创建此目录)。

为了执行这个小框架,我需要将这些类加起来。 我还需要告诉Hadoop在哪里可以找到opencsv二进制文件。 然后,我可以通过命令行执行Hadoop,如清单11所示:

清单11.执行Hadoop

$> export HADOOP_CLASSPATH=lib/opencsv-2.2.jar
$> hadoop jar target/quake.jar com.b50.hadoop.quake.EarthQuakesPerDayJob~/temp/mreduce/in/ ~/temp/mreduce/out

运行此代码,当Hadoop开始工作时,您会在屏幕上看到一堆文本。 请记住,与使用Hadoop处理的大型犬相比,我正在使用的CSV文件只是一只小狗。 根据您的处理能力,Hadoop应该在几秒钟内完成。

完成后,您几乎可以使用任何编辑器查看输出文件的内容。 另一个选择是直接使用hadoop命令,如清单12所示:

清单12.读取Hadoop的输出

$> hadoop dfs -cat part-r-00000 
05-12-2010      43
06-12-2010      143
07-12-2010      112
08-12-2010      136
09-12-2010      178
10-12-2010      114
11-12-2010      114
12-12-2010      79

如果您像我一样, 清单12中的第一件事就是每天的地震数量之多-仅12月9日就是178次! 希望您还会注意到Hadoop确实做了我想要做的事情:整齐地列出了我范围内每个日期的地震发生次数。

编写另一个Mapper

接下来,我想找出发生地震的地点,并以某种方式快速测量哪个位置记录了我的日期范围内最多的地震。 嗯,正如您可能已经猜到的那样,Hadoop使此操作变得容易。 在这种情况下,关键不是日期,而是位置。 因此,我编写了一个新的Mapper类。

清单13.一个新的地图实现

public class EarthQuakeLocationMapper extends Mapper<LongWritable, Text, Text,IntWritable> {@Overrideprotected void map(LongWritable key, Text value, Context context) throws IOException,InterruptedException {if (key.get() > 0) {String[] lines = new CSVParser().parseLine(value.toString());context.write(new Text(lines[9]), new IntWritable(1));}}
}

在清单13中 ,我没有获取日期并进行转换,而是获取位置,该位置是CSV数组中的最后一个位置项。

除了要列出大量地点和地点之外,我还希望将结果限制在任何在7天之内发生10次以上地震的地点。

清单14.更多地震发生在哪里?

public class EarthQuakeLocationReducer extends Reducer<Text, IntWritable, Text,IntWritable> {@Overrideprotected void reduce(Text key, Iterable<IntWritable> values, Context context)throws IOException, InterruptedException {int count = 0;for (IntWritable value : values) {count++;}if (count >= 10) {context.write(key, new IntWritable(count));}}
}

清单14中的代码与清单9十分相似。 但是,在这种情况下,我将输出限制为10个或更多。 接下来,我可以将map绑定在一起,并通过另一个Job实现进行reduce ,添加内容,然后像往常一样执行Hadoop以获取新答案。

发出hadoop dfs命令将显示我请求的新值:

清单15.地震地点

$> hadoop dfs -cat part-r-00000 
Andreanof Islands, Aleutian Islands, Alaska     24
Arkansas        40
Baja California, Mexico 101
Central Alaska  74
Central California      68
Greater Los Angeles area, California    16
Island of Hawaii, Hawaii        16
Kenai Peninsula, Alaska 11
Nevada  15
Northern California     114
San Francisco Bay area, California      21
Southern Alaska 97
Southern California     115
Utah    19
western Montana 11

清单15的要点是什么? 首先,从墨西哥到阿拉斯加的北美西海岸是个摇摇欲坠的地方。 其次,阿肯色州显然位于断层线附近,这是我没有意识到的。 最后,如果您居住在加利福尼亚北部或南部(许多软件开发人员都这样做),那么周围的地面大约每13分钟晃动一次。

结论

使用Hadoop分析数据既简单又高效,我什至还没有完全了解数据分析所提供的内容。 Hadoop实际上是设计为以分布式方式运行的,它可以处理运行map和reduce的各个节点的协调。 举例来说,在本文中,我在一个带有单个微弱文件的JVM中运行了Hadoop。

Hadoop本身就是一个了不起的工具,它周围还有一个完整的,不断发展的生态系统,从子项目到基于云的Hadoop服务。 Hadoop生态系统展示了该项目背后的丰富社区。 从该社区涌现出的许多工具证明了大数据分析作为全球业务活动的可行性。 借助Hadoop,分布式数据挖掘和分析可用于各种软件创新者和企业家,包括但不限于像Google和Yahoo!这样的大手笔。

转载自:https://blog.csdn.net/cuxiong8996/article/details/107152959

查看全文
如若内容造成侵权/违法违规/事实不符,请联系编程学习网邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

相关文章

  1. 国标GB28181协议客户端EasyGBS视频平台Windows启动服务后,无法查看日志怎么办?

    很久之前TSINGSEE青犀视频就强调过在流媒体系统开发中日志的重要性,遇到一些报错,日志可以最直观的反馈(EasyCVS如何配置SpringBoot框架日志库)。目前有客户反馈在安装部署EasyGBS视频平台的时候,发现启动服务后,服务窗口中无法继续进行打印日志信息,并且通过浏览器访问…...

    2024/4/30 22:19:03
  2. 一文搞定移动语义和完美转发

    一文搞定移动语义和完美转发 浅拷贝和深拷贝 简单的区分: 浅拷贝:按字节拷贝,如果是指针变量则直接对指针地址进行拷贝 深拷贝:对内容进行拷贝,如果有指针变量则另外申请地址拷贝所指内容 写c++类时,如果类中有指针成员的话,通常我们都会格外注意,要注意拷贝构造函数…...

    2024/5/1 1:28:47
  3. GUI编程核心技术AWT——键盘监听

    GUI编程核心技术AWT——键盘监听 package com.wei.lesson06;import java.awt.*; import java.awt.event.KeyAdapter; import java.awt.event.KeyEvent;public class TestKeyListener {public static void main(String[] args) {new keyFrame();} } class keyFrame extends Fram…...

    2024/4/23 17:06:30
  4. Git设置代理,带用户名与密码

    公司软件需要设置代理才能连接外网。蓝色部分:用户名;绿色部分:密码;紫色部分:代理IP与端口,如:192.10.10.10:8080测试端口语句:参考链接及内容1:https://www.jianshu.com/p/b3154ae86fe2Git的代理设置也非常简单,一句话就搞定了:git config --global http.proxy ht…...

    2024/4/30 17:47:50
  5. Java是什么?Java能干什么工作?

    Java是一种为多个平台生成软件的编程语言。由Sun Microsystems的前计算机科学家James A. Gosling在20世纪90年代中期开发的。编译的代码可在大多数操作系统上运行。 Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念。 Ja…...

    2024/5/1 1:10:28
  6. winscp,WinSCP软件有哪些用途

    WinSCP是一个Windows环境下使用SSH的开源图形化SFTP客户端。同时支持SCP协议。它的主要功能就是在本地与远程计算机间安全的复制文件。WinSCP可以执行所有基本的文件操作,例如下载和上传。使用 WinSCP 可以连接到一台提供 SFTP (SSH File Transfer Protocol)或 SCP (Secure Co…...

    2024/4/30 19:09:32
  7. mac 10.15.6 Catalina 新系统后vmdk硬盘收缩方法

    随着VMware虚拟机使用时间的增长,其所占用的空间也越来越大,怎么给VMware虚拟机占用的空间进行瘦身。尤其在版本升级后空间消耗会奔溃!!! 方法一:macOS命令行清理 在mac下打开终端窗口,输入命令: cat /dev/zero > wipefile; rm wipefile当出现: cat: stdout: No sp…...

    2024/4/30 18:47:52
  8. Oracle VM VirtualBox 启动失败

    virtualbox 报错如下: 错误信息: VT-x is not available (VERR_VMX_NO_VMX). 返回 代码: E_FAIL (0x80004005) 组件: ConsoleWrap 界面: IConsole {872da645-4a9b-1727-bee2-5585105b9eed} 解决方式:1、有可能是因为win10开启了hyper-v,关闭即可、 2、bcdedit /set hypervi…...

    2024/4/24 2:59:33
  9. DPDK PMD( Poll Mode Driver)轮询模式驱动程序

    DPDK PMD( Poll Mode Driver)轮询模式驱动程序目录Mellanox PMDs轮询模式驱动程序要求和假设设计原则逻辑核心,内存和NIC队列关系设备标识,所有权和配置设备识别港口所有权设备配置即时配置发送队列的配置按需免费发送mbuf硬件卸载轮询模式驱动程序API共性通用数据包表示以…...

    2024/4/30 20:48:12
  10. 路由器分配ip理接

    1.如果两台设备都设置成自动获取IP,当接上交换机后交换机就会自动给两台设备分配IP,一般情况下会分配相同网段的IP,所以用ifconfig时候看不到固定的IP。2.两台设备进行udp通讯,一般会把外网IP设置成静态,这样在没有交换机的时候可以进行内部通讯。3.两台设备如果设置成自动…...

    2024/4/30 19:05:22
  11. NCCL填坑

    NCCL填坑简介篇章一篇章二篇章三篇章四篇章五篇章六 简介 简单介绍一下,我这新鲜热乎的坑。真的是太少见的了。本人在做pytorch分布式训练,晚上找了个小demo准备先让服务器热一下身。 顺手将共享文件传输改成了tcp传输dist.init_process_group(init_method=file:///home/****…...

    2024/5/1 1:13:45
  12. 势不可挡的DeFi浪潮与去中心化开源协议Hydra Network

    根据链上数据资源网站DeFi Pulse的统计数据,去中心化金融(DeFi)协议锁定的美元总值近日突破了60亿美元大关。目前,这一数字停留在63.2亿美元,相比三个月前刚突破的10亿美元大关,增长了近6倍。2020年上半年,DeFi项目在资产沉淀、价格升值和技术发展层面屡创新高,由去中心…...

    2024/4/30 21:51:55
  13. 大数据Hadoop学习之——网页排名PageRank算法

    一、算法说明PageRank即网页排名,也称佩奇排名(社会)。一些基本概念:1、网页入链:即投票,网页中对其他网页的超链接作为其他网页的入链,相当于对其他网页投一票;2、入链数量:如果一个网页获得其他网页的入链数量(投票)越多,说明该网页越重要;3、入链质量:即投票权…...

    2024/4/30 19:30:12
  14. K8S(06)web管理方式-dashboard

    K8S的web管理方式-dashboard [TOC] dashboard是k8s的可视化管理平台,是三种管理k8s集群方法之一 1 部署dashboard 1.1 获取dashboard镜像 获取镜像和创建资源配置清单的操作,还是老规矩:7.200上操作 1.1.1 获取1.8.3版本的dsashboard docker pull k8scn/kubernetes-dashboard-…...

    2024/4/30 19:11:07
  15. springboot出现MaxUploadSizeExceededException 异常

    写springboot项目上传图片遇到MaxUploadSizeExceededException 异常,找到一篇文章完美解决 Spring Boot 默认上传文件大小限制是 1MB,默认单次请求大小是 10MB,超出大小会跑出 MaxUploadSizeExceededException 异常。 问题来了,当文件超过 1M 和超过 10M 时异常是有区别的,…...

    2024/4/30 20:38:59
  16. 容器方式部署k8s集群

    容器方式部署k8s集群 初始化系统环境 k8s1 192.168.138.162 k8s2 192.168.138.163 k8s3 192.168.138.164 设置系统主机名以及 Host 文件的相互解析 分别给三台主机设置主机名为:k8s1、k8s2、k8s3 添加三台主机hosts相互解析vim /etc/hosts 192.168.138.162 k8s1 192.168.138.1…...

    2024/4/30 17:46:00
  17. 8.21 BTC早间行情分析

    行情回顾:比特币行情至昨日在11700-11800区域震荡之后,晚间出现小幅上行,价格开始逐渐稳定在11800上方。日内比特币上行力度不强,高点触及11880位置后开始承压回调,但是并未跌破11800一线,行情进入高位震荡阶段。比特币早间详细行情分析:日线级别的图上看,昨日K线是一个…...

    2024/4/30 21:24:58
  18. 2020焊工(初级)模拟考试及焊工(初级)考试软件

    题库来源:安全生产模拟考试一点通公众号小程序2020焊工(初级)模拟考试及焊工(初级)考试软件,包含焊工(初级)模拟考试答案解析及焊工(初级)考试软件练习。由安全生产模拟考试一点通公众号结合国家焊工(初级)考试最新大纲及焊工(初级)考试真题出具,有助于焊工(初…...

    2024/4/30 17:02:35
  19. 娃哈哈开起奶茶店,“情怀杯”能否撑起半边天?

    娃哈哈在转型路走得艰辛,但从未放弃。 无论是王力宏代言的娃哈哈纯净水,80、90后的童年记忆AD钙奶,还是风靡一时的营养快线,都是娃哈哈打造出的明星产品。甚至当年推出的非常可乐都能在百事和可口可乐手上抢夺13%的市场份额。可见当年的娃哈哈势头正猛。 娃哈哈经历辉煌与落…...

    2024/4/30 19:55:58
  20. 划重点丨国内首个基于产业攻防实战的《零信任实战白皮书》发布

    随着云计算、大数据、物联网、移动互联网等技术的兴起,企业的业务架构和网络环境随之发生了重大的变化,高级持续性威胁攻击、内网安全事故频发,传统的网络安全架构已无法满足企业的数字化转型需求。在此背景下,“零信任”安全理念的作用和价值得到了进一步的认可和体现。为…...

    2024/4/24 4:11:44

最新文章

  1. .NET C# ORM 瀚高数据库

    SqlSugar ORM SqlSugar 是一款 老牌 .NET开源ORM框架&#xff0c;由果糖大数据科技团队维护和更新 &#xff0c;开箱即用最易上手的ORM 优点 &#xff1a;【生态丰富】【高性能】【超简单】 【功能全面】 【多库兼容】【适合产品】 【SqlSugar视频教程】 支持 &#xff1a…...

    2024/5/1 4:16:20
  2. 梯度消失和梯度爆炸的一些处理方法

    在这里是记录一下梯度消失或梯度爆炸的一些处理技巧。全当学习总结了如有错误还请留言&#xff0c;在此感激不尽。 权重和梯度的更新公式如下&#xff1a; w w − η ⋅ ∇ w w w - \eta \cdot \nabla w ww−η⋅∇w 个人通俗的理解梯度消失就是网络模型在反向求导的时候出…...

    2024/3/20 10:50:27
  3. 使用阿里云试用Elasticsearch学习:3.5 处理人类语言——停用词: 性能与精度

    从早期的信息检索到如今&#xff0c; 我们已习惯于磁盘空间和内存被限制为很小一部分&#xff0c;所以 必须使你的索引尽可能小。 每个字节都意味着巨大的性能提升。 (查看 将单词还原为词根 ) 词干提取的重要性不仅是因为它让搜索的内容更广泛、让检索的能力更深入&#xff0c…...

    2024/4/30 2:21:09
  4. 前端 js 经典:字符编码详解

    前言&#xff1a;计算机只能识别二进制&#xff0c;开发语言中数据类型还有数字&#xff0c;字母&#xff0c;中文&#xff0c;特殊符号等&#xff0c;都需要转化成二进制编码才能让技术机识别。 一. 编码方式 ACSLL、Unicode、utf-8、URL 编码、base64 等。 1. ACSLL 对英语…...

    2024/4/29 3:52:58
  5. LeetCode-46. 全排列【数组 回溯】

    LeetCode-46. 全排列【数组 回溯】 题目描述&#xff1a;解题思路一&#xff1a;回溯。回溯三部曲解题思路二&#xff1a;0解题思路三&#xff1a;0 题目描述&#xff1a; 给定一个不含重复数字的数组 nums &#xff0c;返回其 所有可能的全排列 。你可以 按任意顺序 返回答案…...

    2024/4/30 3:22:52
  6. 416. 分割等和子集问题(动态规划)

    题目 题解 class Solution:def canPartition(self, nums: List[int]) -> bool:# badcaseif not nums:return True# 不能被2整除if sum(nums) % 2 ! 0:return False# 状态定义&#xff1a;dp[i][j]表示当背包容量为j&#xff0c;用前i个物品是否正好可以将背包填满&#xff…...

    2024/4/30 9:36:27
  7. 【Java】ExcelWriter自适应宽度工具类(支持中文)

    工具类 import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.CellType; import org.apache.poi.ss.usermodel.Row; import org.apache.poi.ss.usermodel.Sheet;/*** Excel工具类** author xiaoming* date 2023/11/17 10:40*/ public class ExcelUti…...

    2024/4/30 0:57:52
  8. Spring cloud负载均衡@LoadBalanced LoadBalancerClient

    LoadBalance vs Ribbon 由于Spring cloud2020之后移除了Ribbon&#xff0c;直接使用Spring Cloud LoadBalancer作为客户端负载均衡组件&#xff0c;我们讨论Spring负载均衡以Spring Cloud2020之后版本为主&#xff0c;学习Spring Cloud LoadBalance&#xff0c;暂不讨论Ribbon…...

    2024/4/29 18:43:42
  9. TSINGSEE青犀AI智能分析+视频监控工业园区周界安全防范方案

    一、背景需求分析 在工业产业园、化工园或生产制造园区中&#xff0c;周界防范意义重大&#xff0c;对园区的安全起到重要的作用。常规的安防方式是采用人员巡查&#xff0c;人力投入成本大而且效率低。周界一旦被破坏或入侵&#xff0c;会影响园区人员和资产安全&#xff0c;…...

    2024/5/1 4:07:45
  10. VB.net WebBrowser网页元素抓取分析方法

    在用WebBrowser编程实现网页操作自动化时&#xff0c;常要分析网页Html&#xff0c;例如网页在加载数据时&#xff0c;常会显示“系统处理中&#xff0c;请稍候..”&#xff0c;我们需要在数据加载完成后才能继续下一步操作&#xff0c;如何抓取这个信息的网页html元素变化&…...

    2024/4/30 23:32:22
  11. 【Objective-C】Objective-C汇总

    方法定义 参考&#xff1a;https://www.yiibai.com/objective_c/objective_c_functions.html Objective-C编程语言中方法定义的一般形式如下 - (return_type) method_name:( argumentType1 )argumentName1 joiningArgument2:( argumentType2 )argumentName2 ... joiningArgu…...

    2024/4/30 23:16:16
  12. 【洛谷算法题】P5713-洛谷团队系统【入门2分支结构】

    &#x1f468;‍&#x1f4bb;博客主页&#xff1a;花无缺 欢迎 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! 本文由 花无缺 原创 收录于专栏 【洛谷算法题】 文章目录 【洛谷算法题】P5713-洛谷团队系统【入门2分支结构】&#x1f30f;题目描述&#x1f30f;输入格…...

    2024/4/30 0:57:50
  13. 【ES6.0】- 扩展运算符(...)

    【ES6.0】- 扩展运算符... 文章目录 【ES6.0】- 扩展运算符...一、概述二、拷贝数组对象三、合并操作四、参数传递五、数组去重六、字符串转字符数组七、NodeList转数组八、解构变量九、打印日志十、总结 一、概述 **扩展运算符(...)**允许一个表达式在期望多个参数&#xff0…...

    2024/4/29 21:25:29
  14. 摩根看好的前智能硬件头部品牌双11交易数据极度异常!——是模式创新还是饮鸩止渴?

    文 | 螳螂观察 作者 | 李燃 双11狂欢已落下帷幕&#xff0c;各大品牌纷纷晒出优异的成绩单&#xff0c;摩根士丹利投资的智能硬件头部品牌凯迪仕也不例外。然而有爆料称&#xff0c;在自媒体平台发布霸榜各大榜单喜讯的凯迪仕智能锁&#xff0c;多个平台数据都表现出极度异常…...

    2024/4/30 0:57:49
  15. Go语言常用命令详解(二)

    文章目录 前言常用命令go bug示例参数说明 go doc示例参数说明 go env示例 go fix示例 go fmt示例 go generate示例 总结写在最后 前言 接着上一篇继续介绍Go语言的常用命令 常用命令 以下是一些常用的Go命令&#xff0c;这些命令可以帮助您在Go开发中进行编译、测试、运行和…...

    2024/4/30 14:53:47
  16. 用欧拉路径判断图同构推出reverse合法性:1116T4

    http://cplusoj.com/d/senior/p/SS231116D 假设我们要把 a a a 变成 b b b&#xff0c;我们在 a i a_i ai​ 和 a i 1 a_{i1} ai1​ 之间连边&#xff0c; b b b 同理&#xff0c;则 a a a 能变成 b b b 的充要条件是两图 A , B A,B A,B 同构。 必要性显然&#xff0…...

    2024/4/30 22:14:26
  17. 【NGINX--1】基础知识

    1、在 Debian/Ubuntu 上安装 NGINX 在 Debian 或 Ubuntu 机器上安装 NGINX 开源版。 更新已配置源的软件包信息&#xff0c;并安装一些有助于配置官方 NGINX 软件包仓库的软件包&#xff1a; apt-get update apt install -y curl gnupg2 ca-certificates lsb-release debian-…...

    2024/4/29 7:41:18
  18. Hive默认分割符、存储格式与数据压缩

    目录 1、Hive默认分割符2、Hive存储格式3、Hive数据压缩 1、Hive默认分割符 Hive创建表时指定的行受限&#xff08;ROW FORMAT&#xff09;配置标准HQL为&#xff1a; ... ROW FORMAT DELIMITED FIELDS TERMINATED BY \u0001 COLLECTION ITEMS TERMINATED BY , MAP KEYS TERMI…...

    2024/4/30 22:57:18
  19. 【论文阅读】MAG:一种用于航天器遥测数据中有效异常检测的新方法

    文章目录 摘要1 引言2 问题描述3 拟议框架4 所提出方法的细节A.数据预处理B.变量相关分析C.MAG模型D.异常分数 5 实验A.数据集和性能指标B.实验设置与平台C.结果和比较 6 结论 摘要 异常检测是保证航天器稳定性的关键。在航天器运行过程中&#xff0c;传感器和控制器产生大量周…...

    2024/4/30 20:39:53
  20. --max-old-space-size=8192报错

    vue项目运行时&#xff0c;如果经常运行慢&#xff0c;崩溃停止服务&#xff0c;报如下错误 FATAL ERROR: CALL_AND_RETRY_LAST Allocation failed - JavaScript heap out of memory 因为在 Node 中&#xff0c;通过JavaScript使用内存时只能使用部分内存&#xff08;64位系统&…...

    2024/4/30 0:57:46
  21. 基于深度学习的恶意软件检测

    恶意软件是指恶意软件犯罪者用来感染个人计算机或整个组织的网络的软件。 它利用目标系统漏洞&#xff0c;例如可以被劫持的合法软件&#xff08;例如浏览器或 Web 应用程序插件&#xff09;中的错误。 恶意软件渗透可能会造成灾难性的后果&#xff0c;包括数据被盗、勒索或网…...

    2024/4/30 0:57:46
  22. JS原型对象prototype

    让我简单的为大家介绍一下原型对象prototype吧&#xff01; 使用原型实现方法共享 1.构造函数通过原型分配的函数是所有对象所 共享的。 2.JavaScript 规定&#xff0c;每一个构造函数都有一个 prototype 属性&#xff0c;指向另一个对象&#xff0c;所以我们也称为原型对象…...

    2024/4/29 3:42:58
  23. C++中只能有一个实例的单例类

    C中只能有一个实例的单例类 前面讨论的 President 类很不错&#xff0c;但存在一个缺陷&#xff1a;无法禁止通过实例化多个对象来创建多名总统&#xff1a; President One, Two, Three; 由于复制构造函数是私有的&#xff0c;其中每个对象都是不可复制的&#xff0c;但您的目…...

    2024/4/29 19:56:39
  24. python django 小程序图书借阅源码

    开发工具&#xff1a; PyCharm&#xff0c;mysql5.7&#xff0c;微信开发者工具 技术说明&#xff1a; python django html 小程序 功能介绍&#xff1a; 用户端&#xff1a; 登录注册&#xff08;含授权登录&#xff09; 首页显示搜索图书&#xff0c;轮播图&#xff0…...

    2024/4/29 8:41:59
  25. 电子学会C/C++编程等级考试2022年03月(一级)真题解析

    C/C++等级考试(1~8级)全部真题・点这里 第1题:双精度浮点数的输入输出 输入一个双精度浮点数,保留8位小数,输出这个浮点数。 时间限制:1000 内存限制:65536输入 只有一行,一个双精度浮点数。输出 一行,保留8位小数的浮点数。样例输入 3.1415926535798932样例输出 3.1…...

    2024/4/30 20:52:33
  26. 配置失败还原请勿关闭计算机,电脑开机屏幕上面显示,配置失败还原更改 请勿关闭计算机 开不了机 这个问题怎么办...

    解析如下&#xff1a;1、长按电脑电源键直至关机&#xff0c;然后再按一次电源健重启电脑&#xff0c;按F8健进入安全模式2、安全模式下进入Windows系统桌面后&#xff0c;按住“winR”打开运行窗口&#xff0c;输入“services.msc”打开服务设置3、在服务界面&#xff0c;选中…...

    2022/11/19 21:17:18
  27. 错误使用 reshape要执行 RESHAPE,请勿更改元素数目。

    %读入6幅图像&#xff08;每一幅图像的大小是564*564&#xff09; f1 imread(WashingtonDC_Band1_564.tif); subplot(3,2,1),imshow(f1); f2 imread(WashingtonDC_Band2_564.tif); subplot(3,2,2),imshow(f2); f3 imread(WashingtonDC_Band3_564.tif); subplot(3,2,3),imsho…...

    2022/11/19 21:17:16
  28. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机...

    win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”问题的解决方法在win7系统关机时如果有升级系统的或者其他需要会直接进入一个 等待界面&#xff0c;在等待界面中我们需要等待操作结束才能关机&#xff0c;虽然这比较麻烦&#xff0c;但是对系统进行配置和升级…...

    2022/11/19 21:17:15
  29. 台式电脑显示配置100%请勿关闭计算机,“准备配置windows 请勿关闭计算机”的解决方法...

    有不少用户在重装Win7系统或更新系统后会遇到“准备配置windows&#xff0c;请勿关闭计算机”的提示&#xff0c;要过很久才能进入系统&#xff0c;有的用户甚至几个小时也无法进入&#xff0c;下面就教大家这个问题的解决方法。第一种方法&#xff1a;我们首先在左下角的“开始…...

    2022/11/19 21:17:14
  30. win7 正在配置 请勿关闭计算机,怎么办Win7开机显示正在配置Windows Update请勿关机...

    置信有很多用户都跟小编一样遇到过这样的问题&#xff0c;电脑时发现开机屏幕显现“正在配置Windows Update&#xff0c;请勿关机”(如下图所示)&#xff0c;而且还需求等大约5分钟才干进入系统。这是怎样回事呢&#xff1f;一切都是正常操作的&#xff0c;为什么开时机呈现“正…...

    2022/11/19 21:17:13
  31. 准备配置windows 请勿关闭计算机 蓝屏,Win7开机总是出现提示“配置Windows请勿关机”...

    Win7系统开机启动时总是出现“配置Windows请勿关机”的提示&#xff0c;没过几秒后电脑自动重启&#xff0c;每次开机都这样无法进入系统&#xff0c;此时碰到这种现象的用户就可以使用以下5种方法解决问题。方法一&#xff1a;开机按下F8&#xff0c;在出现的Windows高级启动选…...

    2022/11/19 21:17:12
  32. 准备windows请勿关闭计算机要多久,windows10系统提示正在准备windows请勿关闭计算机怎么办...

    有不少windows10系统用户反映说碰到这样一个情况&#xff0c;就是电脑提示正在准备windows请勿关闭计算机&#xff0c;碰到这样的问题该怎么解决呢&#xff0c;现在小编就给大家分享一下windows10系统提示正在准备windows请勿关闭计算机的具体第一种方法&#xff1a;1、2、依次…...

    2022/11/19 21:17:11
  33. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”的解决方法...

    今天和大家分享一下win7系统重装了Win7旗舰版系统后&#xff0c;每次关机的时候桌面上都会显示一个“配置Windows Update的界面&#xff0c;提示请勿关闭计算机”&#xff0c;每次停留好几分钟才能正常关机&#xff0c;导致什么情况引起的呢&#xff1f;出现配置Windows Update…...

    2022/11/19 21:17:10
  34. 电脑桌面一直是清理请关闭计算机,windows7一直卡在清理 请勿关闭计算机-win7清理请勿关机,win7配置更新35%不动...

    只能是等着&#xff0c;别无他法。说是卡着如果你看硬盘灯应该在读写。如果从 Win 10 无法正常回滚&#xff0c;只能是考虑备份数据后重装系统了。解决来方案一&#xff1a;管理员运行cmd&#xff1a;net stop WuAuServcd %windir%ren SoftwareDistribution SDoldnet start WuA…...

    2022/11/19 21:17:09
  35. 计算机配置更新不起,电脑提示“配置Windows Update请勿关闭计算机”怎么办?

    原标题&#xff1a;电脑提示“配置Windows Update请勿关闭计算机”怎么办&#xff1f;win7系统中在开机与关闭的时候总是显示“配置windows update请勿关闭计算机”相信有不少朋友都曾遇到过一次两次还能忍但经常遇到就叫人感到心烦了遇到这种问题怎么办呢&#xff1f;一般的方…...

    2022/11/19 21:17:08
  36. 计算机正在配置无法关机,关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机...

    关机提示 windows7 正在配置windows 请勿关闭计算机 &#xff0c;然后等了一晚上也没有关掉。现在电脑无法正常关机以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;关机提示 windows7 正在配…...

    2022/11/19 21:17:05
  37. 钉钉提示请勿通过开发者调试模式_钉钉请勿通过开发者调试模式是真的吗好不好用...

    钉钉请勿通过开发者调试模式是真的吗好不好用 更新时间:2020-04-20 22:24:19 浏览次数:729次 区域: 南阳 > 卧龙 列举网提醒您:为保障您的权益,请不要提前支付任何费用! 虚拟位置外设器!!轨迹模拟&虚拟位置外设神器 专业用于:钉钉,外勤365,红圈通,企业微信和…...

    2022/11/19 21:17:05
  38. 配置失败还原请勿关闭计算机怎么办,win7系统出现“配置windows update失败 还原更改 请勿关闭计算机”,长时间没反应,无法进入系统的解决方案...

    前几天班里有位学生电脑(windows 7系统)出问题了&#xff0c;具体表现是开机时一直停留在“配置windows update失败 还原更改 请勿关闭计算机”这个界面&#xff0c;长时间没反应&#xff0c;无法进入系统。这个问题原来帮其他同学也解决过&#xff0c;网上搜了不少资料&#x…...

    2022/11/19 21:17:04
  39. 一个电脑无法关闭计算机你应该怎么办,电脑显示“清理请勿关闭计算机”怎么办?...

    本文为你提供了3个有效解决电脑显示“清理请勿关闭计算机”问题的方法&#xff0c;并在最后教给你1种保护系统安全的好方法&#xff0c;一起来看看&#xff01;电脑出现“清理请勿关闭计算机”在Windows 7(SP1)和Windows Server 2008 R2 SP1中&#xff0c;添加了1个新功能在“磁…...

    2022/11/19 21:17:03
  40. 请勿关闭计算机还原更改要多久,电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机怎么办...

    许多用户在长期不使用电脑的时候&#xff0c;开启电脑发现电脑显示&#xff1a;配置windows更新失败&#xff0c;正在还原更改&#xff0c;请勿关闭计算机。。.这要怎么办呢&#xff1f;下面小编就带着大家一起看看吧&#xff01;如果能够正常进入系统&#xff0c;建议您暂时移…...

    2022/11/19 21:17:02
  41. 还原更改请勿关闭计算机 要多久,配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以...

    配置windows update失败 还原更改 请勿关闭计算机&#xff0c;电脑开机后一直显示以以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;配置windows update失败 还原更改 请勿关闭计算机&#x…...

    2022/11/19 21:17:01
  42. 电脑配置中请勿关闭计算机怎么办,准备配置windows请勿关闭计算机一直显示怎么办【图解】...

    不知道大家有没有遇到过这样的一个问题&#xff0c;就是我们的win7系统在关机的时候&#xff0c;总是喜欢显示“准备配置windows&#xff0c;请勿关机”这样的一个页面&#xff0c;没有什么大碍&#xff0c;但是如果一直等着的话就要两个小时甚至更久都关不了机&#xff0c;非常…...

    2022/11/19 21:17:00
  43. 正在准备配置请勿关闭计算机,正在准备配置windows请勿关闭计算机时间长了解决教程...

    当电脑出现正在准备配置windows请勿关闭计算机时&#xff0c;一般是您正对windows进行升级&#xff0c;但是这个要是长时间没有反应&#xff0c;我们不能再傻等下去了。可能是电脑出了别的问题了&#xff0c;来看看教程的说法。正在准备配置windows请勿关闭计算机时间长了方法一…...

    2022/11/19 21:16:59
  44. 配置失败还原请勿关闭计算机,配置Windows Update失败,还原更改请勿关闭计算机...

    我们使用电脑的过程中有时会遇到这种情况&#xff0c;当我们打开电脑之后&#xff0c;发现一直停留在一个界面&#xff1a;“配置Windows Update失败&#xff0c;还原更改请勿关闭计算机”&#xff0c;等了许久还是无法进入系统。如果我们遇到此类问题应该如何解决呢&#xff0…...

    2022/11/19 21:16:58
  45. 如何在iPhone上关闭“请勿打扰”

    Apple’s “Do Not Disturb While Driving” is a potentially lifesaving iPhone feature, but it doesn’t always turn on automatically at the appropriate time. For example, you might be a passenger in a moving car, but your iPhone may think you’re the one dri…...

    2022/11/19 21:16:57