
大数据
文章平均质量分 54
godkzz
多多益善
展开
-
Java大数据-DataX从 Oracle 中读取数据存到 MySQL、读取 Oracle 的数据存入 HDFS 中
一、读取数据存到 MySQL1.MySQL 中创建表 [oracle@hadoop102 ~]$ mysql -uroot -p000000mysql> create database oracle;mysql> use oracle;mysql> create table student(id int,name varchar(20));2.编写 datax 配置文件[oracle@hadoop102 ~]$ vim /opt/module/datax/job原创 2022-01-04 16:52:01 · 1838 阅读 · 0 评论 -
Java大数据-DataX读取 MySQL 中的数据存放到 HDFS、读取 HDFS 数据写入 MySQL
一、读取MySQL 中的数据存放到 HDFS官方模板[atguigu@hadoop102 ~]$ python /opt/module/datax/bin/datax.py -r mysqlreader -w hdfswriter{ "job": { "content": [ { "reader": { "name": "mysqlreader", "parameter": { "column": [], "connection": [ { "jdbcUrl": [], .原创 2022-01-04 16:43:34 · 2205 阅读 · 0 评论 -
Java大数据-DataX从stream流读取数据并打印到控制台
一、查看配置模板[atguigu@hadoop102 bin]$ python datax.py -r streamreader -w streamwriterDataX (DATAX-OPENSOURCE-3.0), From Alibaba !Copyright (C) 2010-2017, Alibaba Group. All Rights Reserved.Please refer to the streamreader document: https://github.com/ali原创 2022-01-04 16:32:02 · 1006 阅读 · 0 评论 -
Java大数据-DataX入门
一、DataX概述 简介 DataX 是阿里巴巴开源的一个异构数据源离线同步工具,致力于实现包括关系型数据 库(MySQL、Oracle 等)、HDFS、Hive、ODPS、HBase、FTP 等各种异构数据源之间稳定高 效的数据同步功能。 设计 为了解决异构数据源同步问题,DataX 将复杂的网状的同步链路变成了星型数据链路, DataX 作为中间传输载体负责连接各种数据源。当需要接入一个新的数据源的时候,只需要 将此数据源对接到 DataX,便能跟已有原创 2022-01-04 16:25:20 · 674 阅读 · 0 评论 -
Java大数据-HBase 在java中创建表、删除表、向表中插入数据、删除多行数据、获取所有数据、获取某一行数据、获取某一行指定“列族:列”的数据
一、环境准备在pom中添加依赖<dependency> <groupId>org.apache.hbase</groupId> <artifactId>hbase-server</artifactId> <version>1.3.1</version></dependency><dependency> <groupId>org.apache.hbase</gro原创 2021-12-27 10:24:42 · 1099 阅读 · 0 评论 -
Java大数据-HBase读写流程、MemStore Flush、StoreFile Compaction、Region Split
一、写流程(1)Client 先访问 zookeeper,获取 hbase:meta 表位于哪个 Region Server(2)访问对应的 Region Server,获取 hbase:meta 表,根据读请求的 namespace:table/rowkey, 查询出目标数据位于哪个 Region Server 中的哪个 Region 中。并将该 table 的 region 信息以 及 meta 表的位置信息缓存在客户端的 meta cache,方便下次访问(3)与目标 Region .原创 2021-12-24 17:08:32 · 198 阅读 · 0 评论 -
Java大数据-HBase入门
一、HBase 定义HBase 是一种分布式、可扩展、支持海量数据存储的 NoSQL 数据库。二、HBase 数据模型逻辑上,HBase 的数据模型同关系型数据库很类似,数据存储在一张表中,有行有列。 但从 HBase 的底层物理存储结构(K-V)来看,HBase 更像是一个 multi-dimensional map。三、HBase 逻辑结构四、HBase 物理存储结构五、数据模型(1)Name Space 命名空间,类似于关系型数据库的 Data.原创 2021-12-24 16:31:16 · 342 阅读 · 0 评论 -
Java大数据-Flume事务
Flume Agent 内部原理(1)ChannelSelector ChannelSelector 的作用就是选出 Event 将要被发往哪个 Channel。其共有两种类型, 分别是 Replicating(复制)和 Multiplexing(多路复用)。ReplicatingSelector 会将同一个 Event 发往所有的 Channel,Multiplexing 会根据相应的原则,将不同的 Event 发往不同的 Channel。(2)SinkProcessor...原创 2021-12-24 16:06:59 · 111 阅读 · 0 评论 -
Java大数据-Flume基础架构、监听数据端口、实时监控单个追加文件、实时监控目录下多个新文件、实时监控目录下的多个追加文件
一、Flume 定义 Flume 是Cloudera 提供的一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统。Flume 基于流式架构,灵活简单。基础架构(1)AgentAgent 是一个 JVM 进程,它以事件的形式将数据从源头送至目的。Agent 主要有 3 个部分组成,Source、Channel、Sink。(2)SourceSource 是负责接收数据到 Flume Agent 的组件。Source 组件可以处理各种类型、各种...原创 2021-12-24 15:28:50 · 421 阅读 · 0 评论 -
Java大数据-Sqoop数据导入与导出
一、Sqoop简介Sqoop是一款开源的工具,主要用于在Hadoop(Hive)与传统的数据库(mysql、postgresql...)间进行数据的传递,可以将一个关系型数据库(例如 : MySQL ,Oracle ,Postgres等)中的数据导进到Hadoop的HDFS中,也可以将HDFS的数据导进到关系型数据库中。Sqoop项目开始于2009年,最早是作为Hadoop的一个第三方模块存在,后来为了让使用者能够快速部署,也为了让开发人员能够更快速的迭代开发,Sqoop独立成为一个Apache项原创 2021-12-23 10:47:34 · 557 阅读 · 0 评论 -
Java大数据-HiveDML数据导入与导出、Truncate
一、数据导入1.向表中装载数据(Load)语法load data [local] inpath '/opt/module/datas/student.txt' overwrite | into table student [partition (partcol1=val1,…)](1)load data:表示加载数据(2)local:表示从本地加载数据到hive表;否则从HDFS加载数据到hive表(3)inpath:表示加载数据的路径(4)overwrite:表示覆盖表原创 2021-12-22 16:38:32 · 313 阅读 · 0 评论 -
Java大数据-Hive分区表基本操作、注意事项
分区表实际上就是对应一个HDFS文件系统上的独立的文件夹,该文件夹下是该分区所有的数据文件。Hive中的分区就是分目录,把一个大的数据集根据业务需要分割成小的数据集。在查询时通过WHERE子句中的表达式选择查询所需要的指定的分区,这样的查询效率会提高很多。一、分区表基本操作1.引入分区表(需要根据日期对日志进行管理)/user/hive/warehouse/log_partition/20170702/20170702.log/user/hive/warehouse/log_partit.原创 2021-12-22 15:48:52 · 492 阅读 · 0 评论 -
Java大数据-Hive创建表、管理表、外部表、管理表与外部表的互相转换
一、创建表1.建表语法CREATE [EXTERNAL] TABLE [IF NOT EXISTS] table_name [(col_name data_type [COMMENT col_comment], ...)] [COMMENT table_comment] [PARTITIONED BY (col_name data_type [COMMENT col_comment], ...)] [CLUSTERED BY (col_name, col_name, ...) [SORT原创 2021-12-22 15:15:11 · 525 阅读 · 0 评论 -
Java大数据-Hive所有数据类型解析及类型转化
一、基本数据类型对于Hive的String类型相当于数据库的varchar类型,该类型是一个可变的字符串,不过它不能声明其中最多能存储多少个字符,理论上它可以存储2GB的字符数。二、集合数据类型Hive有三种复杂数据类型ARRAY、MAP 和 STRUCT。ARRAY和MAP与Java中的Array和Map类似,而STRUCT与C语言中的Struct类似,它封装了一个命名字段集合,复杂数据类型允许任意层次的嵌套。三、案例 假设某表有如下一行,我们用JSON格式来...原创 2021-12-22 11:26:21 · 897 阅读 · 0 评论 -
Java大数据-Hive入门
1.1 什么是HiveHive:由Facebook开源用于解决海量结构化日志的数据统计。Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张表,并提供类SQL查询功能。本质是:将HQL转化成MapReduce程序1)Hive处理的数据存储在HDFS2)Hive分析数据底层的实现是MapReduce3)执行程序运行在Yarn上1.2 Hive的优缺点1.2.1 优点操作接口采用类SQL语法,提供快速开发的能力(简单、容易上手)。.原创 2021-12-22 10:53:04 · 424 阅读 · 0 评论 -
Java大数据-Hadoop-Yarn 调度器和调度算法FIFO、容量调度器、公平调度器
目前,Hadoop 作业调度器主要有三种:FIFO、容量(Capacity Scheduler)和公平(Fair Scheduler)。Apache Hadoop3.1.3 默认的资源调度器是 Capacity Scheduler。 CDH 框架默认调度器是 Fair Scheduler。 具体设置详见:yarn-default.xml 文件<property> <description>The class to use as the resource scheduler.&原创 2021-12-21 14:55:58 · 1017 阅读 · 2 评论 -
Java大数据-Hadoop-Yarn基础架构、工作机制、作业提交全过程
一、基础架构二、工作机制(1)MR 程序提交到客户端所在的节点。(2)YarnRunner 向 ResourceManager 申请一个 Application。(3)RM 将该应用程序的资源路径返回给 YarnRunner。(4)该程序将运行所需资源提交到 HDFS 上。(5)程序资源提交完毕后,申请运行 mrAppMaster。(6)RM 将用户的请求初始化成一个 Task。(7)其中一个 NodeManager 领取到 Task 任务。(8)该 N...原创 2021-12-21 14:31:03 · 231 阅读 · 0 评论 -
Java大数据-Hadoop-HDFS- DN (DataNode)工作机制、数据完整性、掉线时限参数设置
一、DataNode(1)一个数据块在 DataNode 上以文件形式存储在磁盘上,包括两个文件,一个是数据 本身,一个是元数据包括数据块的长度,块数据的校验和,以及时间戳。(2)DataNode 启动后向 NameNode 注册,通过后,周期性(6 小时)的向 NameNode 上 报所有的块信息。DN 向 NN 汇报当前解读信息的时间间隔,默认 6 小时<property><name>dfs.blockreport.intervalMsec</.转载 2021-12-21 10:13:49 · 411 阅读 · 0 评论 -
Java大数据-Hadoop-HDFS- NN (NameNode)和 2NN(SecondaryNameNode) 工作机制
思考:NameNode 中的元数据是存储在哪里的?首先,我们做个假设,如果存储在 NameNode 节点的磁盘中,因为经常需要进行随机访 问,还有响应客户请求,必然是效率过低。因此,元数据需要存放在内存中。但如果只存在 内存中,一旦断电,元数据丢失,整个集群就无法工作了。因此产生在磁盘中备份元数据的 FsImage。这样又会带来新的问题,当在内存中的元数据更新时,如果同时更新 FsImage,就会导 致效率过低,但如果不更新,就会发生一致性问题,一旦 NameNode 节点断电,就会产生数 据丢失。转载 2021-12-21 09:29:26 · 135 阅读 · 0 评论 -
Java大数据-Hadoop-HDFS的读数据流程(原理)
一、HDFS 读数据流程(1)客户端通过 DistributedFileSystem 向 NameNode 请求下载文件,NameNode 通过查 询元数据,找到文件块所在的 DataNode 地址。(2)挑选一台 DataNode(就近原则,然后随机)服务器,请求读取数据。(3)DataNode 开始传输数据给客户端(从磁盘里面读取数据输入流,以 Packet 为单位 来做校验)。(4)客户端以 Packet 为单位接收,先在本地缓存,然后写入目标文件。...原创 2021-12-20 15:49:47 · 312 阅读 · 0 评论 -
Java大数据-Hadoop-HDFS的写数据流程(原理)、网络拓扑-节点距离计算、机架感知
(1)客户端通过 Distributed FileSystem 模块向 NameNode 请求上传文件,NameNode 检查目标文件是否已存在,父目录是否存在。(2)NameNode 返回是否可以上传。(3)客户端请求第一个 Block 上传到哪几个 DataNode 服务器上。(4)NameNode 返回 3 个 DataNode 节点,分别为 dn1、dn2、dn3。(5)客户端通过 FSDataOutputStream 模块请求 dn1 上传数据,dn1 收到请求会继续调用 d...转载 2021-12-20 14:59:30 · 420 阅读 · 0 评论 -
Java大数据-Hadoop-HDFS客户端文件和文件夹判断
@Testpublic void testListStatus() throws IOException, InterruptedException, URISyntaxException{ // 1 获取文件配置信息 Configuration configuration = new Configuration(); FileSystem fs = FileSystem.get(new URI("hdfs://hadoop102:8020"), configuration, "atguigu.原创 2021-12-20 14:45:36 · 933 阅读 · 0 评论 -
Java大数据-Hadoop-HDFS客户端文件详情查看
查看文件名称、权限、长度、块信息@Testpublic void testListFiles() throws IOException, InterruptedException, URISyntaxException {// 1 获取文件系统Configuration configuration = new Configuration();FileSystem fs = FileSystem.get(new URI("hdfs://hadoop102:8020"), configurat原创 2021-12-20 14:44:32 · 566 阅读 · 0 评论 -
Java大数据-Hadoop-HDFS客户端删除文件和目录
@Testpublic void testDelete() throws IOException, InterruptedException, URISyntaxException{// 1 获取文件系统Configuration configuration = new Configuration();FileSystem fs = FileSystem.get(new URI("hdfs://hadoop102:8020"), configuration, "atguigu");// 2 .原创 2021-12-20 14:43:35 · 880 阅读 · 0 评论 -
Java大数据-Hadoop-HDFS客户端操作文件更名和移动
@Testpublic void testRename() throws IOException, InterruptedException, URISyntaxException{// 1 获取文件系统Configuration configuration = new Configuration();FileSystem fs = FileSystem.get(new URI("hdfs://hadoop102:8020"), configuration, "atguigu"); // 2.原创 2021-12-20 14:42:42 · 771 阅读 · 0 评论 -
Java大数据-Hadoop-HDFS客户端文件下载
@Testpublic void testCopyToLocalFile() throws IOException, InterruptedException, URISyntaxException{ // 1 获取文件系统 Configuration configuration = new Configuration(); FileSystem fs = FileSystem.get(new URI("hdfs://hadoop102:8020"), configuration, "atgu.原创 2021-12-20 14:41:08 · 541 阅读 · 0 评论 -
Java大数据-Hadoop-HDFS的参数优先级顺序
编写测试客户端代码@Testpublic void testCopyFromLocalFile() throws IOException, InterruptedException, URISyntaxException { // 1 获取文件系统 Configuration configuration = new Configuration(); configuration.set("dfs.replication", "2"); FileSystem fs = FileSystem..原创 2021-12-20 14:38:15 · 360 阅读 · 0 评论 -
Java大数据-Hadoop-HDFS的Shell 操作
基本语法 hadoop fs 具体命令 OR hdfs dfs 具体命令 两个是完全相同的。 命令大全 [atguigu@hadoop102 hadoop-3.1.3]$ bin/hadoop fs[-appendToFile <localsrc> ... <dst>] [-cat [-ignoreCrc] <src> ...] [-chgrp [-R] GROUP PATH...] [-chmod [-R] <MODE[,MODE]...原创 2021-12-20 12:06:17 · 1003 阅读 · 0 评论 -
Java大数据-Hadoop-HDFS文件块大小
HDFS中的文件在物理上是分块存储(Block),块的大小可以通过配置参数 ( dfs.blocksize)来规定,默认大小在Hadoop2.x/3.x版本中是128M,1.x版本中是64M。为什么块的大小不能设置太小,也不能设置太大?(1)HDFS的块设置太小,会增加寻址时间,程序一直在找块的开始位置;(2)如果块设置的太大,从磁盘传输数据的时间会明显大于定位这个块开 始位置所需的时间。导致程序在处理这块数据时,会非常慢。总结:HDFS块的大小设置主要取决于磁盘传输速率。...原创 2021-12-20 11:38:13 · 728 阅读 · 0 评论