
大数据开发
人畜无害的萌新史莱姆
这个作者很懒,什么都没留下…
展开
-
Kafka和Flume连接
Kafka Source即将flume作为kafka的消费者,kafka后面对接flume。flume从kfaka里面读取数据。配置文件如下:a1.sources = r1a1.channels = c1a1.sinks = k1a1.sources.r1.type = org.apache.flume.source.kafka.KafkaSourcea1.sources.r1.kafka.bootstrap.servers = node01:9092,node02:9092,node0原创 2021-09-13 16:47:17 · 1101 阅读 · 0 评论 -
Kakfa消费者分区消费
消费者的各种消费过程自动提交offset手动提交offset处理完每个分区里面的数据之后,然后就进行一次提交手动指定某些分区里面的数据进行消费例如:有一个topic test,里面有三个分区,需求:只需要消费其中两个分区里面的数据这里是第三种消费方式的处理代码。package edu.hfuu.kafka.consumer;import org.apache.kafka.clients.consumer.ConsumerRecord;import org.apache.kafka.c原创 2021-09-07 18:17:52 · 288 阅读 · 0 评论 -
Kafka的StreamAPI
需求将topic1中的数据写入到topic2中,中间需要做到将小写转换为大写。第一步:使用终端创建topic1和topic2;第二步:调用生产者API或在终端往topic1中写入数据;第四步:打开topic2的消费着终端,验证是否转换成功;第三步:编写StreamAPI,并运行。import org.apache.kafka.common.serialization.Serdes;import org.apache.kafka.streams.KafkaStreams;import org原创 2021-09-07 15:51:07 · 358 阅读 · 0 评论 -
Kafka生产者和消费者
Java实现kafka生产者代码参考 https://kafka.apache.org/10/documentation.html#consumerapi有示例import org.apache.kafka.clients.producer.KafkaProducer;import org.apache.kafka.clients.producer.ProducerRecord;import java.util.Properties;public class MyProducer {原创 2021-09-07 15:43:02 · 174 阅读 · 0 评论 -
Flume负载均衡串联
负载均衡是用于解决一台机器(一个进程)无法解决所有请求而产生的一种算法。同一个请求只能交给一个进行处理,避免数据重复。如何分配请求就涉及到了负载均衡算法:轮询(round_robin)、随机(random)、权重flume串联跨网络传输数据avro sink (avro是一种协议)avro source使用上述两个组件指定绑定的端口ip就可以满足数据跨网络的传递,通常用于flume串联架构中。flume串联启动时,通常从远离数据端开始启动。配置文件如下:agent1:#ag原创 2021-09-06 09:53:32 · 207 阅读 · 0 评论 -
Flume采集文件到HDFS
采集文件到HDFS采集需求:**业务系统使用 log4j 生成的日志,日志内容不断增加,需要把追加到日志文件中的数据实时采集到 hdfs **根据需求,首先定义一下三大要素:采集源:即source——监控文件内容更新:exec ‘tail -F file’下沉目标,即sink——HDFS文件系统:hdfs sinksource 和sink之间的传递通道——channel,可用file channel也可以用内存channel配置文件编写:# Name the components on t原创 2021-09-06 09:10:39 · 471 阅读 · 0 评论 -
Flume监控目录变化并采集到HDFS
采集目录到HDFS(监控文件目录变化)采集需求:服务器的某特定目录下,会不断产生新的文件,每当有新文件出现,就要把文件采集到HDFS中去。根据需求,首先定义一下3大要素:采集源,即Source——监控文件目录:spooldir下称目标,即Sink——HDFS文件系统:hdfs sinksource 和 sink 之间的传递通道——channel,可用file channel,也可以用内存channel配置文件编写:#Name the components on this agenta1原创 2021-09-06 08:53:11 · 430 阅读 · 0 评论 -
Spark机器学习
转换器:有一个transform方法,(相当于直接填入数据,转换器输出结果)估计器:有一个fit方法,相当于训练数据,然后训练完毕之后可以调用transform方法,来测试数据。评估器:根据某种效果评价指标来评价给定模型表现。缩放:scaling归一化:StandardScaler将一组特征值归一化成平均值为0而标准差为1的一组新值。withStd标志表示将数据缩放到单位标准差,而withMean标志(默认情况下为false)表示将使数据在缩放之前进行中心化(变量减去它的均值)。注意:稀疏向量中心原创 2021-07-02 17:16:44 · 111 阅读 · 0 评论 -
Spark处理复杂类型的数据
import org.apache.spark.sql.{SparkSession, functions}import org.apache.spark.sql.functions.{array_contains, col, explode, size, split, struct}import org.junit.Testclass complexType { val spark = new SparkSession.Builder() .appName("chemaDemo1")原创 2021-05-17 22:54:46 · 355 阅读 · 0 评论 -
Spark的重划分(分区)与合并
Spark的分区与合并操作通常是一个重要的优化方法,它根据一些经常过滤的列对数据进行分区,控制跨集群数据的物理布局,包括分区方案和分区数。不管是否有必要,重新分区都会导致数据的全面洗牌。如果将来的分区数大于当前的分区数,或者当你想要基于某一组特定列来进行分区时,通常只能重新分区。合并分区:合并操作(coalesce)不会导致数据的全面洗牌,但会尝试合并分区。示例代码如下:/** * 分区与合并 * 另一个重要的优化是根据一些经常过滤的列对数据进行分区,控制跨集群数据的物理布局,包括分原创 2021-05-17 16:49:43 · 971 阅读 · 0 评论 -
弹性分布式数据集(RDD)
RDD以分区(partition)的形式分布在集群中的多个机器上,每个分区代表了数据集的一个子集。分区定义了Spark中数据的并行单位。Spark框架并行处理多个分区,一个分区内的数据对象是顺序处理的。创建RDD的几种方法在本地对象集合上调用SparkContext的parallelize方法。示例如下:第一个参数代表待并行化的对象集合,第二个参数代表分区的个数。当要对一个分区内的对象进行计算时,Spark从驱动程序里获取对象集合的一个子集。在分布式文件系统(如HDFS)上的文件或目录上创建R原创 2021-05-16 21:08:12 · 170 阅读 · 0 评论 -
数据仓库的基本概念
基本概念英文名为Data Warehouse,简写为DW或DWH。数据仓库的目的是构建面向分析的集成化数据环境,为企业提供决策支持(Decision Support)。数据仓库是存数据的,企业的各种数据往里面存,主要目的是为了分析有效数据,后续会基于它产出供分析挖掘的数据,如企业的分析性报告和各类报表等。可以理解为:面向分析的存储系统。主要特征数据仓库是面向主题的(SUbject-Oriented)、集成的(Integrated)、非易失的(Non-Volatile)和时变的(Time-Varia原创 2021-05-09 15:15:10 · 571 阅读 · 3 评论 -
Spark的MLlib使用基本数据类型:向量、标签点、矩阵、稀疏格式文件libSVM
Spark MLlib库实现了很多的机器学习算法,其基本的几类数据类型解释及代码演示如下。import org.apache.spark.mllib.linalg.distributed.{BlockMatrix, CoordinateMatrix, IndexedRow, IndexedRowMatrix, MatrixEntry, RowMatrix}import org.apache.spark.{SparkConf, SparkContext}import org.apache.spark原创 2021-04-23 11:17:42 · 568 阅读 · 0 评论 -
Kafka基本概念详解
Kafka是一款基于发布与订阅的消息系统。消息和批次(Messages and Batches)Kafka的数据单元被称为消息, 可以把消息看成是数据库里的一个“数据行”或者一条“记录”。消息由字节数组组成,所以对于Kafka来说,消息里的数据没有特别的格式或含义。消息可以有一个可选的元数据,就是键。键也是一个字节数组,与消息一样,对于Kafa来说也是没有特殊的含义。当消息以一种可控的方式写入不同的分区时,会用到键。为了提高效率,消息被分批次的写入Kafka。批次就是一组消息,这些消息属于同一个主题和原创 2021-04-19 22:41:58 · 384 阅读 · 0 评论 -
Spark用户自定义函数UDF
UDF介绍spark的强大功能之一就是可以让用户自定义函数。用户自定义函数(UDF)让用户可以使用Scala或Python编写自己的自定义转换(Transformation)操作,甚至可以使用外部库。UDF可以将一个或多个列作为输入,同时也可以返回一个或多个列。Spark的UDF允许使用多种不同的编程语言编写。这些函数只是描述了(一个接一个地)处理数据记录的方法。 默认情况下,这些函数被注册为SparkSession或者Context的临时函数。编写UDF函数的步骤第一步:设计一个实际的函数这里原创 2021-04-16 15:35:16 · 822 阅读 · 0 评论 -
Spark结构化API执行:逻辑计划和物理计划
Spark结构化API的执行过程针对一个结构化API查询任务,逐步分析从用户代码到执行代码的过程。步骤入下:编写DataFrame/Dataset/SQL代码如果代码能有效执行,Spark将为其转换为一个逻辑执行计划(Logical Plan)Spark将此逻辑执行计划转化为一个物理计划(Physical Plan),检查可行的优化策略,并在此过程中检查优化Spark在集群上执行该物理执行计划(RDD操作)编写的代码通过控制台提交给Spark,或者以一个Spark作业的形式提交。然后代码将交原创 2021-04-13 20:32:29 · 1009 阅读 · 0 评论 -
Spark 架构解析
Spark 工具包Spark 架构Spark应用程序由一个__驱动器进程(Drive Process)__和一组__执行器(Executors)__进程组成。下图演示了__集群管理器(Cluster Manager)__如何控制物理机器并为Spark应用程序分配资源。SparkSession与支持Spark API编程语言的关系大多数情况下,Spark在每种语言中都提供了一些核心“概念”,这些概念被转化成在集群上可以运行的Spark代码。如果仅使用结构化API,则所有语言都应该具有相似的性能特原创 2021-04-13 20:12:22 · 144 阅读 · 0 评论