自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Spark和Hadoop的区别与联系

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

2025-05-18 17:32:44 387

原创 Spark,数据提取和保存

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

2025-05-18 17:32:15 436

原创 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 17:31:24 536 1

原创 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 17:30:27 736

原创 配置hosts

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

2025-05-13 15:43:59 416

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

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

2025-05-13 15:42:58 231

原创 使用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-13 15:41:54 548

原创 克隆虚拟机组成集群

1. 修改IP地址:以CentOS系统为例,登录克隆后的虚拟机,进入 /etc/sysconfig/network - scripts/ 目录,编辑网卡配置文件(如 ifcfg - ens33 ),将 IPADDR 修改为不同的、在同一网段的地址。3. 开始克隆:右键虚拟机,选择“管理”>“克隆”,在克隆向导中,选择“当前状态”,然后选择“创建完整克隆”,设置克隆虚拟机的名称和保存位置,点击“完成”开始克隆。4. 重复克隆:按照上述步骤,根据需要克隆出多台虚拟机。

2025-05-13 15:40:18 132

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

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

2025-05-13 15:39:15 610

原创 如何同步虚拟机文件夹

在Windows系统中,右键点击需共享的文件夹,选择“属性”->“共享”->“高级共享”,勾选“共享此文件夹”并设置共享名称和权限。- VirtualBox:打开VirtualBox选择虚拟机,点击“设置”,选择“共享文件夹”,点击“添加”设置相关信息,保存后启动虚拟机并安装VirtualBox Guest Additions后可访问。- VMware:打开虚拟机,选择“虚拟机”->“设置”,在“选项”中选择“共享文件夹”,点击“添加”选择共享文件夹并选共享模式,保存设置后重启虚拟机即可。

2025-05-13 15:36:51 235

原创 spark sql基本操作

它允许用户使用标准的 SQL 语法来查询数据,并且可以无缝地与 Spark 的其他功能(如 DataFrame、Dataset 和 RDD)结合使用。Spark SQL 支持标准的 SQL 语法,允许用户使用 SQL 查询语句来操作 DataFrame 或 Dataset。SparkSession 是 Spark SQL 的入口点,用于创建 DataFrame 和执行 SQL 查询。以下是一个完整的 Spark SQL 示例代码,展示了如何读取数据、注册视图、执行 SQL 查询并保存结果。

2025-05-13 15:35:38 361

原创 hadoop中创建MySQL新数据库数据表

在Hadoop环境中创建MySQL数据库和数据表,通常需要通过MySQL命令行工具来完成,而不是直接在Hadoop中操作。将MySQL JDBC驱动包(如mysql-connector-java-8.0.23.jar)复制到Hive的lib目录。可以使用USE命令切换到目标数据库,然后使用CREATE TABLE命令创建表。此命令会在mydb数据库中创建一个名为mytable的表,包含id和name两个字段。登录MySQL后,使用CREATE DATABASE命令创建一个新的数据库。-- 查看所有数据库。

2025-05-13 15:35:24 270

原创 在scala中sparkSQL读入csv文件

option("inferSchema", "true") // 自动推断数据类型(如 Int、Double).option("nullValue", "NA") // 将 "NA" 识别为空值。.master("local[*]") // 单机模式,集群改为 "yarn" 等。.option("quote", "\"") // 文本字段引号(默认双引号).option("escape", "\"") // 转义符(处理嵌套引号).option("header", "true") // 首行作为表头。

2025-05-13 15:29:59 530

原创 在scala中sparkSQL连接masql并添加新数据

val driverClass = "com.mysql.cj.jdbc.Driver" // MySQL 8+ 驱动类(5.x 用 com.mysql.jdbc.Driver)- 若报 ClassNotFoundException ,检查驱动是否正确部署(通过 --jars 参数或放入 $SPARK_HOME/jars/ )。mode = "append", // 写入模式:append(追加)、overwrite(覆盖)等。- append :数据追加到现有表(表需存在)。

2025-05-13 15:28:14 416

原创 spark Mysql数据库配置

下载驱动:从 Maven 仓库 下载与 MySQL 服务端版本匹配的 mysql-connector-java-X.X.XX.jar (如 MySQL 8.0 对应 8.0.33 版本)。- MySQL 5.x 驱动类名为 com.mysql.jdbc.Driver ,8.x 及以上为 com.mysql.cj.jdbc.Driver。prop.setProperty("driver", "com.mysql.cj.jdbc.Driver") // MySQL 8+ 驱动类名。

2025-05-13 15:26:37 471

原创 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-12 11:16:07 1044

原创 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-12 11:14:57 419

原创 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-12 11:13:43 537

原创 Spark,RDD中的转换算子

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

2025-05-12 11:11:13 285

原创 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-12 11:09:26 526

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

命令为:[root@hadoop100 sbin]# spark-submit --class WordCount_online --master yarn /opt/module/original-untitled-1.0-SNAPSHOT.jar /wcinput /output1。修改两个地方:输入目录改成args(0), 输出的目录改成args(1)。出现结果如下即为运行成功。

2025-05-12 11:07:56 791

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

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

2025-05-12 11:06:58 898

原创 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-12 11:04:23 258

原创 如何在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-06 15:03:26 632

原创 如何搭建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-06 15:01:18 642

原创 spark 的流量统计案例

创建一个目录为data。

2025-04-08 16:05:04 216

