自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(60)
  • 收藏
  • 关注

原创 配置历史和日志服务

echo " --------------- 启动 historyserver ---------------"echo " --------------- 关闭 historyserver ---------------"echo " --------------- 启动 hdfs ---------------"echo " --------------- 启动 yarn ---------------"echo " --------------- 关闭 yarn ---------------"

2025-05-13 14:56:20 867

原创 配置 hadoop 集群

对普通用户来说, Hadoop就是一个东西,一个整体,它能给我们提供无限的磁盘用来保存文件,可以使用提供强大的计算能力。(1)NameNode(nn):存储文件的元数据,如文件名,文件目录结构,文件属性(生成时间,副本数,文件权限),以及每个文件的块列表和块所在的DataNode等。刚才我们是在hadoop100这台机器上进行了正确的设置,但是,其他的2台机器也要做相同的配置。接下来配置第二个文件,/opt/module/hadoop-3.1.3/etc/hadoop/hdfs-site.xml。

2025-05-13 14:54:16 576

原创 配置 SSH 无密登录

它的格式 是: ssh-copy-id 目标机器。(2)在 hadoop100 上,运行命令:ssh-keygen -t rsa。2. hosts 文件中的主机名和 ip 地址是否与 finalshell 中的连接的主机名以及对 应的虚拟机上的 ip 地址一致。接下来我们去具体看看.ssh 相关的文件,以便更加深入的了解它的工作过程。(4)在 hadoop100 上,输入 ssh hadoop101 命令,看看是否可以免密登录。(2)把 hadoop100 的公钥发到 hadoop101 上。

2025-05-13 14:52:53 633

原创 安装 hadoop 并运行 wordcount 程序

3.1.3 是 Hadoop 的版本号,不同版本的 Hadoop,其示例 JAR 文件的版本号可能不同。/etc/profile 是系统级别的全局配置文件,当用户进行登录操作时,该文件会被执行,而 /etc/profile 脚本里包含了对 /etc/profile.d 目录下脚本的扫描和执行逻辑。6.-C /opt/module/:其中 -C 选项表示切换目录(change directory),后面跟着的 /opt/module/ 是指定解压后的文件存放的目标目录。1. 上传文件到虚拟机。

2025-05-13 14:51:38 1015

原创 配置 hadoop 集群环境

在一台机器上模拟出 Hadoop 分布式系统的各个组件,各个组件在逻辑上是分离的,但是都运行在同一台物理机器上,以此来模拟分布式环境。任务1:在hadoop102上,将hadoop101中/opt/module/hadoop-3.1.3目录拷贝到hadoop102上。如果当前在A机器上,要把A机器上的/etc/tst下的所有内容拷贝到B机器上的/etc/tst目录下,应该的命令应该怎么写?现在的目标是:要把hadoop100上的jdk文件夹拷贝到hadoop101中的相同的目录下。(3)修改执行权限。

2025-05-13 14:50:01 528

原创 vm 与 consent 虚拟机

克隆之后,我们得到了hadoop101,hadoop102,由于它们是从hadoop100直接扣克隆过来的,所以目前他们的ip和hostname都是很hadoop100是一样的,这里就需要修改下。要注意,这里是虚拟机的名称,而不是它的hostname。只是要注意修改对应的名称和IP:在第一台机器的基础上顺延即可。(2)要将这两台克隆出来的虚拟机和hadoop100保存在同一个磁盘目录下,方便我们统一管理。vm软件提供了克隆的功能,它可以允许我们从一台虚拟机上快速克隆出其他的一模一样的主机。

2025-05-13 14:47:49 208

原创 host 配置

现在我们可以通过finalshell这个工具来连接我们的远程服务器,不过我们连接主机的时候,需要填入对方的ip地址,这个很麻烦。hosts 文件是一个本地的文本文件,它的作用是将主机名映射到对应的 IP 地址,在 DNS(域名系统)解析之前,系统会先查询 hosts 文件来确定目标主机的 IP 地址。把虚拟机上的软件yum想象成你自己开的一家商场,那么yum的源就是你的供货商。Yum是一个linux工具,用来从网络上下载安装软件到linux操作系统中,在此之前,我们先要确保虚拟机的网络是通畅的。

