自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 如何将两台虚拟机进行搭桥

若需测试端口互通,可在虚拟机 A 中启动服务(如 python -m http.server 8080 ),在虚拟机 B 中用 curl http://A-IP:8080 验证。通过以上配置,两台虚拟机可实现 同一虚拟网络内的互通,具体模式根据需求选择(桥接模式用于接入物理网络,仅主机/自定义网络用于隔离环境)。- 若需虚拟机与主机隔离,仅互通,使用 自定义网络(VMware) 或 仅主机网络(VirtualBox),不绑定物理网卡。

2025-05-18 23:36:52 451

原创 Spark和Hadoop的区别与联系

◦ 实际应用中,常将 Hadoop 作为数据存储层,Spark 作为计算层,形成 Hadoop + Spark 的组合(例如:HDFS 存储数据 → Spark 读取数据并计算 → 结果存回 HDFS 或其他系统)。Hadoop:依赖 MapReduce 模型,任务需分阶段执行(Map → Shuffle → Reduce),每次阶段切换都需读写磁盘,导致延迟较高,适合单次大规模计算,但不适合需要反复迭代的场景(如深度学习模型训练)。定位:分布式计算框架,专注于高效的数据处理(尤其是实时计算和复杂算法)。

2025-05-18 23:34:56 406

原创 Spark,数据提取和保存

mode("overwrite") // 模式:overwrite/append/ignore/errorIfExists。- inferSchema : 是否自动推断数据类型(适用于 CSV/JSON,需读取少量数据,影响性能)。- 对于大规模数据,建议使用分区并行写入(如 option("numPartitions", "4") )。.option("inferSchema", "true") // 自动推断数据类型。1. 读取文件数据(文本/CSV/JSON/Parquet 等)

2025-05-18 23:34:21 489

原创 Spark,SparkSQL操作Mysql, 创建数据库和表

option("dbtable", "(CREATE DATABASE IF NOT EXISTS test_db) AS dummy") // 执行建库语句。val createDbDf = spark.createDataFrame(Seq.empty[(String)]) // 空 DataFrame。// 使用 Spark SQL 执行原生 MySQL 语句(需通过 JDBC 提交).option("dbtable", "users") // 表名。// 执行建表语句(通过 JDBC 提交)

2025-05-18 23:33:50 605

原创 Spark,连接MySQL数据库,添加数据,读取数据

val writeMode = "append" // 写入模式:append(追加)、overwrite(覆盖)、ignore(忽略重复)、errorIfExists(冲突报错).option("driver", "com.mysql.cj.jdbc.Driver") // 驱动类(可选,Spark会自动推断).option("partitionColumn", "id") // 分区字段(需为数字类型).option("numPartitions", "4") // 分区数(并行度)

2025-05-18 23:33:02 521

原创 配置hosts

2. 添加映射:按 i 进入编辑模式,添加 IP地址 主机名 (如 192.168.1.100 hadoop100 )。修改 C:\Windows\System32\drivers\etc\hosts ,用记事本打开后添加映射,保存需管理员权限。4. 生效:无需重启,直接生效(可通过 ping 主机名 验证)。3. 保存退出:按 Esc ,输入 :wq 保存并退出。

2025-05-18 23:32:20 237

原创 如何使用scp命令拉取其他虚拟机中文件

免密优化:提前配置 SSH 互信( ssh-copy-id ),避免重复输密码。scp 目标主机用户@目标主机IP:源文件路径 本地保存路径。

2025-05-18 23:31:46 177

原创 使用scp命令拷贝hadoop100中文件到其他虚拟机中

从 hadoop101 拉取 /data/report.csv 到 hadoop100 的 /tmp/ 目录。files=("/data/config.txt" "/data/scripts") # 需拷贝的文件/目录列表。# 拷贝本地文件 /data/file.txt 到 hadoop101 的 /data/ 目录。hosts=("hadoop101" "hadoop102") # 目标主机列表。- 源路径为 hadoop100 的本地路径,目标路径为远程主机的路径。

2025-05-18 23:05:00 515

原创 配置hadoop集群-启动集群

