- 博客(63)
- 收藏
- 关注
原创 分区器和序列化
说明:这里的setNumReduceTasks的值最好与setPartitioner返回的分区器的个数一致。回顾我们的需求,我们在做词频统计的时候,把a-m开头的保存在一个文件中,n-z开头的保存在另一个文件中。下面我们来看一个例子:通过代码来定义一个类,并创建它的一个对象,把这个对象保存到文件中(序列化),然后再写代码读取这个文件并还原回来。这个泛型类的泛型是map方法输出的k2,v2的数据类型。// 2. 使用ObjectInputStream对象中的readObject方法,读取文件中的对象。
2025-05-13 15:08:17
480
原创 数据清洗-案例
代码说明:NullWritable就等价于null,context.write(value,NullWritable.get())就表示只有key,没有value。在之前的项目的基础之上,重写去写一个包,并创建两个类:WebLogMapper和WebLogDriver类。// 设置reducetask个数为0。(1)编写WebLogMapper类。使用空格进行拆分,判断是否有。// 5 设置输入和输出路径。// 4 设置最终输出类型。// 1 获取job信息。// 2 加载jar包。// 3 关联map。
2025-05-13 15:05:42
401
原创 MapReduce打包运行
我们集群上安装的java环境是1.8的,那么我们生成的代码也必须是这个版本的,否则,就会无法运行。在上面的代码中,我们的程序只能完成固定目录下的功能。使用finalshell上到任意节点,例如hadoop100上的/opt下,。确保集群中没有output1这个目录,因为它应该是要被动态创建出来的。确保集群中有/wcinput目录,并且下面有记事本文件中的单词。修改代码,让程序能指定要执行的输入目录和要保存结果的输出目录。路径为程序的第一个参数,第二个参数。修改driver类的代码,更新输入和输入路径。
2025-05-13 15:04:24
178
原创 Mapreduce初使用
重写reduce方法(keyIn, Iterable<ValueIn>,Content<KeyOut, Key>)约定泛型<keyIn,ValueIn,KeyOut,ValueOut>重写map方法(keyIn, ValueIn,Content<KeyOut, Key>)// 3. 关联Mapper和Reducer。// 4. 设置Mapper输出的KV类型。// 遍历单词,设置键值对,值为1。// mapreduce的Driver。// 2. 关联本地的jar。// 7. 提交job。
2025-05-13 15:01:44
552
原创 HDFS的客户端操作
如果路径是一个目录,且目录下有子文件或子目录,设置为 true 可以将整个目录及其内容全部删除。第一个参数 new Path("/xiyou") 指定了要删除的路径,/xiyou 是 HDFS 中的目录或文件路径。我们来学习如何删除文件。这里要用的API是fs.delete,用于删除 HDFS 中的文件或目录。文件更名和文件移动本质是一样的: 更新了这个文件的访问路径。我们来看看fs.delete的格式:fs.delete(要删除的路径,是否递归删除)。接下来,我们来学习如何查看文件的详细信息。
2025-05-13 14:58:45
752
原创 HDFS的客户端操作
/ hadoop100是namenode所在的节点。这一小结,我们来通过hadoop的相关api,实现通过代码的方式去创建文件夹。接下来,我们向/maven下上传一个文件。默认情况下,上传的文件会被保存3份,如果需要的话,我们可以随时去修改这个设置参数。上传结束之后,回到hdfs的UI界面去检查是否成功。// Path dst 指将文件下载到的路径。// Path src 指要下载的文件路径。
2025-05-13 14:55:53
665
原创 HDFS客户端操作
步骤一:打开 IDEA,点击 File -> Settings(Windows/Linux)或者 IntelliJ IDEA -> Preferences(Mac),进入设置界面,然后找到 Build, Execution, Deployment -> Build Tools -> Maven。步骤三:可以在 User settings file 中指定 settings.xml 文件的路径(一般使用默认路径即可),Local repository 中指定本地仓库的路径,配置完成后点击 OK 保存设置。
2025-05-13 14:53:06
746
原创 shell操作文件上传
它有两种操作,一是移动,会把当前的文件删除,二是复制,保留当前的文件。示例需求: 把服务器上的shuguo.txt 下载到hadoop100的 files目目录下。hadoop fs -moveFormLocal 本地文件路径 服务器上的文件路径。hadoop fs -get 服务器上的文件路径 本地文件路径。命令,它的格式是: hadoop fs -mv 文件起点 终点。把本地的文件上传到HDFS,并删除本地的文件。,它的格式是: -rm -r 要删除的文件夹。命令,它的格式是: -rm 要删除的文件。
2025-05-13 14:46:33
391
原创 HDFS概述
其次,它是分布式的,由很多服务器联合起来实现其功能,集群中的服务器有各自的角色。随着数据量越来越大,在一个操作系统存不下所有的数据,那么就分配到更多的操作系统管理的磁盘中,但是不方便管理和维护,迫切需要一种系统来管理多台机器上的文件,这就是分布式文件管理系统。小文件存储的寻址时间会超过读取时间,它违反了HDFS的设计目标。数据自动保存多个副本(可以灵活指定副本个数),它通过增加副本的形式,提高容错性。1. 不适合低延时数据访问,比如毫秒级的存储数据,是做不到的。文件规模:能够处理百万规模以上的文件数量。
2025-05-13 14:45:10
211
原创 配置Hadoop集群-配置历史和日志服务
比较多,在启动的时候,还要分别进入不同的服务器写不同的命令,比较麻烦。我们配置了多台服务器,并且每台服务器上运行的任务都不太相同,我们可以使用jps命令来查看每台设备上的运行任务。echo " --------------- 启动 hdfs ---------------"但是,请注意,在哪一台上配置了,就应该在哪一台上去启动。请注意,你在配置的时候指定哪个节点是历史服务器,就在哪里启动,请不要搞错了。是在具体的节点上运行的,所以运行日志也是产生在具体的节点上,但是我们希望应用。
2025-05-13 14:43:44
823
原创 测试集群的功能-执行wordcount程序
在集群根目录下创建wcinput目录,并在它的下面上传两个文本文件word1.txt, word2.txt,其中保存了要测试的单词信息。在任意一台设备中,进入到hadoop的主目录。cd /opt/modele/确保hadoop是正确运行的。hdfs和yarn都正常启动了。在如下网站查看运行的过程和记录。
2025-05-13 14:39:29
426
原创 配置Hadoop集群-上传文件
前面我们上传了一个小文件,可以看到这个文件太小,hadoop被没有被切分成小块。上传文件的时候,我们传一个大一点的(>128M),再传一个小一点的。对于大一点的文件,我们要去看看它是否会按128M为单位去拆分这个大文件,而拆分成大文件之后,我们又怎么才能去还原?上传完成之后,我们去查看,很明显大文件被分块了,128M一块,一共有两个块。在我们上一节的hadoop配置中,我们设置了保持文件的目录是/data,所以,我们进入hadoop的按照目录下的data中去看一看。上传文件后查看文件存放在什么位置。
2025-05-13 14:36:57
592
原创 配置hadoop集群-启动集群
在环境变量中添加/etc/profile.d/my_env.sh。#告诉 Hadoop 使用 root 用户来启动和管理相应的服务。同步给其他的机器,并使用source命令,让环境变量生效!提醒:此时会报错不允许使用root用户来启动HDFS!)在配置了ResourceManager的节点(NameNode(注意:格式化。)如果集群是第一次启动,需要。指定为namenode的节点。#添root加环境变量。
2025-05-13 14:33:50
388
原创 从零开始配置spark-local模式
这里使用单机模式快运行第一个Spark程序,让大家有个基本的印象。在安装Spark时,它就提供了一些示例程序,我们可以直接来调用。进入到spark-local,运行命令spark-submit命令。mv是linux的命令,这里的 \ 是换行输入的意思,整体的代码就只有一句,只不过太长了,我们把它拆开成几个部分来输入,其中\ 的意思就是这里写不下,写在下一行。接下来的操作,我们把它上传到集群中的节点,并解压运行。1.打开etc/profile.d/my_env.sh文件中,补充设置spark的环境变量。
2025-04-21 10:25:13
265
原创 spark和hadoop的区别与联系
Spark 与 Hadoop 的区别与联系一、核心定位与架构差异1. Hadoop• 定位:分布式存储与计算的基础框架,核心解决海量数据的存储(HDFS)和批量处理(MapReduce)问题。• 架构:◦ HDFS(分布式文件系统):负责数据存储,通过分块(Block)和副本机制实现高可靠性与扩展性。◦ MapReduce:离线批量计算模型,分 “映射(Map)” 和 “归约(Reduce)” 阶段,适合处理吞吐量高但实时性要求低的任务(如日志分析、ETL)。
2025-04-21 08:26:16
1003
原创 修改配置文件
这里一共有5个文件要配置:分别是core-site.xml,hdfs-site.xml,yarn-site.xml,mapred-site.xml,workers。接下来配置第二个文件,/opt/module/hadoop-3.1.3/etc/hadoop/hdfs-site.xml。-- 指定ResourceManager的地址-->-- 指定MapReduce程序运行在Yarn上 -->-- 指定hadoop数据的存储目录 -->-- 指定NameNode的地址 -->-- 环境变量继承 -->
2025-03-31 20:15:42
863
原创 hadoop集群配置-创建xsync脚本命令
在root里创建一个文件夹bin,在bin里面创建一个文件xsync,将下面的代码写在里面。使用xsync命令同步集群文件。
2025-03-23 20:28:46
251
原创 运行第一个hadoop示例程序
hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.3.jar wordcount wcinput wcoutput
2025-03-17 09:54:13
276
原创 配置虚拟机lp地址
linux中,ip地址是写在配置文件(/etc/sysconfig/network-scripts/ifcfg-ens33)中,这里使用 vi 编辑器去修改即可!如果不进行设置,每次启动机器时都可能是随机的IP,不方便我们后续操作。命令如下:vi /etc/sysconfig/network-scripts/ifcfg-ens33。注意:这里的第三个部分的10并不是固定的,我们自己可以约定,但是约定之后就要固定下来。让所有的vm配置的虚拟机使用NAT时,它们的网段都是一致的。检查是否能Ping通外网。
2025-03-03 08:44:24
260
原创 如何安装VM和CentOS
安装CentOS:准备好CentOS的ISO镜像文件,打开VMware Workstation,选择“创建新的虚拟机”,在创建过程中选择自定义(高级)安装类型,指定CentOS的ISO镜像文件作为安装源,设置虚拟机的硬件配置,如内存、CPU等。设置完成后,在虚拟机中启动CentOS的ISO镜像文件,进入安装界面,选择安装语言、时区、磁盘分区等配置选项,配置网络设置,按照提示完成安装。
2025-02-25 10:55:25
255
原创 VM虚拟机操作
rm -rf:删除文件夹,不提示。mkdir -p:创建子目录。rm -f:删除文件,不提示。rm -rf /*:删库跑路。touch:新建一个空文件。rm -r:删除文件夹。mkdir:新建目录。
2025-02-24 10:17:41
1116
原创 Scala的面向对象
从编译的角度解释Scala的多态含义:在执行期间而非编译期间确定所引用对象的类型,根据实际类型调用其方法。一个编译型的语言有两种类型,分别为编译类型和运行类型。程序定义的引用变量指向的具体类型和通过该变量发出的方法调用在编译是并不确定,而是在程序运行期间才确定。重写要求名称和参数列表相同,这种特性与Java中的相同。子类对父类中的某些方法进行重新定义,在调用这些方法时就会调用子类方法。Scala多态的这种特性可以提高程序的可扩充性和可维护性,提高代码的复用率。面向对象的三个基本特征是封装,继承,和多态。
2024-12-05 01:47:17
449
原创 Scala的内建控制
Scala顺序的结构定义就是程序从上到下执行,中间过程没有任何判断和跳转。在编写代码的过程中没有判断语句和跳转语句,程序按照输出语句的顺序从上到下输出代码的执行结果。顺序结构的作用就是在没有流程控制的前提下,顺序结构决定了代码的执行顺序。在编写代码时,顺序结构由于没有其他跳转和控制语句,所以整体结构会变得相对简单直观。Scala的常见内建控制结构。1.Scala顺序结构的定义。3.Scala顺序结构的实例。Scala的顺序结构。
2024-12-05 01:44:53
255
原创 Scala梦想清单
println(s"内容: ${dream.content}, 是否完成: ${dream.isCompleted}, 截止日期: ${dream.dueDate}, 优先级: ${dream.priority}")dreamList += DreamItem("学习一门新语言", false, "2024-12-31", 3)// 把优先级排名前5的梦想保存到一个新的列表中。// 调高第3个梦想的优先级,这里假设调高到5。// 将第2个梦想设置为已完成。// 循环输出梦想列表。任务背景: 梦想清单管理。
2024-12-05 01:38:22
911
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