2025-05-13 14:45:32 792

原创 配置 hadoop 集群 测试使用

这个存储的目录特别深,大概类似于:/opt/module/hadoop-3.1.3/data/dfs/data/current/BP-1436128598-192.168.10.102-1610603650062/current/finalized/subdir0/subdir0。上传文件的时候,我们传一个大一点的(>128M),再传一个小一点的。在我们上一节的hadoop配置中,我们设置了保持文件的目录是/data,所以,我们进入hadoop的按照目录下的data中去看一看。文件的名称是blk_xxx。

2025-05-13 14:44:00 273

原创 HDFS 客户端操作 1

每个生命周期由多个阶段(phase)组成,例如 `default` 生命周期包含 `compile`、`test`、`package`、`install`、`deploy` 等阶段。Maven 可以帮助你管理这些依赖项,你只需在项目的 `pom.xml` 文件中声明所需的依赖,Maven 就会自动从远程仓库下载这些依赖项,并将其添加到项目的类路径中。POM 是 Maven 的核心概念之一,它是一个 XML 文件(通常命名为 `pom.xml`),用于描述项目的配置信息和依赖关系。3. 配置日志信息。

2025-05-13 14:42:55 703

原创 HDFS 客户端操作 2

6.通过网络链接发送packet给第一个DataNode,此时它是在内存中接收到的数据,在准备写入磁盘的同时,它把数据通过pipeline传给下一个DataNode。第一个参数 new Path("/xiyou") 指定了要删除的路径,/xiyou 是 HDFS 中的目录或文件路径。修改这个值之后,我们再去重新上传一个新的文件,并检查是否在hdfs的UI面板中能看到这个数值的变化。注意:如果执行上面代码,下载不了文件,有可能是你电脑的微软支持的运行库少,需要安装一下微软运行库。我们来学习如何删除文件。

2025-05-13 14:41:08 511

原创 Mapreduce 初使用

该阶段编程模型中有一个 reduce 函数需要开发人员重写,reduce 函数的输入也是一个 <key, value> 对,reduce 函数的输出也是一个 < key,List<value>> 对。该阶段的编程模型中会有一个 map 函数需要开发人员重写,map 函数的输入是一个 < key,value > 对,map 函数的输出也是一个 < key,value > 对,key和value的类型需要开发人员指定。reduce函数的返回值格式也是kv结构,k是每个单词,v是汇总之后的数字。

2025-05-13 14:35:12 740

原创 HDFS 概述

把本地的文件上传到HDFS,并删除本地的文件。(1)文件上传 HDFS 的时候,Client 将文件切分成一个一个的 Block,然后进行上传;使用-rm -r命令, 它用来删除目录及目录里面内容,它的格式是: -rm -r 要删除的文件夹。使用-mv命令,它的格式是: hadoop fs -mv 文件起点 终点。hadoop fs -get (服务器上的文件路径 本地文件路径)2.如果要保留本地的文件,可以使用 -put 命令。(2)与 NameNode 交互,获取文件的位置信息;

2025-05-12 11:18:31 312

原创 spark 数据清洗案例

以下是 10 条符合上述示例中数据格式(姓名,年龄,性别)的测试数据,包含了一些可能需要清洗掉的无效数据,你可以将其保存为一个文本文件,用于测试上面的数据清洗程序。这里面:“李四” 的年龄为空,“赵六” 和 “吴九” 的年龄不是有效的数字,在执行数据清洗程序时,这些行应该会被过滤掉。假设你有一个包含用户信息的文本文件,每行格式为 姓名,年龄,性别,需要清洗掉年龄为空或者非数字的行。过滤算子中,函数返回为false,就会被过滤掉,函数返回为true,就会被保留下来。// (1)字段拆分,拆分出年龄这个字段。