(1)如果集群是第一次启动,需要在hadoop100节点(指定为namenode的节点)格式化NameNode(注意:格式化NameNode,会产生新的集群id)(3)在配置了ResourceManager的节点(hadoop101)启动YARN。在环境变量中添加/etc/profile.d/my_env.sh。(a)浏览器中输入:http://hadoop100:9870。(1)Web端查看HDFS的NameNode。(3)查看YARN上运行的Job信息。#添root加环境变量。(十)查看集群运行效果。

2025-05-13 15:22:54 244

原创 测试集群的功能-执行wordcount程序

在集群根目录下创建wcinput目录,并在它的下面上传两个文本文件word1.txt, word2.txt,其中保存了要测试的单词信息。在任意一台设备中,进入到hadoop的主目录。在如下网站查看运行的过程和记录http://hadoop101:8088/cluster。确保hadoop是正确运行的。hdfs和yarn都正常启动了。

2025-05-13 15:21:30 146

原创 配置Hadoop集群-配置历史和日志服务

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

2025-05-13 14:54:48 621

原创 shell操作文件上传

把本地的文件上传到HDFS,并删除本地的文件。它有两种操作,一是移动,会把当前的文件删除,二是复制,保留当前的文件。使用-rm -r命令, 它用来删除目录及目录里面内容,它的格式是: -rm -r 要删除的文件夹。示例需求: 把服务器上的shuguo.txt 下载到hadoop100的 files目目录下。使用-mv命令,它的格式是: hadoop fs -mv 文件起点 终点。hadoop fs -get 服务器上的文件路径 本地文件路径。使用-rm 命令,它的格式是: -rm 要删除的文件。

2025-05-13 14:51:06 466

原创 HDFS概述

HDFS(Hadoop Distributed File System),它是一个文件系统,用于存储文件,通过目录树来定位文件;其次,它是分布式的,由很多服务器联合起来实现其功能,集群中的服务器有各自的角色。随着数据量越来越大,在一个操作系统存不下所有的数据,那么就分配到更多的操作系统管理的磁盘中,但是不方便管理和维护,迫切需要一种系统来管理多台机器上的文件,这就是分布式文件管理系统。仅仅支持数据append(追加),不支持文件的随机修改;1. 不适合低延时数据访问,比如毫秒级的存储数据,是做不到的。

2025-05-13 14:50:27 148

原创 Spark,IDEA编写Maven项目

在IDEA中选择 Create New Project > Maven > 勾选Create from archetype > 选择 maven-archetype-quickstart ,点击下一步。-- 如com.example.SparkApp -->-- Spark SQL(按需添加其他模块,如spark-streaming) -->-- Maven打包插件(可选,用于生成可执行JAR) -->-- 开发时使用local模式,无需打包进最终JAR -->-- Scala编译插件 -->

2025-05-13 14:48:43 969

原创 Spark,集群搭建之Yarn模式

Yarn全局资源需在 yarn-site.xml 中配置(如 yarn.nodemanager.resource.memory-mb )。spark.eventLog.dir hdfs://nameservice1/spark-logs # HDFS日志路径(需提前创建)- 官网下载对应Hadoop版本的Spark(如 spark-3.5.0-bin-hadoop3 ),上传至主节点。- 通过 --executor-memory 和 --executor-cores 控制单个Executor资源。

2025-05-13 14:48:01 495

原创 Spark,集群搭建-Standalone

export JAVA_HOME=/usr/lib/jvm/java-11-openjdk # 替换为实际路径。export SPARK_MASTER_IP=master_hostname # 主节点主机名/IP。- 官网下载对应版本(如 spark-3.5.0-bin-hadoop3 ),上传至主节点。- 主节点Web界面: http://master_ip:8080 ,查看从节点是否在线。ssh-copy-id slave1 # 替换为从节点主机名/IP。2. 分发Spark到从节点。

2025-05-13 14:47:18 375

原创 Spark,RDD中的转换算子

对具有相同键的所有值进行聚合操作 = 统计词频。对数字1-10进行过滤,过滤出偶数。对数字1-10进行乘除,*2。reduceByKey算子。filatMap算子。

