- 博客(72)
- 收藏
- 关注
原创 hadoop集群的常用命令
hadoop fs -count / # 统计文件数量,返回的数据是目录个数,文件个数,文件总计大小,输入路径。hadoop fs -du -s -h / #统计这个文件夹总大小,返回的数据是,文件夹大小,备份总大小。hadoop fs -du -h / # 统计文件夹下每个文件的大小。把hdfs一堆小文件合并到本地的一个文件中。查看yarn正在运行的任务列表。查找yarn已经完成的任务列表。查找yarn所有任务列表。
2025-05-14 14:34:56
112
原创 数据清洗-日志
/ 1. 获取一行数据,使用空格进行拆分,判断是否有8个字段。// 这条数据是有意义的,保留。// 设置reducetask个数为0。(1)编写WebLogMapper类。(2)编写WebLogDriver类。// 5 设置输入和输出路径。// 4 设置最终输出类型。// 1 获取job信息。// 2 加载jar包。// 3 关联map。
2025-05-14 14:34:16
896
原创 mapreduce
该阶段编程模型中有一个 reduce 函数需要开发人员重写,reduce 函数的输入也是一个 <key, value> 对,reduce 函数的输出也是一个 < key,List<value>> 对。Reduce是会跨节点fetch属于自己的数据,并进行处理,把结果进行汇总,存储到HDFS。该阶段的编程模中有一个 map 函数需要开发人员重写,map 函数的输入是一个 < key,value > 对,map 函数的输出也是一个 < key,value > 对,key和value的类型需要开发人员指定。
2025-05-14 14:32:26
329
原创 mysql数据库配置
假设要存储的数据包含四个字段:`userId`, `productId`, `score`, 和 `timestamp`。- **设定 JDBC 参数**:构建合适的连接字符串以及认证信息。- **调整性能选项**:采用批处理方式加快大数据量传输速度。- **确认连通性状况**:预先排除潜在网络或者安全层面障碍。- **配置用户权限**:赋予适当的操作权限给应用程序使用。- **实施索引策略**:增强未来可能涉及的各种查询效能。- **创建数据库和表**:设计适合存储数据的结构。
2025-05-14 14:31:01
282
原创 如何进行流量统计二
再去提交job和进行关联mapper和reducer进行汇总设置输出类型路径。进行运行生成一个output目录 part-r-00000中则会生成结果。再继承Reducer,并重写reduce函数。
2025-05-13 10:16:26
188
原创 RDD自定义分区器
分区器的唯一性:分区器的 equals 和 hashCode 方法需要正确实现,以确保分区器在 Spark 的内部逻辑中能够正确识别。分区逻辑:getPartition 方法中的逻辑应根据实际业务需求定义,确保数据能够正确分区。通过以上步骤,你可以实现一个自定义分区器,并根据特定的业务逻辑对 RDD 进行分区。分区数量:分区数量应根据实际需求合理设置,过多或过少的分区都会影响性能。使用 partitionBy 方法将 RDD 按自定义分区器进行分区。使用自定义分区器对 RDD 进行分区。
2025-05-13 09:37:21
153
原创 sparksql
2014 年 1.0 版本更新,Shark 和 SparkSQL 项目的负责人宣布停止 Shark 的开发,支持 Shark 发展到达终点,SparkSQL 的时代到来2。易整合:SparkSQL 无缝整合了 SQL 查询与 Spark 编程,可以随时用 SQL 或者 DataFrame 的 API 进行处理结构化数据,并且支持多语言(Java、Scala、Python、R)2。统一的数据访问:使用相同的方式,连接不同的数据源或者不同文件格式中的数据,支持读写数据从不同的数据来源到不同的数据来源2。
2025-05-13 09:36:31
220
原创 hadoop集群常用命令
文件权限管理: hdfs dfs -chmod permissions hdfs_path hdfs dfs -chown owner:group hdfs_path 修改 HDFS 文件的权限和所有者。合并下载: hdfs dfs -getmerge hdfs_source_path local_destination_file 将 HDFS 中的多个文件合并后下载到本地。查看文件内容: hdfs dfs -cat hdfs_file_path 查看 HDFS 中某个文件的内容。
2025-05-13 09:35:54
147
原创 MapReduce工作原理
Reduce 阶段: 输入:Reduce 阶段接收 Shuffle 阶段处理后的数据。处理:Reduce 函数对相同键的值进行合并计算,生成最终结果。输出:Reduce 函数的输出是最终结果,通常存储在 HDFS 中^1^。Map 阶段: 输入:Map 阶段接收输入数据,通常是键值对(key-value pairs)。输出:Map 函数的输出是新的键值对,这些中间结果将传递给 Reduce 阶段^1^。Shuffle 阶段: 分区:将 Map 阶段的输出数据进行分区,每个分区对应一个 Reduce 任务。
2025-05-13 09:35:23
151
原创 序列化和反序列化(java)
/java反序列化:从文件student_java.ser中读出内容,还原这个对象。// //1.让这个类实现Serializable接口。//1.让这个类实现Serializable接口。// //java序列化:把对象保存到一个文件中。//java序列化:把对象保存到一个文件中。// //3.把对象写入到文件中。//3.把对象写入到文件中。// //2.创建一个输出流。//2.创建一个输出流。// //4.关闭。
2025-05-13 09:34:50
332
原创 序列化和反序列化(hadoop)
/readFields:在反序列化的时候,调用。// //hadoop序列化:把对象保存到一个文件中。//dataOutput.write(字段);//hadoop序列化:把对象保存到一个文件中。//write:在序列化的时候,调用。//字段=dataInput.read();//hadoop反序列化:从文件中读取对象。//字段的顺序要与write中的顺序一致。//1.要实现Writable接口。//支持hadoop序列化。//2.补充一个空参构造。//学生类,姓名,年龄。
2025-05-13 09:34:18
217
原创 RDD运行过程
一个RDD是一个分布式对象集合, 本质上是一个只读的分区记录集合. 一个RDD可以分成多个分区, 每个分区可以在不同的集群节点上被保存, 从而实现并行处理. RDD提供一种高度受限的共享内存模型, 即RDD是只读的记录分区集合, 不能直接修改, 只能基于稳定的物理存储中的数据集来创建RDD, 或者通过其他RDD转换来得到新的RDD. RDD的数据运算有两种类型, 分别是 "行动" 和 "转换". 前者用于执行计算并指定输出形式, 后者指定RDD之间的相互依赖关系.
2025-05-13 09:21:17
105
原创 spark-cache模式
4. cache & persist & checkpoint 的特点和区别。6.MEMORY_ONLY_2, MEMORY_AND_DISK_2, 等等。二、cache & persist 的持久化级别及策略选择。2. RDD cache & persist 缓存。3. RDD CheckPoint 检查点。1.什么时候该使用持久化(缓存)
2025-05-13 09:19:40
188
原创 spark-local模式
通过mv spark-3.3.1-bin-hadoop3 spark-local这个命令将解压后的文件夹改成spark-local(重命名是为了后续我们还会使用其他的配置方式,所以这里先重命名一次。三、通过tar -zxvf spark-3.3.1-bin-hadoop3.tgz -C /opt/module/这个命令将spark安装文件到/opt/module下。二、通过finalshell连接虚拟机,连接成功后打开/opt/software,将我们的压缩文件拉到这个目录下。一、首先打开我们的虚拟机。
2025-05-13 09:13:51
183
原创 spark-standalone
进入到hadoop100机器,切换目录到/opt/module/spark-standalone/sbin下,运行命令 ./start-all.sh。6.进入/opt/module/spark-standalone/conf这个目录,修改workers.template文件,将后缀名去掉,然后点进去,添加下列内容。一、定义:Standalone 模式是一种独立的集群部署模式,自带完整服务,可单独部署到一个集群中,无需依赖任何其他资源管理系统。11.查看启动效果。8.同步设置完毕的Spark目录到其他节点。
2025-05-13 09:13:17
112
原创 Hadoop与spark生态系统
1.来源:Hadoop MapReduce 的 历史任务服务器,由 mr-jobhistory-daemon.sh start historyserver 启动。1.来源:Spark 集群的 工作节点(Worker Node),由 start-worker.sh 启动。1.来源:Spark 的 历史任务服务器,由 start-history-server.sh 启动。1.来源:Hadoop HDFS 的 数据节点,由 start-dfs.sh 启动。②接收客户端提交的任务,分配给 Worker 执行。
2025-05-13 09:07:25
211
原创 spark代码运行
在项目根目录下建立文件夹input,并穿件两个文本文件:word1.txt, word2.txt。6.新建Scala类。如果这里没有看到Scala类的选项,就去检查第2步。(如果没有出现scala类,请再次添加全局库。2.将Scala添加到全局库中(注意:Scala的版本不宜太高,最好是2-12.否则后面会报下面这个错误。(红色无所谓,只要后面出现:进程已结束,退出代码为 0。添加完成之后,刷新Maven,它会帮助我们去下载依赖。(注意:是在重构里面有重命名)1.启动idea,选择新建项目。
2025-05-13 09:05:39
90
原创 jps作业
来源: NameNode 运行在主节点 (Master) 上,通常通过 start-dfs.sh 或者 start-all.sh 启动脚本启动。功能: DataNode 是实际存储数据块的工作节点,分布在集群的多个 Slave 节点上。功能: NodeManager 是 YARN 下属的一个子模块,专注于单个节点上的容器生命周期管理和服务监控。来源:master是 Spark 集群的核心组件之一,负责管理整个集群的资源分配和调度工作。它通过监听 Worker 节点的状态并协调任务分发来实现分布式计算。
2025-05-13 08:36:35
271
原创 自定义分区器
/如果Key1和Key2的code相同,那么他们会被分配到同一个分区,保存到同一个文件。//产生结果的时候,会用3个文件来保存。在“// 6. 设置输入和输出路径。//如果单词是以a~m开头,那么会被分配到第一个分区。1.在WordCountDriver里面将链接集群注释了。//设置reduceTask的数量。//返回值是0,1,2.....//否则,就分配到第二个分区。//2.重写getPartition方法。//1.获取单词首字符。// 设置自定义分区器。//1.继承Partitioner类。
2025-05-13 08:35:38
228
原创 如何搭建spark yarn模式的集群
JDK:安装 JDK 8 及以上版本,且配置好JAVA_HOME环境变量。用户:在所有节点创建相同用户名和密码的用户,该用户要有 sudo 权限。系统:所有节点采用相同的 Linux 发行版,如 CentOS 7。网络:各节点间网络可正常通信,可通过主机名相互访问。然后执行source ~/.bashrc使配置生效。然后执行source ~/.bashrc使配置生效。2. 安装和配置 Hadoop YARN。2.2 配置 Hadoop 环境变量。2.3 配置 Hadoop 核心文件。
2025-04-28 20:05:34
376
原创 如何在idea中写spark程序
在src/main/java(如果是 Java 项目)或者src/main/scala(如果是 Scala 项目)目录下创建一个新的类文件,下面分别给出 Java 和 Scala 的示例代码。// 创建JavaSparkContext。// 创建SparkSession。// 计算RDD中所有元素的总和。// 创建一个包含整数的列表。// 创建SparkSession。// 停止SparkSession。// 计算RDD中所有元素的总和。// 创建一个包含整数的列表。2. 添加 Spark 依赖。
2025-04-28 20:04:50
394
原创 spark和hadoop的对比和联系
它们的关系:Spark 可以和 Hadoop 的仓库(HDFS)搭配使用,还能和 Hadoop 的资源管理器(YARN)一起合理分配资源。Spark 是 Hadoop 生态系统的一部分,可以和 Hadoop 的其他工具(比如 Hive、HBase)一起用,就像一个大家庭里的兄弟姐妹,互相配合。它适合存储海量数据和做离线计算。Spark:把数据放在内存里计算,速度非常快,适合需要快速响应的场景,比如实时计算和交互式查询。Spark:提供了简单易用的接口,支持多种编程语言,很容易上手,就像拼一个简单的拼图。
2025-04-22 09:36:51
169
原创 hadoop集群的常用命令
文件权限管理: hdfs dfs -chmod permissions hdfs_path hdfs dfs -chown owner:group hdfs_path 修改 HDFS 文件的权限和所有者。合并下载: hdfs dfs -getmerge hdfs_source_path local_destination_file 将 HDFS 中的多个文件合并后下载到本地。查看文件内容: hdfs dfs -cat hdfs_file_path 查看 HDFS 中某个文件的内容。
2025-03-31 19:51:21
183
原创 MapReduce 的工作原理
Map 阶段: 输入:Map 阶段接收输入数据,通常是键值对(key-value pairs)。输出:Map 函数的输出是新的键值对,这些中间结果将传递给 Reduce 阶段^1^。Reduce 阶段: 输入:Reduce 阶段接收 Shuffle 阶段处理后的数据。处理:Reduce 函数对相同键的值进行合并计算,生成最终结果。输出:Reduce 函数的输出是最终结果,通常存储在 HDFS 中^1^。Shuffle 阶段: 分区:将 Map 阶段的输出数据进行分区,每个分区对应一个 Reduce 任务。
2025-03-31 19:50:47
213
原创 vi编译器
命令模式:在这个模式下,所敲按键编译器都理解为命令,以命令来驱动执行不同的功能。i:进入编辑模式(此时键盘可以正常打字)(i、a、o)2.nyy复制当前行往下n行内容。底线命令系统:以:开始通常用于文件的保存并退出。vi a.txt:创建/打开(进入命令模式)esc:退出编辑模式(回到命令模式)4.按下G键可以跳到文件的最后一行。编辑模式:此时我们可以修改文件。5.按下gg键跳到文件的第一行。wq:保存编辑内容(保存退出)1.yy复制光标所在行的内容。1.p在当前行的下一行粘贴。
2025-03-03 19:23:44
227
原创 虚拟机配置IP
linux中,ip地址是写在配置文件(/etc/sysconfig/network-scripts/ifcfg-ens33)中,这里使用 vi 编辑器去修改即可!如果不进行设置,每次启动机器时都可能是随机的IP,不方便我们后续操作。注意:这里的第三个部分的10并不是固定的,我们自己可以约定,但是约定之后就要固定下来。让所有的vm配置的虚拟机使用NAT时,它们的网段都是一致的。2)配置Windows本地虚拟网卡,让本机也可以访问虚拟机。具体设置为:进入虚拟机,修改对应的IP。(3)设置虚拟机的IP。
2025-03-03 19:21:16
253
原创 【无标题】
大数据的应用场景:视频推荐、电商推荐等。Hadoop是分布式系统处理架构。阶段2:大数据时代-分布式处理。阶段3:实时大数据时代。六、Hadoop的优势。大数据的技术发展脉络。
2025-02-25 11:37:33
304
原创 linux
rm -rf /* 将根目录及以下所有递归逐一删除,无需用户确认,请一定要使用。3.mkdir -p 命令:创建目录,如果父级目录不存在,就建一个父级目录。1.ls:列出目录内容,包括参数-l(详细列表)、-a(显示隐藏文件)2. ll -a命令,显示当前的目录下的文件,包括隐藏文件。2.mkdir命令:创建目录。1. ll命令,用来显示当前的目录下的文件。3. ~波浪线,当前用户的home目录。1.touch命令:创建一个空文件。3.cd命令,用来进入指定的目录。4.删除目录无需用户确认。
2025-02-25 11:36:33
388
原创 Scala中Set集合
/ val set1=Set[String]("小花","小明","小明")val course = mutable.Set("语文","数学")//val set1=Set[元素的类型】(元素1,元素2)// val set1=Set("小花","小明","小明")// val course=Set("语文","数学")// val course1=course+"英语"// 不可变Set,默认使用的set就是不可变的!// 可变set,需要额外去引入包。//元素的类型可以省略。
2024-12-11 17:06:06
394
原创 scala的set集合
val wang = mutable.Set("朝花夕拾", "活着")val books=mutable.Set("朝花夕拾","活着")val yang = mutable.Set("三体", "活着")val rs=books.contains("朝花夕拾")println(s"朝花夕拾是否存在:${rs}")println(s"俩个图书馆的并集${rs2}")println(s"两个图书馆的交集${rs1}")println(s"俩个图书馆的差集${rs3}")books -= "朝花夕拾"
2024-12-11 17:05:31
324
原创 Scala的Map集合可变
val map1 = Map("鄂" -> "湖北省", "湘" -> "湖南省", "青" -> "青海省")//3.2直接:map(key名),如果key不存在,就会报错!val map2 = map1 + ("豫" -> "河南省")val map4 = map1 + ("青" -> "青海省")// val map3=map1+("鄂"->"河南省")// val rs =map1.get("鄂")// println(map1("鄂1"))// map ("青")="青海省"
2024-12-11 17:05:01
379
原创 Scala函数隐式参数
def sayName(implicit name:String="小明"):Unit={implicit val value:String="小米"//困难:函数有一个默认参数值,在不传入具体的实参时。println("我的名字是:"+name)sayName("小婉")//一直在修改原来的代码!
2024-12-11 17:04:27
421
原创 Scala隐式类
/思路:把BaseUser通过隐式转换,改成一个新类型,而这个新类型中有这新的方法。//任务:给之前的BaseUser添加新的功能,但是,不要直接去改代码。//implicit class===一个隐式转换函数 +类。//它的作用:扩展已有的类,而不需要去修改之前的类的代码。
2024-12-11 17:03:24
131
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人