大数据
文章平均质量分 88
技术闲聊DD
代码改变生活,程序改变世界!
展开
-
Spark学习(8)-SparkSQL的运行流程,Spark On Hive
将Filter这种可以减少数据集的操作下推,放在Scan的位置,这样可以减少操作时候的数据量。RDD的运行会完全按照开发者的代码执行, 如果开发者水平有限,RDD的执行效率也会受到影响。当使用ThriftServer后,相当于是一个持续性的Spark On Hive集成模式,它提供10000端口,持续对外提供服务,外部可以通过这个端口连接上来,写sql,让Spark运行。上面的过程生成的AST其实最终没有办法直接运行,AST叫做逻辑计划,结束后需要生成物理计划,从而生成RDD来运行。原创 2023-01-07 09:04:18 · 2469 阅读 · 0 评论 -
Spark学习(7)-SparkSQL函数定义
目前在SparkSQL中,仅仅支持UDF和UDAF函数,python仅支持UDF。注册的UDF可以用于DSL和SQL,返回值用于DSL风格,传参内的名字用于SQL风格。udf对象 = sparksession . udf . register(参数 1 ,参数 2 ,参数 3 )参数1:UDF名称,可用于SQL风格参数2:被注册成UDF的方法名参数3:声明UDF的返回值类型udf对象: 返回值对象,是一个UDF对象,可用于DSL风格仅能用于DSL风格。原创 2022-11-29 18:31:57 · 1419 阅读 · 0 评论 -
Spark学习(6)-Spark SQL
在RDD阶段,程序的执行入口对象是:。在Spark 2.0后,推出了对象,作为Spark编码的统一入口对象。用于SparkSQL编程作为入口对象。用于SparkCore编程,可以通过SparkSession对象中获取到。所以,后续执行环境入口对象,统一变更为SparkSession对象。2.4 SparkSession对象。原创 2022-11-28 18:58:17 · 2978 阅读 · 0 评论 -
Spark学习(5)-Spark Core之RDD
RDD(Resilient Distributed Dataset)叫做弹性分布式数据集,是Spark中最基本的数据抽象,代表一个不可变、可分区、里面的元素可并行计算的集合。一个数据集合,用于存放数据的。Distributed:RDD中的数据是分布式存储的,可用于分布式计算。Resilient:RDD中的数据可以存储在内存中或者磁盘中。RDD(Resilient Distributed Dataset)弹性分布式数据集,是Spark中最基本的数据抽象,原创 2022-11-22 06:06:28 · 1008 阅读 · 0 评论 -
Python语法(3)- 面向对象
class 类名称:类属性类行为对象 = 类名称()在类中定义成员方法和定义函数基本一致,但仍有细微区别:可以看到,在方法定义的参数列表中,有一个:self关键字self关键字是成员方法定义的时候,必须填写的。它用来表示类对象自身的意思当我们使用类对象调用方法的是,self会自动被python传入在方法内部,想要访问类的成员变量,必须使用self注意事项self关键字,尽管在参数列表中,但是传参的时候可以忽略它。原创 2022-11-12 13:27:59 · 756 阅读 · 0 评论 -
Python语法(3)-文件操作,异常模块与包
modeencodingmode常用的三种基础访问模式。原创 2022-10-14 14:47:20 · 116 阅读 · 2 评论 -
Python语法(2)- 数据容器,函数进阶,匿名函数
基本语法:列表内的每一个数据,称之为元素以 [] 作为标识列表内每一个元素之间用, 逗号隔开注意:列表可以一次存储多个数据,且可以为不同的数据类型,支持嵌套。元组定义:定义元组使用小括号,且使用逗号隔开各个数据,数据可以是不同的数据类型。语法如下:注意:元组只有一个数据,这个数据后面要添加逗号。是否支持下标索引支持:列表、元组、字符串 - 序列类型不支持:集合、字典 - 非序列类型是否支持重复元素:支持:列表、元组、字符串 - 序列类型。原创 2022-10-13 16:54:32 · 918 阅读 · 1 评论 -
Python语法(1)- 基础语法,判断语句,循环语句,函数
单引号定义法:双引号定义法:三引号定义法:三引号定义法,和多行注释的写法一样,同样支持换行操作。使用变量接收它,它就是字符串,不使用变量接收它,就可以作为多行注释使用。引号嵌套单引号定义法,可以内含双引号双引号定义法,可以内含单引号可以使用转移字符(\)来将引号解除效用,变成普通字符串def 函数名(传入参数) : 函数体 return 返回值。原创 2022-10-12 14:19:16 · 2898 阅读 · 2 评论 -
Spark学习(3)-Spark环境搭建-Standalone
Standalone模式是Spark自带的一种集群模式,不同于前面本地模式启动多个进程来模拟集群的环境,Standalone模式是真实地在多个机器之间搭建Spark集群的环境,完全可以利用该模式搭建多机器集群,用于实际的大数据处理。这个文件的修改不是必须的,为什么修改为WARN.因为Spark是个话痨,会疯狂输出日志,设置级别为WARN只输出警告和错误日志,不要输出一堆废话。注意,上面的配置的路径要根据你自己机器实际的路径来写。进入到spark的配置文件目录中,同时不要忘记都创建。...原创 2022-07-27 20:07:30 · 1163 阅读 · 0 评论 -
Spark学习(2)-Spark环境搭建-Local
注意Local模式只能运行一个Spark程序,如果执行多个Spark程序,那就是由多个相互独立的Local进程在执行。打开监控页面后,可以发现在程序内仅有一个Driver,因为我们是Local模式,Driver即管理又干活。的Python解释器环境,在这里面可以写普通python代码,以及spark代码。不同的是,这个解释器环境运行的不是python代码,而是scala程序代码。Spark程序在运行的时候,会绑定到机器的。在这个环境内,可以运行spark代码。...原创 2022-07-27 13:39:20 · 492 阅读 · 0 评论 -
Spark学习(1)-Spark基础
定义ApacheSpark是用于大规模数据(large-scaladata)处理的统一(unified)分析引擎。Spark是一款分布式内存计算的统一分析引擎。其特点就是对任意类型的数据进行自定义计算。结构化、半结构化、非结构化等各种类型的数据结构,同时也支持使用Python、Java、Scala、R以及SQL语言去开发应用程序计算数据。Spark的适用面非常广泛,所以,被称之为统一的(适用面广)的分析引擎(数据处理)。...原创 2022-07-15 13:42:31 · 1252 阅读 · 0 评论 -
Python学习(6)-基础语法(异常和面向对象)
异常捕捉可以使用 try/except 语句。一个 try 语句可能包含多个except子句,分别来处理不同的特定的异常。最多只有一个分支会被执行。处理程序将只针对对应的 try 子句中的异常进行处理,而不是其他的 try 的处理程序中的异常。一个except子句可以同时处理多个异常,这些异常将被放在一个括号里成为一个元组,例如:最后一个except子句可以忽略异常的名称,它将被当作通配符使用。你可以使用这种方法打印一个错误信息,然后再次把异常抛出。1.2 try/except…else 语句还有一原创 2022-07-02 13:59:40 · 215 阅读 · 0 评论 -
Python学习(5)-基础语法(输入和输出)
Python两种输出值的方式: 表达式语句和 print() 函数。第三种方式是使用文件对象的 write() 方法,标准输出文件可以用 引用。如果你希望输出的形式更加多样,可以使用 函数来格式化输出值。如果你希望将输出的值转成字符串,可以使用 repr() 或 str() 函数来实现。注意:在第一个例子中, 每列间的空格由 print() 添加。str.format() 的基本使用如下:返回值:括号及其里面的字符 (称作格式化字段) 将会被 format() 中的参数替换。在括号中的数字原创 2022-07-01 16:42:55 · 482 阅读 · 0 评论 -
Python学习(4)-基础语法(模块)
模块是一个包含所有你定义的函数和变量的文件,其后缀名是.py。模块可以被别的程序引入,以使用该模块中的函数等功能。这也是使用 python 标准库的方法。案例:在pycharm中配置自动导入,然后输入类名,直接点击出方法即可引入,和javaIDEA一致。想使用 Python 源文件,只需在另一个源文件里执行 import 语句,语法如下:当解释器遇到 import 语句,如果模块在当前的搜索路径就会被导入。搜索路径是一个解释器会先进行搜索的所有目录的列表。注意:一个模块只会被导入一次,不管你执行原创 2022-07-01 12:03:16 · 113 阅读 · 0 评论 -
Python学习(3)-基础语法(字典,函数)
字典是另一种可变容器模型,且可存储任意类型对象。字典的每个键值 key=>value 对用冒号 : 分割,每个对之间用逗号(,)分割,整个字典包括在花括号 {} 中 ,格式如下所示:键必须是唯一的,但值则不必。值可以取任何数据类型,但键必须是不可变的,如字符串,数字。举例:1.2 创建空字典使用大括号 { } 创建空字典:使用内建函数 dict() 创建字典:1.3 访问字典里的值把相应的键放入到方括号中,如下实例:1.4 修改字典向字典添加新内容的方法是增加新的键/值对,修改或删除原创 2022-06-30 13:46:06 · 651 阅读 · 0 评论 -
Python学习(2)-基础语法(字符串,列表,元组)
1.3 下标1.8 字符串连接 join()常见的方法列表推导式提供了从序列创建列表的简单途径。通常应用程序将一些操作应用于某个序列的每个元素,用其获得的结果作为生成新列表的元素,或者根据确定的判定条件创建子序列。每个列表推导式都在 for 之后跟一个表达式,然后有零到多个 for 或 if 子句。返回结果是一个根据表达从其后的 for 和 if 上下文环境中生成出来的列表。如果希望表达式推导出一个元组,就必须使用括号。可以用 if 子句作为过滤器以下是一些关于循环和其它技巧的演示:原创 2022-06-16 17:59:13 · 82 阅读 · 0 评论 -
Python学习(1)-基础语法(数据类型和运算)
4.1 ⽐较运算符⽐较运算符的结果是 bool 类型, 即 True,或者是 False。4.2 逻辑运算符逻辑运算符可以连接连个表达式, 两个表达式共同的结果决定最终的结果是 True,还是 False。5 if 判断语句5.1 if6 三⽬运算7 循环7.1 while循环7.2 for 循环遍历Python靠缩进来看代码的作用域。...原创 2022-06-16 16:28:49 · 73 阅读 · 0 评论 -
Hadoop学习(17)-- Flume 企业开发案例
1. 复制和多路复用1. 1 案例需求使用 Flume-1 监控文件变动,Flume-1 将变动内容传递给 Flume-2,Flume-2 负责存储到 HDFS。同时 Flume-1 将变动内容传递给 Flume-3,Flume-3 负责输出到 Local FileSystem。1.2 需求分析单数据源多出口案例(选择器)1.3 实现步骤准备工作job 目录下创建 group1 文件夹,datas/目录下创建 flume3 文件夹创建 flume-file-flume.conf原创 2022-05-13 17:08:15 · 285 阅读 · 0 评论 -
Hadoop学习(16)-- Flume事务,原理和拓扑结构
Flume Agent内部原理原创 2022-05-13 11:22:54 · 172 阅读 · 0 评论 -
Hadoop学习(15)-- Flume 入门案例
1. 监控端口数据官方案例案例需求:首先,Flume监控本机44444端口,然后通过telnet工具向本机44444端口发送消息,最后Flume将监听的数据实时显示在控制台。1.1 实现步骤安装telnet工具判断44444端口是否被占用sudo netstat -tunlp | grep 44444创建Flume Agent配置文件flume-telnet-logger.conf在flume目录下创建job文件夹并进入job文件夹。mkdir jobcd job/在job文件夹下原创 2022-05-05 20:20:30 · 528 阅读 · 0 评论 -
Hadoop学习(14)-- Flume介绍和安装
Flume定义Flume是Cloudera提供的一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统。Flume基于流式架构,灵活简单。Flume组成架构2.1 AgentAgent是一个JVM进程,它以事件的形式将数据从源头送至目的,是Flume数据传输的基本单元。Agent主要有3个部分组成,Source、Channel、Sink。2.2 SourceSource是负责接收数据到Flume Agent的组件。Source组件可以处理各种类型、各种格式的日志数据,包括avro原创 2022-04-28 16:22:16 · 150 阅读 · 0 评论 -
Hadoop学习(12)-- Hadoop生态综合案例-陌陌聊天数据分析
1 陌陌聊天数据分析案例需求1.1 目标基于Hadoop和Hive实现聊天数据统计分析,构建聊天数据分析报表。1.2 需求统计今日总消息量统计今日每小时消息量、发送和接收用户数统计今日各地区发送消息数据量统计今日发送消息和接收消息的用户数统计今日发送消息最多的Top10用户统计今日接收消息最多的Top10用户统计发送人的手机型号分布情况统计发送人的设备操作系统分布情况1.3 数据内容数据大小:两个文件共14万条数据列分隔符:制表符 \t数据字典及样例数据2 基于H原创 2022-04-18 08:49:58 · 3191 阅读 · 9 评论 -
Hadoop学习(11)-- Apache Hive DML语句与函数使用
1 Hive SQL DML语法之加载数据1.1 Hive SQL-DML-Load加载数据1.1.1 背景在Hive中建表成功之后,就会在HDFS上创建一个与之对应的文件夹,且文件夹名字就是表名;文件夹父路径是由参数hive.metastore.warehouse.dir控制,默认值是/user/hive/warehouse;不管路径在哪里,只有把数据文件移动到对应的表文件夹下面,Hive才能映射解析成功;最原始暴力的方式就是使用hadoop fs –put|-mv等方式直接将数据移动到表原创 2022-04-18 08:09:20 · 460 阅读 · 0 评论 -
Hadoop学习(10)-- Hive SQL语言:DDL建库、建表
Hive SQL之数据库与建库Hive数据模型总览SQL中DDL语法的作用数据定义语言 (Data Definition Language, DDL),是SQL语言集中对数据库内部的对象结构进行创建,删除,修改等的操作语言,这些数据库对象包括database、table等。DDL核心语法由CREATE、ALTER与DROP三个所组成。DDL并不涉及表内部数据的操作。数据库database在Hive中,默认的数据库叫做default,存储数据位置位于HDFS的/user/hive/ware原创 2022-04-17 23:24:54 · 1100 阅读 · 0 评论 -
Hadoop学习(9)-- Apache Hive安装部署
Apache Hive元数据什么是元数据元数据(Metadata),又称中介数据、中继数据,为描述数据的数据(data about data),主要是描述数据属性(property)的信息,用来支持如指示存储位置、历史数据、资源查找、文件记录等功能。Hive MetadataHive Metadata即Hive的元数据。包含用Hive创建的database、table、表的位置、类型、属性,字段顺序类型等元信息。元数据存储在关系型数据库中。如hive内置的Derby、或者第三方如MySQL等。原创 2022-02-25 10:35:26 · 2919 阅读 · 0 评论 -
Hadoop学习(8)-- Apache Hive入门
Apache Hive概述什么是HiveApache Hive是一款建立在Hadoop之上的开源数据仓库系统,可以将存储在Hadoop文件中的结构化、半结构化数据文件映射为一张数据库表,基于表提供了一种类似SQL的查询模型,称为Hive查询语言(HQL),用于访问和分析存储在Hadoop文件中的大型数据集。Hive核心是将HQL转换为MapReduce程序,然后将程序提交到Hadoop群集执行。为什么使用Hive使用Hadoop MapReduce直接处理数据所面临的问题,人员学习成本太高原创 2022-02-23 15:12:04 · 3451 阅读 · 0 评论 -
Hadoop学习(7)-- Hadoop YARN
Hadoop YARN介绍YARN简介Apache Hadoop YARN (Yet Another Resource Negotiator,另一种资源协调者)是一种新的Hadoop资源管理器。YARN是一个通用资源管理系统和调度平台,可为上层应用提供统一的资源管理和调度。它的引入为集群在利用率、资源统一管理和数据共享等方面带来了巨大好处。YARN功能说明资源管理系统:集群的硬件资源,和程序运行相关,比如内存、CPU等。调度平台:多个程序同时申请计算资源如何分配,调度的规则(算法)。原创 2022-02-21 17:26:58 · 1149 阅读 · 0 评论 -
Hadoop学习(6)-- Hadoop MapReduce
MapReduce设计构思如何对付大数据处理场景对相互间不具有计算依赖关系的大数据计算任务,实现并行最自然的办法就是采取MapReduce分而治之的策略。首先Map阶段进行拆分,把大数据拆分成若干份小数据,多个程序同时并行计算产生中间结果;然后是Reduce聚合阶段,通过程序对并行的结果进行最终的汇总计算,得出最终的结果。不可拆分的计算任务或相互间有依赖关系的数据无法进行并行计算!构建抽象编程模型MapReduce借鉴了函数式语言中的思想,用Map和Reduce两个函数提供了高层的并行编原创 2022-02-18 17:21:00 · 903 阅读 · 0 评论 -
Hadoop学习(5)-- HDFS工作流程与机制
HDFS集群角色与职责官方架构图主角色:namenodeNameNode是Hadoop分布式文件系统的核心,架构中的主角色。NameNode维护和管理文件系统元数据,包括名称空间目录树结构、文件和块的位置信息、访问权限等信息。基于此,NameNode成为了访问HDFS的唯一入口。NameNode内部通过内存和磁盘文件两种方式管理元数据。其中磁盘上的元数据文件包括Fsimage内存元数据镜像文件和edits log(Journal)编辑日志。从角色:datanodeDataNode原创 2022-02-18 10:15:43 · 1703 阅读 · 0 评论 -
Hadoop学习(4)-- HDFS shell命令介绍和操作
解释说明介绍命令行界面(英语:command-line interface,缩写:CLI),是指用户通过键盘输入指令,计算机接收到指令后,予以执行一种人际交互方式。Hadoop提供了文件系统的shell命令行客户端: hadoop fs [generic options]。文件系统协议HDFS Shell CLI支持操作多种文件系统,包括本地文件系统(file:///)、分布式文件系统(hdfs://nn:8020)等具体操作的是什么文件系统取决于命令中文件路径URL中的前缀协议。如果没原创 2022-02-17 15:45:19 · 1057 阅读 · 0 评论 -
Hadoop学习(3)-- HDFS分布式文件系统基础
文件系统定义文件系统是一种存储和组织数据的方法,实现了数据的存储、分级组织、访问和获取等操作,使得用户对文件访问和查找变得容易;文件系统使用树形目录的抽象逻辑概念代替了硬盘等物理设备使用数据块的概念,用户不必关心数据底层存在硬盘哪里,只需要记住这个文件的所属目录和文件名即可;文件系统通常使用硬盘和光盘这样的存储设备,并维护文件在设备中的物理位置。传统常见的文件系统所谓传统常见的文件系统更多指的的单机的文件系统,也就是底层不会横跨多台机器实现。比如windows操作系统上的文件系统、Linux原创 2022-02-17 11:29:14 · 1011 阅读 · 0 评论 -
Hadoop学习(2)-- Hadoop3.1 单机模式搭建
1. Hadoop集群整体概述Hadoop集群包括两个集群:HDFS集群、YARN集群。两个集群逻辑上分离、通常物理上在一起,两个集群互相之间没有依赖、互不影响,某些角色进程往往部署在同一台物理服务器上。两个集群都是标准的主从架构集群。...原创 2022-02-16 14:58:28 · 1401 阅读 · 0 评论 -
Hadoop学习(1)--Hadoop介绍
1. Hadoop的简单介绍1.1 狭义Hadoop指的是Apache软件基金会的一款开源软件,允许用户使用简单的编程模型实现跨机器集群对海量数据进行分布式计算处理。Hadoop核心组件Hadoop HDFS(分布式文件存储系统):解决海量数据存储。Hadoop YARN(集群资源管理和任务调度框架):解决资源任务调度。Hadoop MapReduce(分布式计算框架):解决海量数据计算。1.2 广义广义上Hadoop指的是围绕Hadoop打造的大数据生态圈。1.3 现状HDFS作为原创 2022-02-14 09:59:35 · 583 阅读 · 0 评论