2025-05-13 14:46:24 172

原创 Spark,在shell中运行RDD程序

在根目录下可见out111文件,文件打开后可以看到,word2.txt文件内单词被拆分。// 将元组的value按照key来分组,对所有的value执行聚合操作(相加)在hdfs中/wcinput中创建一个文件:word2.txt在里面写几个单词。进入环境:spark-shell --master yarn。// 将单词转换为元组对象,key是单词,value是数字1。// 将单词进行切割,得到一个存储全部单词的RDD。// 将结果储存在out111中。// 读取文件,得到RDD。按住ctrl+D退出。

2025-05-13 14:43:30 175

原创 Spark,Idea中编写Spark程序 1

8.准备待统计的词频文件。在项目根目录下建立文件夹input,并穿件两个文本文件:word1.txt, word2.txt。它的功能是wordcount的功能:从指定的文件夹中去读取文件,并做词频统计。如果这里没有看到Scala类的选项,就去检查第2步。添加完成之后,刷新Maven,它会帮助我们去下载依赖。IDEA中,默认是不支持编写Scala的,需要额外配置一个插件。// 提取文本内容并执行 WordCount 操作。// 将所有分区的数据合并成一个分区。// 读取目录下的所有文本文件。

2025-05-13 14:39:41 901

原创 Spark,所用几个网页地址

YARN的ResourceManager网址:http://hadoop101:8088。History Server网址:192.168.56.100:18080。HDFS的NameNode网址:http://hadoop100:9870。2. MapReduce:计算。1. HDFS:存储。3. YARN:调度。

2025-05-13 14:35:57 159

原创 如何在idea中写spark程序。

打开 File > Settings > Build, Execution, Deployment > Application Servers ,添加 Spark 路径(指向解压后的 spark-3.3.2-bin-hadoop3 目录)。- 从 Spark 官网 下载对应版本的预编译包(如 spark-3.3.2-bin-hadoop3 ),解压到本地(如 C:\spark )。- 本地调试失败:确保 setMaster("local[*]") 正确,且文件路径为本地绝对路径。

2025-05-13 14:34:31 403

原创 如何搭建spark yarn 模式的集群集群。

配置调优:根据服务器资源调整 yarn.nodemanager.resource.memory-mb (YARN 内存)和 Spark 任务参数(如 --executor-memory )。- hadoop-env.sh :指定 JDK 路径(如 export JAVA_HOME=/usr/java/jdk1.8.0_301 )。echo "export SPARK_MASTER_IP=主节点IP" >> /opt/spark/conf/spark-env.sh。

2025-05-13 14:33:37 415

原创 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-05-13 14:32:52 345

原创 配置虚拟机lp地址

linux中,ip地址是写在配置文件(/etc/sysconfig/network-scripts/ifcfg-ens33)中,这里使用 vi 编辑器去修改即可!如果不进行设置,每次启动机器时都可能是随机的IP,不方便我们后续操作。命令如下:vi /etc/sysconfig/network-scripts/ifcfg-ens33。注意:这里的第三个部分的10并不是固定的,我们自己可以约定,但是约定之后就要固定下来。让所有的vm配置的虚拟机使用NAT时,它们的网段都是一致的。(3)设置虚拟机的IP。

2025-03-03 19:26:10 348

原创 如何安装VM和CentOS

安装CentOS:准备好CentOS的ISO镜像文件,打开VMware Workstation,选择“创建新的虚拟机”,在创建过程中选择自定义(高级)安装类型,指定CentOS的ISO镜像文件作为安装源,设置虚拟机的硬件配置,如内存、CPU等。设置完成后,在虚拟机中启动CentOS的ISO镜像文件,进入安装界面,选择安装语言、时区、磁盘分区等配置选项,配置网络设置,按照提示完成安装。

2025-03-03 19:23:07 210

原创 VI编译器

三个模式:三种模式的切换:

2025-02-24 21:52:56 156

原创 VM虚拟机操作

