- 博客(114)
- 资源 (11273)
- 问答 (1)
- 收藏
- 关注
原创 大数据技术架构(组件)——Hive:环境准备3
到这里,整个调试功能就已经实现了,大家可以在本地编写HSQL,然后根据断点深入学习Hive底层具体的执行流程,甚至自己改造源码!由于是在客户端进行源码追溯,所以一般会进入CliDriver类中,比如在main方法中打上断点,然后开始Debug。为了方便学习,大家可以在IDEA中打开Terminal,开启debug模式和metastore服务启动。在搭建Hadoop的环节中,已经将Hadoop服务启动了,这里将Hive Metastore服务启动。1.0.2.1、服务端启动Debug模式。
2023-01-17 17:44:04
857
原创 大数据技术架构(组件)——Hive:环境准备2
在编译的过程中遇到问题的可能性非常大,大部分是因为maven,可能是网络问题,也可能跟你的镜像配置也有关系。在windows环境下,$HIVE_HOME/bin目录下并未找到cmd结尾的可执行文件,因此为了调通基础环境,可以从低版本中进行拷贝。编译完成后,可以在$HIVE_SRC_HOME/packaging/target目录下找到对应的可执行的压缩包。如果你想要深入学习Hive底层,那么源码编译是必不可少的,所以本篇将采用源码包编译安装的方式。1.0.1.6.3.2.3、log文件重命名。
2023-01-16 14:05:45
1099
3
原创 大数据技术架构(组件)——Hive:环境准备1
下载的软件包中可能不包含下列的文件,但提供了template文件,直接重命名即可。打开$MAVEN_HOME/conf/settings.xml文件,调整maven仓库地址以及镜像地址。创建HADOOP_HOME系统变量,然后将该变量追加到Path全局变量中。1.0.1.4.3.3、修改mapred-site.xml文件。1.0.1.4.3.1、修改core-site.xml文件。1.0.1.4.3.2、修改yarn-site.xml文件。1.0.1.3.2.1、创建JAVA_HOME系统变量。
2023-01-16 13:32:15
545
原创 元数据管理-解决方案调研三:元数据管理解决方案——开源解决方案
数据血缘、基于角色的安全策略、表或列级标签以及中央审计功能使数据管理员可以轻松自信地管理和保护数据访问,直接在 Lakehouse 上满足合规性和隐私需求。2、查看自动化和精选的元数据:使用自动化和精选的元数据建立对数据的信任——表和列的描述、其他常用用户、表上次更新时间、统计信息、数据预览(如果允许)等。Apache Atlas 为组织提供开放的元数据管理和治理功能,以构建其数据资产的目录,对这些资产进行分类和治理,并为数据科学家、分析师和数据治理团队提供围绕这些数据资产的协作功能。
2022-11-22 09:36:08
1929
原创 元数据管理-解决方案调研二:元数据管理解决方案——Saas/内部解决方案(4)
因此,内容页面展示了拥有的跨数据工具资源的所有信息,以显示它如何适应整个数据生态系统:谁使用了资源,谁创建了它,它何时被创建或更新,它与哪些其他资源相关, 等等。4、以团队为中心的数据:Dataportal提供了一个专门的团队页面,因为团队有他们查询的表格、他们创建和查看的仪表板、他们跟踪的团队指标等等。
2022-11-22 09:36:07
577
原创 元数据管理-解决方案调研二:元数据管理解决方案——Saas/内部解决方案(3)
Metacat 提供统一的 REST/Thrift 接口来访问各种数据存储的元数据,相应的元数据存储仍然是模式元数据的真实来源,因此 Metacat 不会在其存储中实现它。Databook 提供了来自 Hive、Vertica、MySQL、Postgres、Cassandra 和其他几个内部存储系统的各种元数据,包括:表模式、表/列描述、样本数据、统计数据、血缘、、表新鲜度、SLA 和责任人等等。因此 Metacat 诞生了,一个系统充当支持的所有数据存储的联合元数据访问层。1、元数据系统的联合视图。
2022-11-21 09:32:10
698
原创 元数据管理-解决方案调研二:元数据管理解决方案——Saas/内部解决方案(2)
Artifact 允许所有团队发现数据资产、他们的文档、血缘、使用、权限和其他有助于用户构建必要数据上下文的元数据。2、数据审计:谁创建或使用这些数据集,它们是如何创建的,它们的依赖关系和服务级别协议 (SLA) 是什么,它们的警报规则是什么以及它们与它们的依赖关系是否一致,以及数据集的生命周期如何管理?2.3、通过交互式数据血缘可视化了解数据的来源为数据科学家、工程师和分析师提供 BI、分析、人工智能和机器学习所需的数据。1、创建跨整个数据资产的统一数据地图,为有效的数据治理和使用奠定基础。
2022-11-21 09:31:58
534
原创 元数据管理-解决方案调研二:元数据管理解决方案——Saas/内部解决方案(1)
3、数据血缘,跟踪数据路径:所有者可以从杂乱复杂的信息系统中快速定位和跟踪路径或者分析数据或者使用变化影响的血缘可视化,实现数据可追溯性和可审计性,对于控制技术风险以及业务和合规风险至关重要。2、轻松连接数据源:提供通用连接和 API 优先方法使 Zeenea 能够适应任何系统和任何数据策略(边缘、云、多云、跨云、混合),以构建企业范围的信息存储库。2、统一企业数据字典:即快速定位感兴趣的数据及其附带的所有属性,并可以根据自定义的属性按照特定的需求调整数据目录。2、理解:帮助用户理解数据。
2022-11-18 09:38:41
623
原创 元数据管理-解决方案调研二:元数据管理解决方案——早期传统解决方案
大多数企业中通常会出现一种情况:用户经常不得不问其他人在哪里可以找到合适的数据,因为很难在数据环境中导航。此外,元数据和上下文的缺乏使得难以信任数据。这种缺乏信任使员工无法使用其知识领域之外的资源,他们害怕不小心使用过时或不正确的信息。因此为了解决这类问题,元数据管理至关重要。关于元数据管理解决方案大致分为四类:1、早期传统解决方案2、Saas/内部解决方案3、开源解决方案。
2022-11-18 09:37:41
442
原创 元数据管理-解决方案调研一:元数据概述
元数据定义:描述数据的数据,对数据及信息资源的描述性信息。小编认为元数据不仅仅是关于数据的数据,它还是一种上下文,赋予信息更加丰富的身份。以图片为例,其图片本身是一种数据,那么图片的名称、属性、尺寸、使用什么设备生成的、生成的时间、责任人等等这些信息其实都属于元数据。
2022-11-17 11:25:08
545
原创 Data Catalog3.0:Modern Metadata for the Modern Data Stack
从2020年开始,在数据领域中,有一个比较流行的术语:The Modern Data Stack(现代数据堆栈),简单理解就是汇集了处理海量数据的最佳工具集。这包括在最好的工具上建立数据基础设施,如用于数据仓库的Snowflake,用于数据湖的Databricks,以及用于数据提取的Fivetran。本文将通过问答的方式给大家分享下Modern Metadata for the Modern Data Stack(基于现代元数据管理构建现代数据堆栈)。
2022-11-17 10:13:25
386
原创 CDO关注的5大趋势
2020年随着疫情爆发,企业开始转向了远程办公,云计算也成为了一种绝对的必需品。站在数据角度来看,每个人都会从不同的地方和系统来访问数据,因此数据安全和治理成为了一个非常重要的事项,同时更加智能的AI也变得更加有吸引力,对于历史模型来说也已经变得毫无意义。当然现代元数据的解决方案、DQC、基础设施、工种等等也发生了一些变化。通俗来讲,企业需要意识并要快速做出改变,增加数据方向的投资,升级系统并创建完美的数据栈来适应“新常态”。
2022-11-16 11:23:49
392
原创 数据治理实战
作为一名数据人,常常自嘲为SQL Boy,某天突然发现原来SQL boy还有一些更高级的工作内容:数据治理。这两年也有很多的大佬分享了很多关于数据治理、数字化转型的干货,个人也从中学习到了很多东西。但真正掌握这些内容和学习编程还是有很大的区别:学习编程可以通过一些简单的demo实践达到知行合一,但治理工作需要结合组织、流程、文化、制度等多因素,需要站在更高的层次,也就是常说的天时地利人和,才能让自己真正的达到知行合一。
2022-11-15 18:43:23
368
原创 ES备忘笔记
ES底层使用的是开源的lucene,它是Lucene的封装,提供了 REST API 的操作接口,开箱即用。ES本质上是一个分布式数据库,允许多台服务器协同工作,每台服务器可以运行多个ES实例。有master和node两种节点。Index:ES数据管理的顶层单位就叫 Index(类似于数据库)Document:Index 里的单条记录成为 DocumentType:Document 可以分组,(类似又不同于数据库的表,type应有相似的schema)keyword:适用于索引结构化的字段,如字段需要进
2022-07-07 18:18:51
128
原创 Hive中的函数分为两类:内置函数和自定义函数
显示当前会话有多少函数可用 :显示函数的描述信息 :Hive的自定义函数:1) UDF:操作单个数据行,产生单个数据行。2) UDAF:操作多个数据行,产生一个数据行。3) UDTF:操作一个数据行,产生多个数据行一个表作为输出。第一步:继承UDF或者UDAF或者UDTF,实现特定的方法(如:evalute方法,但该方法不存在于UDF中,Hive会检查用户的UDF是否拥有一个evalute方法)。第二步:将写好的类打包为jar。如Hivefirst.jar。第三步:进入到Hive外壳
2022-07-06 15:39:59
298
原创 Linux添加、删除用户和用户组
本文总结了Linux添加或者删除用户和用户组时常用的一些命令和参数。1、建用户:2、建工作组3、新建用户同时增加工作组注::-g 所属组 -d 家目录 -s 所用的SHELL4、给已有的用户增加工作组或者:5、临时关闭:在/etc/shadow文件中属于该用户的行的第二个字段(密码)前面加上*就可以了。想恢复该用户,去掉*即可。或者使用如下命令关闭用户账号:重新释放:6、永久性删除用户账号7、从组中删除用户编辑/etc/group 找到GROUP1那一行,删除...
2022-07-05 14:47:39
10977
原创 Socket NIO原理和实现
使用传统的I/O程序读取文件内容, 并写入到另一个文件(或Socket), 如下程序:会有较大的性能开销, 主要表现在一下两方面:1. 上下文切换(context switch), 此处有4次用户态和内核态的切换2. Buffer内存开销, 一个是应用程序buffer, 另一个是系统读取buffer以及socket buffer其运行示意图如下 1) 先将文件内容从磁盘中拷贝到操作系统buffer2) 再从操作系统buffer拷贝到程序应用buffer3) 从程序buffer拷贝到sock
2022-06-28 13:15:45
224
原创 Java NIO SocketChannel
Java NIO中的SocketChannel是一个连接到TCP网络套接字的通道。可以通过以下2种方式创建SocketChannel:打开一个SocketChannel并连接到互联网上的某台服务器。一个新连接到达ServerSocketChannel时,会创建一个SocketChannel。打开 SocketChannel下面是SocketChannel的打开方式:关闭 SocketChannel当用完SocketChannel之后调用SocketChannel.close()关闭Socke
2022-06-26 11:36:30
453
原创 Java NIO ServerSocketChannel
Java NIO中的 ServerSocketChannel 是一个可以监听新进来的TCP连接的通道, 就像标准IO中的ServerSocket一样。ServerSocketChannel类在 java.nio.channels包中。这里有个例子:打开 ServerSocketChannel通过调用 ServerSocketChannel.open() 方法来打开ServerSocketChannel.如:关闭 ServerSocketChannel通过调用ServerSocketChan
2022-06-21 09:41:49
201
原创 Java NIO Selector(三)
通过Selector选择通道一旦向Selector注册了一或多个通道,就可以调用几个重载的select()方法。这些方法返回你所感兴趣的事件(如连接、接受、读或写)已经准备就绪的那些通道。换句话说,如果你对“读就绪”的通道感兴趣,select()方法会返回读事件已经就绪的那些通道。下面是select()方法:select()阻塞到至少有一个通道在你注册的事件上就绪了。select(long timeout)和select()一样,除了最长会阻塞timeout毫秒(参数)。selectNow()
2022-06-21 09:38:37
165
原创 Java NIO Selector(二)
在上一小节中,当向Selector注册Channel时,register()方法会返回一个SelectionKey对象。这个对象包含了一些你感兴趣的属性:下面我会描述这些属性。interest集合就像向Selector注册通道一节中所描述的,interest集合是你所选择的感兴趣的事件集合。可以通过SelectionKey读写interest集合,像这样:可以看到,用“位与”操作interest 集合和给定的SelectionKey常量,可以确定某个确定的事件是否在interest 集合中。ready
2022-06-20 09:53:55
100
原创 Java NIO Selector(一)
Selector(选择器)是Java NIO中能够检测一到多个NIO通道,并能够知晓通道是否为诸如读写事件做好准备的组件。这样,一个单独的线程可以管理多个channel,从而管理多个网络连接。为什么使用Selector?仅用单个线程来处理多个Channels的好处是,只需要更少的线程来处理通道。事实上,可以只用一个线程处理所有的通道。对于操作系统来说,线程之间上下文切换的开销很大,而且每个线程都要占用系统的一些资源(如内存)。因此,使用的线程越少越好。但是,需要记住,现代的操作系统和CPU在多任务方面
2022-06-20 09:51:32
455
原创 Java NIO Scatter Gather
Java NIO开始支持scatter/gather,scatter/gather用于描述从Channel中读取或者写入到Channel的操作。分散(scatter):从Channel中读操作时,将读取的数据写入多个buffer中。聚集(gather):向Channel中写操作时,将多个buffer的数据写入同一个Channel。scatter / gather经常用于需要将传输的数据分开处理的场合,例如传输一个由消息头和消息体组成的消息,你可能会将消息体和消息头分散到不同的buffer中,这样你可以方便
2022-06-18 21:12:30
108
原创 Java NIO Pipe
Java NIO 管道是2个线程之间的单向数据连接。Pipe有一个source通道和一个sink通道。数据会被写到sink通道,从source通道读取。这里是Pipe原理的图示:通过Pipe.open()方法打开管道。例如:向管道写数据要向管道写数据,需要访问sink通道。像这样:通过调用SinkChannel的write()方法,将数据写入SinkChannel,像这样:从管道读取数据从读取管道的数据,需要访问source通道,像这样:调用source通道的read()方法
2022-06-18 21:09:30
123
原创 Java NIO Java NIO DatagramChannel
Java NIO中的DatagramChannel是一个能收发UDP包的通道。因为UDP是无连接的网络协议,所以不能像其它通道那样读取和写入。它发送和接收的是数据包。打开 DatagramChannel下面是 DatagramChannel 的打开方式:这个例子打开的 DatagramChannel可以在UDP端口9999上接收数据包。接收数据通过receive()方法从DatagramChannel接收数据,如:receive()方法会将接收到的数据包内容复制到指定的Buffer. 如果Buf
2022-06-17 10:03:12
234
原创 Java NIO FileChannel
Java NIO中的FileChannel是一个连接到文件的通道。可以通过文件通道读写文件。FileChannel无法设置为非阻塞模式,它总是运行在阻塞模式下。打开FileChannel在使用FileChannel之前,必须先打开它。但是,我们无法直接打开一个FileChannel,需要通过使用一个InputStream、OutputStream或RandomAccessFile来获取一个FileChannel实例。下面是通过RandomAccessFile打开FileChannel的示例:从File
2022-06-17 09:59:46
259
原创 Java NIO Channel
Java NIO的通道类似流,但又有些不同:正如上面所说,从通道读取数据到缓冲区,从缓冲区写入数据到通道。如下图所示:Channel的实现这些是Java NIO中最重要的通道的实现: FileChannel 从文件中读写数据。 DatagramChannel 能通过UDP读写网络中的数据。 SocketChannel 能通过TCP读写网络中的数据。 ServerSocketChannel可以监听新进来的TCP连接,像Web服务器那样。对每一个新进来的连接都会创建一个SocketCha
2022-06-16 13:26:53
84
原创 Java NIO transfer 通道之间的数据传输
在Java NIO中,如果两个通道中有一个是FileChannel,那你可以直接将数据从一个channel传输到另外一个channel。transferFrom()可以将数据从源通道传输到FileChannel中,下面是一个简单的例子:1、方法的输入参数position表示从position处开始向目标文件写入数据2、count表示最多传输的字节数。3、如果源通道的剩余空间小于 count 个字节,则所传输的字节数要小于请求的字节数。4、此外要注意,在SoketChannel的实现中,SocketCh
2022-06-16 13:23:39
315
原创 kafka可靠性
kafka最初是被LinkedIn设计用来处理log的分布式消息系统,因此它的着眼点不在数据的安全性(log偶尔丢几条无所谓),换句话说kafka并不能完全保证数据不丢失。尽管kafka官网声称能够保证at-least-once,但如果consumer进程数小于partition_num,这个结论不一定成立。考虑这样一个case,partiton_num=2,启动一个consumer进程订阅这个topic,对应的,stream_num设为2,也就是说启两个线程并行处理message。如果auto.commi
2022-06-15 09:52:40
333
原创 Kafka集群文档(七)——设计原理2
负载均衡: producer将会和Topic下所有partition leader保持socket连接;消息由producer直接通过socket发送到broker,中间不会经过任何"路由层".事实上,消息被路由到哪个partition上,有producer客户端决定.比如可以采用"random""key-hash""轮询"等,如果一个topic中有多个partitions,那么在producer端实现"消息均衡分发"是必要的. 其中partition leader的位置(host:port)注册在z
2022-06-10 16:23:55
92
原创 Kafka集群文档(七)——设计原理1
kafka的设计初衷是希望作为一个统一的信息收集平台,能够实时的收集反馈信息,并需要能够支撑较大的数据量,且具备良好的容错能力. 1、持久性:通过nio进行消息读写,同时利用buffer缓存数据,多次写入,大批量刷进磁盘,较少io. kafka使用文件存储消息,这就直接决定kafka在性能上严重依赖文件系统的本身特性.且无论任何OS下,对文件系统本身的优化几乎没有可能.文件缓存/直接内存映射等是常用的手段.因为kafka是对日志文件进行append操作,因此磁盘检索的开支是较小的;同时为了减少磁
2022-06-10 16:21:50
94
原创 kafka集群详解(六)——使用场景
使用场景 1、Messaging :不保证消息的可靠性。 对于一些常规的消息系统,kafka是个不错的选择;partitons/replication和容错,可以使kafka具有良好的扩展性和性能优势.不过到目前为止,我们应该很清楚认识到,kafka并没有提供JMS中的"事务性""消息传输担保(消息确认机制)""消息分组"等企业级特性;kafka只能使用作为"常规"的消息系统,在一定程度上,尚未确保消息的发送与接收绝对可靠(比如,消息重发,消息发送丢失等) 2、Websit activ
2022-06-09 14:38:54
145
原创 kafka集群详解(五)——分布式
Distribution(分布式) partitions分布:一个partition分到一个server上,这个server负责partition的读写。可以配置备份。 一个Topic的多个partitions,被分布在kafka集群中的多个server上;每个server(kafka实例)负责partitions中消息的读写操作;此外kafka还可以配置partitions需要备份的个数(replicas),每 个parti
2022-06-09 14:37:25
786
原创 kafka集群详解(四)
一、入门 1、简介 消息:根据Topic进行归类, 发送消息者:Producer, 消息接受者:Consumer, 每个kafka实例(server):broker。 无论是kafka集群,还是producer和consumer都依赖于zookeeper来保证系统可用性集群保存一些meta信息。 2、Topics/logs Topic:一类消息,每个topic将被分成多个partition(区) partition:在存储层面是app
2022-06-08 09:30:30
210
原创 kafka集群详解(三)
Zookeeper 协调控制1. 管理broker与consumer的动态加入与离开。 每个broker启动后,会在zookeeper上注册一个临时的节点(broker registry):包含broker的ip地址和端口号,所存储的topics和partitions信 息。 每个consumer启动后会在zookeeper上注册一个临时的节点(consumer registry):包含consumer所属的consum
2022-06-08 09:27:53
269
原创 kafka集群详见(二)
发布与订阅接口发布消息时,kafka client先构造一条消息,将消息加入到消息集set中(kafka支持批量发布,可以往消息集合中添加多条消息,一次行发布),send消息时,client需指定消息所属的topic。 订阅消息时,kafka client需指定topic以及partition num(每个partition对应一个逻辑日志流,如topic代表某个产品线,partition代表产品线的日志按天切分的结果)client订阅后,就可迭代读取消息,如果没有消息,client会阻塞直到有新的消息发布
2022-06-07 09:16:05
103
原创 Kafka集群详解(一)
kafka特性:1、kafka的数据只会顺序append,不支持随机写,顺序读写的性能非常高效2、数据的删除策略是累积到一定程度或者超过一定时间再删除 (默认是7天)3、Kafka另一个独特的地方是将消费者信息保存在客户端而不是MQ服务器 (zookeeper)4、消息的投递过程也是采用客户端主动pull的模型5、客户端在pull数据的时候,尽量以zero-copy(nio)的方式传输, 利用sendfile(对应java里的 FileChannel.transferTo/transferFrom)这样的高
2022-06-07 09:13:44
629
原创 中文分词之Java实现使用IK Analyzer实现
IK Analyzer是基于lucene实现的分词开源框架,下载路径:http://code.google.com/p/ik-analyzer/downloads/list需要在项目中引入:IKAnalyzer.cfg.xmlIKAnalyzer2012.jarlucene-core-3.6.0.jarstopword.dic运行后结果:基于|java|语言|开发|的|轻量级|的|中文|分词|工具包|使用(lucene)实现:...
2022-06-06 11:11:53
616
原创 SolrDirectoryFactory的配置
SolrDirectoryFactory的配置:Apache Lucene 以及 Solr 一个重要的属性是 Lucene 目录实现。目录接口为 Lucene 提供抽象的 IO 操作层。尽管选一个目录实现看起来很简单,但是在极端情况下,它会影响性能。以下将为你讲解如何选择正确的目录实现。为了使用期望的目录,要做的就是选择正确的目录实现的工厂类,然后告知 solr。假设你打算使用 NRTCachingDirectory 作为你的目录实现,为了实现这个,需要在 solrconfig.xml 中设置以下内容:这就
2022-06-06 10:58:09
224
原创 HBase性能测试
测试环境说明:服务端参数:客户端参数:最终随机写的测试性能结果如下(点开可看大图):从写的测试来看,可以看到,当客户端线程数在250左右时,此时的响应时间在6ms左右,tps在7.5k左右,差不多是比较好的一个状态。在随机写的测试中,以及我们的一些项目的测试中,看到的一些现象和问题:对写的速度影响比较大的因素主要是:请求次数的分布均衡、是否出现Blocking Update或Delaying flush、HLog数量、DataNode数量、Split File Size。随机读的测试性能结果如下(点开可看大
2022-06-03 19:59:20
84
算法源码-相关性分析:基于(互)相关性的数字信号处理与信号识别(matlab实现)+源代码.zip
2023-06-06
JAVA精品毕业设计项目:JAVA-JSP企业合同管理系统(源代码+数据库+论文任务书检查表答辩PPT+项目说明等).zip
2023-06-13
Highcharts横坐标问题
2018-04-23
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