原创 mapreduce的工作原理

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

2025-03-31 19:59:31 363

原创 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-03-31 19:57:49 486

原创 spark 虚拟机IP配置

这里要注意一下:VMware net work Adpater VMnet8是安装了Vm这个软件之后会自动产生的。重启的命令是reboot,检查是否能Ping通外网。注意:这里的第三个部分的10并不是固定的,我们自己可以约定,但是约定之后就要固定下来。让所有的VM配置的虚拟机使用NAT时,它们的网段都是一致的。修改完成之后,esc退出编辑模式, :wq 保存退出。配置即让自己的虚拟机可以联网,和别的虚拟机通讯。三、设置虚拟机hadoop100的IP。具体设置为:进入虚拟机,修改对应的IP。

2025-03-03 19:48:26 311

原创 如何安装vm 和centos

创建虚拟机:打开VMware Workstation,点击“创建新的虚拟机”,选择“自定义(高级)”,按提示点击“下一步”;配置虚拟机:点击“编辑虚拟机设置”,在“CD/DVD”选项中,勾选“启动时连接”,选择“使用ISO映像文件”,浏览找到下载的CentOS镜像文件,点击“确定”。输入许可证密钥:安装完成后,点击“许可证”,输入有效的许可证密钥,点击“输入”,也可选择试用。选择安装位置:可使用默认位置,也可点击“更改”选择其他路径,之后点击“下一步”。开始安装:点击“开始安装”,等待安装完成。

2025-02-24 23:02:08 234

原创 spark vi基本使用

1.如果这个文件不存在,此时就是新建文件,编辑器的左下角会提示:new file。d(一个小d)加←删除左侧一个单词,d(一个小d)加→删除右侧一个单词。vi编辑器有三种工作模式,分别为:命令模式,输入模式,底线模式。2.如果文件已存在,此时就打开这个文件,进入命令模式。底线命令模式:以:开始,通常用于文件的保存和退出。2.nyy(n+两个小y)复制当前行往下n行内容。2.ndd(n+两个小d)用来删除当前行往下n行。nyy(n+两个小y)复制当前行往下n行内容。1.yy(两个 y)复制光标所在行的内容。

2025-02-24 22:30:41 344

原创 spark 虚拟机基本命令(2)

会把aaa、这三个字符写入a.txt文件,并把之前的内容全部覆盖掉(等价于先删除了a.txt的内容,再写入aaa)会把文件的最尾部的内容显示在屏幕上,并且不断刷新,只要文件有更新,就可以看到最新的文件内容。命令是:tar -cvf test.tar 1.txt 2.txt 3.txt。示例1:把1.txt,2.txt,3.txt压缩到test.tar文件中。格式:tar -cvf 压缩包.tar 文件1 文件2 文件3。-c 建立一个压缩文件,把多个文件或文件夹压缩到一个新的文件中。功能:压缩或解压文件。

2025-02-24 22:26:45 411

原创 spark 虚拟机(Linux)基本命令

波浪线,当前用户的home目录,比如root用户home目录是/root。rm -rf ./bbb 将目录及以下所有递归逐一删除,无需用户确认。相对路径:当前相对当前工作目录开始的路径,会随着当前路径变化而变化。rm -rf /* 将根目录及以下所有递归逐一删除,无需用户确认。mkdir -p:创建目录,如果父级目录不存在,就建立一个新目录。删除文件无需用户确如 rm -f +文件名 (慎用!ll -a 命令,显示当前的目录下的文件,包括隐藏文件。ll 命令,用来显示当前的目录下的文件。

2025-02-24 22:14:16 123

原创 Spark(1)

特点:提高处理能力:通过将任务分散到多个节点上并行计算,能够大大提高数据处理的速度和效率,从而可以在短时间内处理海量数据,满足大数据时代对数据处理的实时性和高效性要求。1.硬件资源有限:单机系统的计算能力、存储容量和内存空间都受限于单台计算机的硬件配置。1.无法处理大规模数据:随着业务的发展和数据量的增长,单机系统很快就会遇到存储和处理能力的瓶颈,无法应对海量数据的存储和分析需求。3.应用场景简单:主要用于个人办公、简单的游戏娱乐或小型企业的基本业务处理,如文字处理、单机游戏、简单的库存管理等。

2025-02-24 11:28:12 355

原创 Scala的异常

A. try 的中文是试一试,catch是捕获,finally是最后的。关于try catch finally 的说法正确的是( D )C. 把是否有异常,finally 中的代码一定会执行。} finally { //可选 (即可写可不写)在scala中,1/0会导致如下什么异常( C )无论是否有异常发送,都会做的事情 //可选。B. 把可能会出现异常的代码写在 try 中。异常如果不处理,会导致整个程序崩溃!D. catch 中不能获取具体异常信息。发生异常之后的处理逻辑。异常:不是正常的情况。

2024-12-18 20:13:32 483

原创 Scala的泛型界限

如果给某个泛型设置了上界:这里的类型必须是上界。如果给某个泛型设置了下界:这里的类型必须是下界。对类型的更加具体的约束!

2024-12-18 20:11:28 528

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

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

2024-12-18 20:09:52 577

原创 Scala的泛型

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

2024-12-18 20:02:55 395

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

2024-12-08 22:06:02 149

原创 Scala的课堂小结

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

2024-12-08 22:02:53 325

空空如也

空空如也

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

TA关注的人

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