rm -rf:删除文件夹,不提示。mkdir -p:创建子目录。rm -f:删除文件,不提示。rm -rf /*:删库跑路。touch:新建一个空文件。rm -r:删除文件夹。mkdir:新建目录。

2025-02-24 21:52:14 561

原创 Scala泛型的上下界

scala

2025-02-24 21:51:42 105

原创 12.9 第三四节课代码

scala

2025-02-24 21:49:40 286

原创 Scala的隐式对象,隐式类

要点:要有一个参数,就要待被转换的类型,返回的类型就是当前的类。格式:在class 的前面,添加implicit。格式:就是在对象前面加一个 implicit。隐式类 == 一个类 + 一个隐式转换函数。引入别的程序内的隐式转换,计算。作用:就是给函数当默认值!

2025-02-24 21:47:33 149

原创 Scala的泛型

定义格式:trait 特质名[泛型]使用格式:特质名[具体的类型]

2024-12-30 08:11:25 216

原创 Scala之前学习的思维导图

2024-12-10 21:28:19 103

原创 Scala的课堂小结

(一)数组:1.不可变数组2创建数组

2024-12-10 21:27:48 211

原创 scala的隐式函数

需求:让字符串增加一个功能:isPhone() 检查当前字符串是否是一个合法的手机号。1. 在函数的默认参数的前面补充关键字:implicit。隐式值:能够自己设置参数默认值,而不是在代码中固定写死。2. 在定义变量的前面 补充关键字:implicit。3. 调用函数式,不加()

2024-12-10 21:26:24 250

原创 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 07:00:00 389

原创 Scala的条件匹配

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

2024-12-05 00:16:35 260

原创 Scala的全文单词统计

writer.println("姓名,语文成绩,数学成绩,英语成绩,总分,平均分")val avg = f"${s.avg}%.1f" //只保留一位有效数字。val avg = f"${s.avg}%.1f" //只保留一位有效数字。val avg = f"${s.avg}%.1f" //只保留一位有效数字。val avg = f"${s.avg}%.1f" //只保留一位有效数字。val arr = it.next().split(",")//中文逗号。eg:42湖北,33浙江,11北京,31上海。

2024-12-05 00:14:47 1527

原创 Scala的全文单词统计

Map是无序,要对其进行排序,要先把数组转成序列。List,Array。// W:表示一个非字(不是一个字 eg:空格,逗号,句号……//2.把字符串拆分为一个一个的单词,保存到数组。//3.统计每个单词出现的次数。//5.把结果写到一个文件中。// \\:表示正则表达式。2.把字符串拆分成一个一个的单词。1.读取文件,得到很长的字符串。object 全文单词统计 {//1.读入文件内容。// W+:多个非字。3.统计每个单词出现的次数。5.把结果写入到一个文件中。

2024-12-05 00:05:28 445

原创 Scala的字符串

/3.创建一个字符串,包含姓名、年龄和成绩(如"John,20,85")通过字符串方法提取出年龄和成绩,并将成绩转换为整数类型。3.创建一个字符串,包含姓名、年龄和成绩(如"John,20,85")通过字符串方法提取出年龄和成绩,并将成绩转换为整数类型。//1.创建一个字符串表示的浮点数,将其转换为浮点效英型,然后再将这个浮点数类型,然后再将这个浮点数转换回字符串并打印。1.创建一个字符串表示的浮点数,将其转换成浮点数类型,然后再将这个浮点数转换回字符串并打印。序列Seq表示有先后顺序的集合,保存数据。

2024-12-05 00:03:57 1895

原创 Scala的迭代器

在Scala中,迭代器(Iterator)是一种用于遍历集合(如数组、列表、集合等)的元素而不暴露其底层表示的对象。迭代器提供了一种统一的方法来访问集合中的元素,而无需关心集合的具体实现。在Scala中,可以通过调用集合的`iterator`方法或`toIterator`方法来获取一个迭代器。迭代器是Scala集合框架中非常重要的一部分,它们提供了一种高效且灵活的方式来遍历和处理集合中的元素。next(): 返回迭代器的下一个元素,并移动到下一个元素。1.hasNext: 检查迭代器是否还有更多元素。

2024-12-05 00:03:00 263

空空如也

空空如也

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

TA关注的人

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