2025-05-12 11:09:46 458

原创 spark 转换算子和行动算子

函数接收两个类型为 T 的元素,返回一个类型为 T 的结果。f: T => Unit:这是一个函数,它接收一个类型为 T 的元素(T 为 RDD 中元素的类型),并对该元素执行相应的操作,但不返回任何值(返回类型为 Unit)。作用:筛选出 RDD 中满足函数 f 条件(即 f 函数返回 true)的元素,返回一个新的 RDD,新 RDD 中的元素类型与原 RDD 相同。作用:对 RDD 中的每个元素应用函数 f,函数 f 返回一个可遍历的集合,然后将这些集合中的元素扁平化合并成一个新的 RDD。

2025-05-12 11:08:54 582

原创 在 shell 中运行 spark 程序

在部分分区数据丢失时,Spark可以通过这个依赖关系重新计算丢失的分区数据,而不是对RDD的所有分区进行重新计算。Resilient Distributed Dataset 叫做弹性分布式数据集,是Spark中最基本的数据抽象,是分布式计算的实现载体,代表一个不可变,可分区,里面的元素并行计算的集合。不同分区之间的数据是需要有关联的,在不同的分区之间进行数据的传输就是Shuffle,也叫洗牌。上面的代码中,我们用到了两个特殊的类来创建spark上下文,分别是SparkConf,SparkContext。

2025-05-12 11:07:29 426

原创 spark 集群搭建 yarn 模式

1.上传并解压spark-3.1.2-bin-hadoop3.2.tgz,重命名解压之后的目录为spark-yarn。5. /opt/module/spark-standalone/examples/jars/spark-examples_2.12-3.1.1.jar:指定了包含应用程序代码的 JAR 文件的路径。NodeManager:部署在集群中的每个节点上,负责管理该节点上的资源使用情况,监控容器的运行状态,并且与 ResourceManager 保持通信,汇报节点的资源使用信息。

2025-05-12 11:06:04 454

原创 spark集群搭建 standalone

9.启动SPARK集群。进入到hadoop100机器,切换目录到/opt/module/spark-standalone/sbin下,运行命令 ./start-all.sh。进入/opt/module/把解压的内容重命名一下,mv spark-3.1.1-bin-hadoop3.2/ spark-standalone。注意,这里不要省略./,它表示的是当前目录下的start-all命令,如果省略了./,它就会先去环境变量PATH中指定的目录来找这个命令。

2025-05-12 11:05:01 198

原创 yarn tool 接口

org.apache.hadoop.util.Tool 是 Apache Hadoop 框架里的一个接口,其用途是协助开发可通过命令行运行的 Hadoop 应用程序。// 它要做7件事 hadoop jar mc8.js com.example.mapreduce.WordCountDriver /要处理的文件夹 /结果路径。run(String[] args):此方法为应用程序的主要执行逻辑,接收命令行参数,返回一个整数代表执行结果(通常 0 表示成功,非 0 表示失败)。// 返回 0 表示执行成功。

2025-04-29 14:03:32 857

原创 spark 基础介绍

这里使用单机模式快运行第一个Spark程序,让大家有个基本的印象。在安装Spark时,它就提供了一些示例程序,我们可以直接来调用。进入到spark-local,运行命令spark-submit命令。mv是linux的命令,这里的 \ 是换行输入的意思,整体的代码就只有一句,只不过太长了,我们把它拆开成几个部分来输入,其中\ 的意思就是这里写不下,写在下一行。接下来的操作,我们把它上传到集群中的节点,并解压运行。1.打开etc/profile.d/my_env.sh文件中,补充设置spark的环境变量。

2025-04-29 14:02:24 442

原创 spark和hadoop的区别与联系

