- 博客(68)
- 收藏
- 关注
原创 数据清洗-案例
代码说明:NullWritable就等价于null,context.write(value,NullWritable.get())就表示只有key,没有value。在之前的项目的基础之上,重写去写一个包,并创建两个类:WebLogMapper和WebLogDriver类。// 1. 获取一行数据,使用空格进行拆分,判断是否有8个字段。// 这条数据是有意义的,保留。// 5 设置输入和输出路径。// 4 设置最终输出类型。// 1 获取job信息。// 2 加载jar包。// 3 关联map。
2025-05-19 08:04:36
302
原创 RDD-自定义分区器案例(3)
override def numPartitions: Int = 2 // 两个分区,编号就是: 0, 1。Iterator(s"${count}件,$totalAmount")// 如果key在2001和2003之间,就返回 0。// 在分区完成之后的基础上,只保留key。// 创建一个类继承Partitioner。// 创建SparkContext。// 同时计算件数和总金额。// 使用自定义分区器。// 否则,返回 1。
2025-05-19 08:02:38
419
原创 sparkSQL读入csv文件写入mysql(4)
核心方法:dataFrame.write.mode("append").jdbc()。上面的代码运行完成之后,切换到finalshell中的mysql端,查看效果。// 创建properties对象,设置连接mysql的用户名和密码。四)Spark添加数据到mysql。// 插入一条数据到数据库。
2025-05-19 08:01:23
202
原创 spark yum配置
把yum想象成你自己开的一家商场,那么yum的源就是你的供货商。这个源已经失效了,就是你的默认供货商跑路了!如果是win11,它在Windows/system32/hosts 文件,如果是win10,它在C:\Windows\System32\drivers\etc\hosts。我们打开这个文件,并在最后一行的后边,添加三个新行,内容是:IP地址 主机名 eg:192.168.56.101 hadoop100(注:IP地址和主机名之间有一个空格)网络上的免费而稳定的源有很多,这里我们选择阿里云的源。
2025-05-19 08:00:00
320
原创 分区器和序列化
说明:这里的setNumReduceTasks的值最好与setPartitioner返回的分区器的个数一致。回顾我们的需求,我们在做词频统计的时候,把a-m开头的保存在一个文件中,n-z开头的保存在另一个文件中。下面我们来看一个例子:通过代码来定义一个类,并创建它的一个对象,把这个对象保存到文件中(序列化),然后再写代码读取这个文件并还原回来。这个泛型类的泛型是map方法输出的k2,v2的数据类型。// 2. 使用ObjectInputStream对象中的readObject方法,读取文件中的对象。
2025-05-19 07:59:46
329
原创 Spark;scp命令,rsync命令,ssh命令
伪分布式:也是在一台单机上运行,但用不同的 Java 进程模仿分布式运行中的各类节点,特点:Hadoop 启动的这些守护进程都在同一台机器上运行,是相互独立的 Java 进程。eg命令:scp -r /opt/module/jdk1.8.0_212/ root@hadoop102:/opt/module/jdk1.8.0_212/命令:rsync -av /opt/conf/1.txt root@roothadoop102:/opt/conf/$pdir/$fname :要拷贝的文件路径 / 名称。
2025-05-13 15:05:27
386
原创 Spark,hadoop 集群的常用命令
hadoop jar <JAR文件路径> <主类名> <输入路径> <输出路径>:提交一个 MapReduce 作业。hdfs dfs -rm <路径>:删除指定路径下的文件或目录,若要删除目录,需使用-r选项,如hdfs dfs -rm -r <目录路径>。put '<表名>', '<行键>', '<列族:列限定符>', '<值>':向指定表的指定行键插入数据。hdfs dfs -cp <源路径> <目标路径>:将文件或目录从源路径复制到目标路径。drop '<表名>':删除指定的表(需先禁用)。
2025-05-13 15:03:10
271
原创 Spark, MapReduce工作原理
该阶段编程模型中有一个 reduce 函数需要开发人员重写,reduce 函数的输入也是一个 <key, value> 对,reduce 函数的输出也是一个 < key,List<value>> 对。该阶段的编程模型中会有一个 map 函数需要开发人员重写,map 函数的输入是一个 < key,value > 对,map 函数的输出也是一个 < key,value > 对,key和value的类型需要开发人员指定。Shuffle:将 Map 输出的键值对按 Key 分组,发送到对应的 Reduce 节点。
2025-05-13 15:02:22
833
原创 Spark,RDD中的行动算子
返回值:该算子的返回类型为 Unit,即不返回任何有意义的值,它主要是为了执行副作用操作。格式:def reduce(func: (T, T) => T): T。格式:def foreach(f: T => Unit): Unit。返回值:返回一个单一的值,其类型与 RDD 中元素的类型相同。格式:def collect(): Array[T]count,聚合操作 eg:计算rdd中的元素之和。参数说明:该算子没有参数。
2025-05-13 15:00:08
173
原创 Spark,RDD中的转换算子
对具有相同键的所有值进行聚合操作 = 统计词频。对数字1-10进行过滤,过滤出偶数。对数字1-10进行乘除,*2。reduceByKey算子。filatMap算子。
2025-05-13 14:58:22
125
原创 Spark,在shell中运行RDD程序
/ 将元组的value按照key来分组,对所有的value执行聚合操作(相加)在根目录下可见out111文件,文件打开后可以看到,word2.txt文件内单词被拆分。在hdfs中/wcinput中创建一个文件:word2.txt在里面写几个单词。// 将单词转换为元组对象,key是单词,value是数字1。// 将单词进行切割,得到一个存储全部单词的RDD。// 收集RDD的数据并打印输出结果。// 将结果储存在out111中。// 读取文件,得到RDD。按住ctrl+D退出。
2025-05-13 14:56:13
254
原创 Spark,Idea中编写Spark程序 2
命令为:[root@hadoop100 sbin]# spark-submit --class WordCount_online --master yarn /opt/module/original-untitled-1.0-SNAPSHOT.jar /wcinput /output1。// 写一个spark程序,统计input目录下所有文本文件中单词的词频。// 将所有分区的数据合并成一个分区。// 配置 Spark 应用程序。// 读取目录下的所有文本文件。// 把结果保存在output下。
2025-05-13 14:54:25
717
原创 Spark,Idea中编写Spark程序 1
在项目根目录下建立文件夹input,并穿件两个文本文件:word1.txt, word2.txt。它的功能是wordcount的功能:从指定的文件夹中去读取文件,并做词频统计。IDEA中,默认是不支持编写Scala的,需要额外配置一个插件。添加完成之后,刷新Maven,它会帮助我们去下载依赖。// 提取文本内容并执行 WordCount 操作。如果这里没有看到Scala类的选项,就去检查第2步。-- 声明并引入共有的依赖-->// 将所有分区的数据合并成一个分区。// 读取目录下的所有文本文件。
2025-05-13 14:51:13
530
原创 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:42:15
180
原创 Spark,集群搭建之Yarn模式
对应命令为:spark-submit --class org.apache.spark.examples.SparkPi --master yarn --deploy-mode cluster /opt/module/spark-standalone/examples/jars/spark-examples_2.12-3.1.1.jar 10。进入/opt/module/spark-yarn/sbin,运行: ./start-all.sh 和 ./start-history-server.sh。
2025-05-13 14:39:26
465
原创 Spark,配置历史服务
进入 /opt/module/spark-standalone/conf/spark-default.conf.temple 先把名称改成spark-default.conf,再补充两个设置。启动hadoop的hdfs服务(start-dfs.sh),并在根目录创建目录directory。(注:4、5两步在上一条博客中直接一起配置了,所以这里可自行跳过)命令是 ./start-history-server.sh。四、修改spark-env.sh文件。命令是 ./start-all.sh。
2025-05-13 14:37:57
213
原创 Spark,集群搭建-Standalone
在之前的学习中我们有了一个软件包 spark.3.1.2-bin-hadoop3.2.tgz (eg我的在 /opt/software目录下)把这个软件包解压到 /opt/module 下(也可以自己决定解压到哪里)。进入到hadoop100机器,切换目录到/opt/module/spark-standalone/sbin下,运行命令 ./start-all.sh。打开 /opt/module/spark-standalone/conf 中可看到修改文件内容前把 .template 后缀名都删掉再打开。
2025-05-13 14:36:07
637
原创 Spark,从0开始配置Spark的local模式
4.重命名,把解压后的文件夹改成spark-local。因为后续我们还会使用其他的配置方式,所以这里先重命名一次。① 打开etc/profile.d/my_env.sh文件中,补充设置spark的环境变量。2.通过finalshell连接虚拟机,并将文件上传安装文件到 /opt/software下。进入到spark-local,运行命令spark-submit命令。3.解压spark安装文件到/opt/module下。注:一旦任务结束,则这个界面就不可访问了。从0开始配置Spark的local模式。
2025-05-13 14:34:17
239
原创 Spark和hadoop的区别与联系
实时数据处理(如 Spark Streaming)、交互式查询(如 Spark SQL)、机器学习(MLlib)、图计算(GraphX)等多场景。组合使用:实际场景中常采用“Hadoop存储数据 + Spark处理数据”的架构,充分利用两者的优势,例如在HDFS上存储原始数据,通过Spark进行实时分析和复杂计算。总之,Hadoop是大数据领域的“地基”,而Spark是构建在其上的“多功能工具”,两者共同推动了大数据技术的发展和应用。二、Spark和Hadoop的区别。1. 同属大数据生态体系。
2025-05-13 14:32:42
338
原创 Spark,数据压缩
四、打开我们之前的项目(是下面这个哦)在下面位置添加下下面代码//开启reduce端压缩然后在第七点上面添加//设置reduceTask的数量//产生结果的时候,会用3个文件来保存// 设置自定义分区器//设置reduce的个数。
2025-05-13 14:31:43
323
原创 Spark,序列化反序列化
/ 1. 创建一个ObjectInputStream对象,构造方法中传入一个InputStream对象。// 2. 使用ObjectInputStream对象中的readObject方法,读取文件中的对象。序列化就是把内存中的对象,转换成字节序列(或其他数据传输协议)以便于存储到磁盘(持久化)和网络传输。反序列化就是将收到字节序列(或其他数据传输协议)或者是磁盘的持久化数据,转换成内存中的对象。常用的Java的数据类型与Hadoop的序列化的类型对比。// 反序列化:将字节序列转换为内存中的对象。
2025-05-12 11:16:31
1027
原创 Spark,maven打包
流式计算的输入数据是动态的,会一条一条的过来,是动态产生的,而MapReduce的输入数据集是静态的,不能动态变化。注:我们集群上安装的java环境是1.8的,那么我们生成的代码也必须是这个版本的,否则,就会无法运行。注:我们集群上安装的java环境是1.8的,那么我们生成的代码也必须是这个版本的,否则,就会无法运行。我们集群上安装的java环境是1.8的,那么我们生成的代码也必须是这个版本的,否则,就会无法运行。当你的计算资源不能得到满足的时候,你可以通过简单的增加机器来扩展它的计算能力。
2025-05-12 11:15:10
406
原创 Standalone
进入到hadoop100机器,切换目录到/opt/module/spark-standalone/sbin下,运行命令 ./start-all.sh。进入/opt/module/把解压的内容重命名一下,mv spark-3.1.1-bin-hadoop3.2/ spark-standalone。注意,这里不要省略./,它表示的是当前目录下的start-all命令,如果省略了./,它就会先去环境变量PATH中指定的目录来找这个命令。11.查看启动效果。(linux,ip设置,能ping 百度),免密互联。
2025-05-12 11:04:43
332
原创 从0开始配置spark-local模式
这里使用单机模式快运行第一个Spark程序,让大家有个基本的印象。在安装Spark时,它就提供了一些示例程序,我们可以直接来调用。进入到spark-local,运行命令spark-submit命令。mv是linux的命令,这里的 \ 是换行输入的意思,整体的代码就只有一句,只不过太长了,我们把它拆开成几个部分来输入,其中\ 的意思就是这里写不下,写在下一行。接下来的操作,我们把它上传到集群中的节点,并解压运行。1.打开etc/profile.d/my_env.sh文件中,补充设置spark的环境变量。
2025-05-06 15:03:14
322
原创 spark集群配置
刚才我们是在hadoop100这台机器上进行了正确的设置,但是,其他的2台机器也要做相同的配置。这里一共有5个文件要配置:分别是core-site.xml,hdfs-site.xml,yarn-site.xml,配置/opt/module/hadoop-3.1.3/etc/hadoop。配置/opt/module/hadoop-3.1.3/etc/hadoop。-- 指定ResourceManager的地址-->-- 指定hadoop数据的存储目录 -->-- 指定NameNode的地址 -->
2025-05-06 14:35:48
890
1
原创 hadoop与spark的区别和联系
Hadoop 的 YARN 是资源管理系统,负责集群资源的管理和调度。对于一些复杂的大数据处理任务,可先用 Hadoop 的 MapReduce 进行初步的数据清洗和预处理,将处理后的数据存储在 HDFS 中,再利用 Spark 进行后续的复杂分析和计算,如机器学习模型训练、实时数据分析等。Hadoop:主要采用 MapReduce 编程模型,该模型将数据处理分为 Map 和 Reduce 两个阶段,编程模型相对简单,但对于复杂的迭代计算任务,需要多次编写 MapReduce 程序,开发效率较低。
2025-04-21 08:34:09
694
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人