MapReduce是可以不依靠spark数据的处理的。hadoop的MapReduce是分步对数据进行处理的,从磁盘中读取数据,进行一次处理,将结果写到磁盘,然后在从磁盘中读取更新后的数据,再次进行的处理,最后再将结果存入磁盘,这存取磁盘的过程会影响处理速度。Hadoop是一个分布式数据存储架构,它将巨大的数据集分派到一个由普通计算机组成的集群中的多个节点进行存储,降低了硬件的成本。: 因为spark从磁盘中读取数据,把中间数据放到内存中,,完成所有必须的分析处理,将结果写回集群,所以spark更快。

2025-04-21 08:29:28 718

原创 mapreduce 的工作原理

其工作原理基于"分而治之"的思想,将任务分解为Map(映射)和Reduce(归约)两个阶段。需要注意的是,MapReduce并非万能解决方案,对于迭代计算、实时处理等场景可能效率较低,需根据具体业务需求选择合适的计算框架。- 使用用户定义的Map函数将数据转换为中间键值对(<key, value>)- 数据本地化(Data Locality)优先调度任务到数据所在节点。- 每个Reduce节点接收多个Map的输出,进行合并排序。- 分区后的数据通过网络传输到对应的Reduce节点。

2025-04-01 14:46:48 295

原创 hadoop 集群的常用命令

例如, hdfs dfs -chown -R hadoop:hadoop /user/hadoop/data , -R 选项用于递归修改目录及其子目录和文件的所有者。- 显示文件或目录的磁盘空间使用情况: hdfs dfs -du [-s] [-h] <path>。-s 选项用于汇总指定路径下的总大小, -h 选项以人类可读的格式显示大小,如 hdfs dfs -du -s -h /user/hadoop/data。这个命令会显示集群中各个数据节点的信息,包括节点状态、存储使用情况等。

2025-04-01 14:44:48 205

原创 vi 常见操作命令

• 末行模式操作:按:进入末行模式,w保存文件,q退出,wq保存并退出,:set nu显示行号,:set nonu取消行号显示。• 命令模式操作:dd删除当前行,yy复制当前行,p粘贴内容,u撤销上一步操作,/用于查找,输入要查找的内容后按n查找下一个。• 进入命令模式:打开文件后默认处于命令模式,可使用i、a、o等键进入插入模式进行编辑。• 插入模式操作:i在光标前插入,a在光标后插入,o在当前行下插入新行。

2025-03-03 19:41:22 96

原创 虚拟机 IP 配置

• 静态IP配置:编辑网络配置文件,如/etc/sysconfig/network-scripts/ifcfg-eth0,修改BOOTPROTO为static,添加IPADDR、NETMASK、GATEWAY、DNS1等参数来设置静态IP、子网掩码、网关和DNS服务器地址,修改后执行sudo service network restart使配置生效。• 动态IP配置:可将网络配置文件中的BOOTPROTO设置为dhcp,然后重启网络服务,虚拟机就会通过DHCP服务器自动获取IP地址。

2025-03-03 19:38:44 154

原创 Linux 系统中常用的文本编译器 Vi 的基本使用

• 光标移动:在命令模式下,使用h(左移)、j(下移)、k(上移)、l(右移)按键移动光标;在命令模式下,按dd删除当前行,x删除光标所在字符,yw复制光标所在单词,p粘贴已复制或删除的内容。• 插入模式:在命令模式下按i(在光标前插入)、a(在光标后插入)、o(在当前行下新建一行插入)等键可进入插入模式,此时可输入文本内容。• 保存与退出:在末行模式下,输入w保存文件,q退出Vi,wq保存并退出,q!• 末行模式:在命令模式下按:键进入末行模式,可用于保存文件、退出Vi、查找替换等操作。

2025-02-24 18:27:43 233

原创 Spark linux 的常用命令

• cp:用于复制文件或目录,cp source_file target_file复制文件,cp -r source_dir target_dir复制目录。• mv:用于移动或重命名文件和目录,mv file.txt new_file.txt重命名文件,mv file.txt dir将文件移动到目录中。• ls:用于列出目录内容,如ls -l以长格式显示文件和目录详细信息,ls -a显示所有文件包括隐藏文件。• rm:用于删除文件或目录,rm file.txt删除文件,rm -r dir删除目录及其内容。

2025-02-24 18:23:44 215

原创 Spark 如何安装 vm 和 centos

1. 创建虚拟机:打开VMware Workstation,按“Ctrl+N”键,新建虚拟机,选择“自定义(高级)”,点击“下一步”;点击“软件选择”,选择“最小安装”,点击左上角“完成”;等待安装完成,点击右下角的“重启”。2. 配置镜像文件:点击“编辑虚拟机设置”,左侧设备选择“CD/DVD”,设备状态勾选“启动时连接”,连接选择“使用ISO映像文件”,点击“浏览”,找到下载的CentOS镜像并选中,点击“确定”。可点击“更改”选择安装路径,后续一路点击“下一步”,直到点击“安装”,等待安装完成。

2025-02-24 18:21:27 179

原创 异常

定义:异常:Exception,不是正常的情况。// 无论是否有异常发生,都会做的事。异常如果不处理,会导致整个程序崩溃。// 发生异常之后的处理逻辑。异常分为三类:1.空指针异常。// 可能发生异常的代码。

2025-01-01 20:19:59 139

原创 泛型界定

T >: Policeman. T可以取值必须是Policeman。如果给某个泛型设置了上界:这里的类型必须是上界,及其子类。如果给某个泛型设置了下界:这里的类型必须是下界,及其父类。我们说T的上界是 类型A。我们说T的下界是 类型A。泛型的上界,下界,对类型的更加具体的约束。.求list中最大元素。//爷爷>叔叔>兄弟。

2025-01-01 20:17:39 191

原创 泛型

定义:把泛型定义放在trait的声明上。即:该特质中的参数类型是由泛型来决定的。在定义特质的子类或者子单例对象时,明确具体的数据类型。1.定义泛型特质Logger,该特质有一个变量a和show方法,他们都是用Logger特质的泛型。1.定义一个pair泛型类,该类包含两个字段,且两个字段的类型不固定。:在定义函数的时候,把参数的类型提取出来,变成一个参数,用[]包起来。需求:定义一个函数,用来将Array中的中间位置的元素值返回。泛型是对Array这个数据内部的元素的类型的约定。

2025-01-01 20:16:12 142

原创 隐式转换

系统自动完成的,把一种类型的数据转化成了另一种类型的数据。函数的 参数类型 和 返回值类型 是重要的,它约定了把什么类型转成什么类型。隐式值:能够自己设置函数的参数默认值,而不是在代码中固定写死。隐式函数:就是implicit修饰的函数,可以自动被调用的。隐式转换:编译器偷偷的,帮我做的转换,我们不要主动参与.1.在函数的默认参数的前面补充关键字:implicit。2.在定义变量的前面,补充关键字:implicit。Double -> Int 失败,编译器报错。需求:能够自己设置函数的参数默认值。

2025-01-01 20:14:32 158

原创 正则 — 隐式转换

需求:让字符串增加一个功能:isPhone() 检查当前字符串是否是一个合法的手机号。//例如:"136123456a8".isPhone ---> false。//例如:"13612345678".isPhone ---> true。思路:将字符串转换成一个拥有isPhone这个方法的对象。定义一个函数,用来检验输入的字符串是否是一个手机号。思路:利用隐式转换,隐式函数简化代码。解决方案:类 + 隐式转换函数。

2025-01-01 20:11:03 118

原创 Scala 的条件匹配

在 Scala 中,条件匹配主要通过match表达式来实现,它类似于其他语言中的switch语句,但功能更强。基本语法:match表达式通常与case关键字一起使用。判断:2000-2024年那一年是闰年哪一年是平年。输入一段数字,判断属于那个范围。

2024-12-08 22:03:38 179

原创 scala 的正则表达式 隐式转换

匹配除换行外单个字符a.c,文本abc、a&c等a.c可匹配多种,只要中间是一非换行字符\d等价[0-9],匹配数字\d{3},文本123、456\d{3}匹配连续3个数字\D等价[^0-9],匹配非字符\D+文本abc\D+匹配至少一个非修饰字符,如abc\w等价[a-zA-Z-9_],匹配其他\W,文本&\W匹配非字母等字符,如&\s匹配空白字符a\sb,文本ab。单字符大多数字符匹配自身正则表达式abc,文本abca匹配a,b匹配b,c匹配c方括号[ ]定义字符类,匹配其余字符。

2024-12-05 11:23:55 179

原创 全文单词统计

4.排序 Map是无序,要做排序,先把数组转成序列,List ,Array。目标:统计一篇英文文章中,单词出现的次数前10的单词。1.建立一个空表格,第一列写单词,第二列写出现的次数。使用Map,将单词看作key,将次数看作value。W:表示一个非字(不是一个字,例如标点符号,空格)如果没有出现过,就在表格中创建一个新的,值为1。2.把字符串拆分成一个一个的单词,保存的数组。2.循环每个单词,如果出现过,就 +1。3.统计每个单词出现的次数。5.把结果写入一个文件中。

2024-12-05 11:22:34 251

原创 String

方法:使用+或concat方法将两个字符串连接起来。理解为数组,下标从0开始。格式:subString(起点,终点)多个字符串,拼接成一个。5. 插值. s"${变量}"String的定义和特性。7.分隔字符串 --> 数组。String的常用方法。1.2使用三引号,支持换行。8.英文全部转成大写。9.英文全部转成小写。

2024-12-04 21:35:56 200

原创 Map 题目

A.直接添加 B.抛出异常 C.创建一个新的Map D.编译错误。1.在 Scala 中,不可变Map和可变Map的主要区别是什么?3.使用gel方法查询MaP中不存在的键时,返回值是什么类型?4. 修改某本书籍的库存数量(假设可以通过键找到对应的元组并修改其中的值,3. 根据书籍编号查询某一本特定的书籍信息,使用get方法,并输出结果。(键为书籍编号,值为包含书籍名称、作者,库存数量的元组),1. 创建一个可变 Map,用于存储图书馆中的书籍信息。

2024-12-04 21:33:56 186

原创 List 题目

println(s"书名:${book.bookName},作者:${book.author},价格:${book.price}")bookList.insert(2, new Book("老人与海", "欧内斯特・海明威", 78))bookList += new Book("哈利・波特", "J.K. 罗琳", 50)bookList.prepend(new Book("呐喊", "鲁迅", 32))bookList += new Book("平凡的世界", "路遥", 70)

2024-12-04 21:32:15 358

原创 set 题目

4.检查某一本特定的书籍(如“Python 从入门到实践”)是否在图书馆集合中,7.求出两个图书馆书籍集合的交集,使用 intersect 方法,并输出结果。8.求出当前图书馆相对于另一个图书馆的差集,使用 diff 方法,并输出结果。6.求出两个图书馆书籍集合的并集,使用union 方法,并输出结果。2.添加两本新的书籍到图书馆集合中,使用+= 操作符。5.创建另一个可变Set,表示另一个图书馆的书籍集合。1.创建一个可变 Set,用于存储图书馆中的书籍信息。使用 contains 方法,并输出结果。

2024-12-04 21:28:37 192

原创 scala 的包

包名称应全部为小写,只能包含数字,字母,下划线,小圆点。不能使用数字开头,也不要用关键字。(2) 嵌套 package 表示层级关系。这样的好处是一个文件可以定义多个包,内层。package(包:一个容器。可以把类,对象,包,装入。风格 1:将包名与包合 scale 文件的目承名相间。风格 2:铁套 packege 表示层级关系。(1)一个源文件一个包,与路径名一一对应;//错误,因为class是关键字。可以访间外层的包的类和对象;类很多时,更好地管理类;// 错误,数字开头。

2024-12-04 21:07:55 245

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除