自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(61)
  • 收藏
  • 关注

原创 Hive事务

1.概念:是数据库操作的最小工作单元,是作为单个逻辑工作单元执行的一系列操作;这些操作作为一个整体一起向系统提交,要么都执行、要么都不执行;事务是一组不可再分割的操作集合(工作逻辑单元);2.事务特性(ACID)(1)Atomicity:原子性事务是数据库的逻辑工作单位,事务中包含的各操作要么都做,要么都不做(2)Consistency:一致性事 务执行的结果必须是使数据库从一个一致性状态变到另一个一致性状态。因此当数据库只包含成功事务提交的结果时,就说数据库处于一致性状态。如果数据库系统 运行

2020-10-13 11:39:09 519

原创 Hive窗口函数详解

1.概述(1)窗口函数是一组特殊函数①扫描多个输入行来计算每个输出值,为每行数据生成一行结果②可以通过窗口函数来实现复杂的计算和聚合(2)语法Function (arg1,..., arg n) OVER ([PARTITION BY <...>] [ORDER BY <....>] [<window_clause>])①PARTITION BY类似于GROUP BY,未指定则按整个结果集②只有指定ORDER BY子句之后才能进行窗口定义③可同时使用多个

2020-10-12 10:23:58 2841

原创 Hive基础语句

1.数据库操作(1)创建数据库为避免要创建的数据库已经存在错误,增加if not exists判断。(标准写法)create database if not exists myhivebook;(2)使用数据库use myhivebook;(3)修改数据库用户可以使用ALTER DATABASE命令为某个数据库的DBPROPERTIES设置键-值对属性值,来描述这个数据库的属性信息。数据库的其他元数据信息都是不可更改的,包括数据库名和数据库所在的目录位置。alter database m

2020-10-08 13:37:31 2271

原创 Hadoop生态系统框架详解(三):MapReduce框架

MapReduce入门1.概念:Mapreduce是一个分布式运算程序的编程框架,是用户开发“基于hadoop的数据分析应用”的核心框架;Mapreduce核心功能是将用户编写的业务逻辑代码和自带默认组件整合成一个完整的分布式运算程序,并发运行在一个hadoop集群上。2.优点:①MapReduce 易于编程:它简单的实现一些接口,就可以完成一个分布式程序,这个分布式程序可以分布到大量廉价的 PC 机器运行。也就是说你写一个分布式程序,跟写一个简单的串行程序是一模一样的。 就是因为这个特点使得 M

2020-09-27 11:35:44 477

原创 Hadoop数据模型

Text1.概念:文本文件通常采用CSV、JSON等固度长度的纯文本格式2.优点:①便于与其他应用程序(生成或分割文件)或脚本进行数据交换②易读性好,便于理解3.缺点:①数据存储量非常庞大②查询效率不高③不支持块压缩SequenceFile1.概念:①SequenceFile按行存储二进制键值对数据,HDFS自带②二进制文件直接将<Key,Value>序列化到文件中③常用于在MapReduce作业之间传输数据④可用作Hadoop中小文件的打包存档(小文件合并)⑤即使

2020-09-24 12:08:22 645

原创 HDFS之hdfs Java API以及I/O流的操作过程

环境准备1.解压 hadoop 安装包到非中文路径(例如:D:\users\hadoop-2.6.0-cdh5.14.2)2.在 windows 上配置 HADOOP_HOME 环境变量(与 windows 配置 jdk 环境变量方法类似)3.创建一个 Maven 工程 HdfsClientDemo4.导入相应依赖如下:<!-- https://mvnrepository.com/artifact/org.apache.logging.log4j/log4j-core --><

2020-09-24 02:53:00 248

原创 HDFS之Shell 命令

常用命令大全:-help:查看命令的使用方式-ls: 显示目录信息-mkdir:在hdfs上建目录①hdfs dfs -mkdir /bigdata②hdfs dfs -mkdir -p /kgc/test-moveFromLocal: 从本地剪切粘贴到hdfs上-appendToFile:追加一个文件到已经存在的文件的末尾-cat: 显示文件内容-tail: 显示一个文件的末尾-chgrp/chmod/chown liunx:文件系统用法 用于修改文件所属权限①hdfs dfs -c

2020-09-23 19:46:33 240

原创 HDFS之HDFS读写流程

HDFS读文件流程图解详细步骤1.首先调用FileSystem.open()方法,获取到DistributedFileSystem实例。2.DistributedFileSystem 向Namenode发起RPC(远程过程调用)请求获得文件的开始部分或全部block列表,对于每个返回的块,都包含块所在的DataNode地址。这些DataNode会按照Hadoop定义的集群拓扑结构得出客户端的距离,然后再进行排序。如果客户端本身就是一个DataNode,那么他将从本地读取文件。3.Distribu

2020-09-23 19:24:23 244

原创 Hadoop生态系统框架详解(二):HDFS

HDFS产生背景:随着数据量越来越大,在一个操作系统管辖的范围内存不下了,那么就分配到更多的操作系统管理的磁盘中,但是不方便管理和维护,迫切需要一种系统来管理多台机器上的文件,这就是分布式文件管理系统。HDFS只是分布式文件管理系统中的一种。概念:...

2020-09-23 18:56:40 390

原创 Hadoop生态系统框架详解(一):Hadoop框架

Hadoop框架简述:Hadoop是一个由Apache基金会所开发的分布式系统基础架构。主要解决海量数据的存储和海量数据的分析计算问题。广义上来说,HADOOP通常是指一个更广泛的概念——HADOOP生态圈思想来源:Google三大理论(GFS 文件存储、MapReduce 计算、Bigtable)发行版本:1.Apache 最原始基础的版本,适用于初学者2.Cloudera 大型互联网企业中使用较多3.Hortonworks 多用于文档较好优势:1.高可靠性:Hadoop底层维护多个数据副

2020-09-23 12:04:32 953

原创 Flume日志收集详解

Flume简介1.Flume概述(1)概念:Apache Flume 是一个分布式的、可靠的、可用的数据收集系统。它可以有效地收集、聚合和移动大量的日志数据,这些数据可以从许多不同的来源转移到Hadoop或者其它目的地。(2)Apache Flume 不仅仅限于日志数据聚合。Flume 可用于传输大量事件数据,包括但不限于网络流量数据、社交媒体生成的数据、电子邮件消息以及几乎所有可能的数据源。(3)Flume拥有基于数据流上的简单灵活架构,支持容错、故障转移与恢复。2.Flume特点(1)

2020-10-26 16:03:50 1239 1

原创 Spark SQL详解

Spark SQL原理1.Spark SQL概述(1)概念:Spark SQL 是 Spark 1.0 的新加入成员,前身是 Shark。(2)shark的初衷:①让Hive运行在Spark之上②是对Hive的改造,继承了大量Hive代码,给优化和维护带来了大量的麻烦(3)Spark SQL覆盖了shark的功能,并且拜托了Hive的依赖(4)Spark SQL特点:①易整合②统一的数据访问方式③兼容Hive2.Spark SQL架构(1)Spark SQL是Spark的核心组件之

2020-10-23 11:16:45 1556

原创 Spark分布式计算原理

RDD依赖以及DAG原理1.RDD的转换val lines=sc.textFile("/data/words.txt") //①val count=lines.flatMap(line=>line.split(" ")) //②.map(word=>(word,1)) //③.reduceByKey(_+_) //④count.collect //⑤(1)首先从 HDFS 中读取文件,产生一个 HadoopRDD,然后进行RDD 转换,转换结果为 MapPartitionsRDD

2020-10-22 09:48:31 944 1

原创 Apache Spark基础及架构

为什么使用Spark1.MapReduce编程模型的局限性(1)繁杂:只有Map和Reduce两个操作,复杂的逻辑需要大量的样板代码(2)处理效率低:①Map中间结果写磁盘,Reduce写HDFS,多个Map通过HDFS交换数据②任务调度与启动开销大(3)不适合迭代处理、交互式处理和流式处理2.Spark是类Hadoop MapReduce的通用并行框架(1)Job中间输出结果可以保存在内存,不再需要读写HDFS(2)比MapReduce平均快10倍以上3.Spark优势(1)速度快

2020-10-21 18:47:00 340 1

原创 Scala模式匹配

模式匹配指检查某个值(value)是否匹配某一个模式的机制,是 Scala 非常重要、非常强大的功能,它不仅可以匹配值,还能够匹配类型等。其本质是 match case 语法1.match表达式(1)定义:①类似 Java 中的 switch 语句②Scala中任何类型都能当作比较用的样本(case),另外每个备选项最后不需要 break③break 是隐含的,防止因为疏忽从一个选择落入另一个中(2)match选择器val firstArg=if(args.length>0) args(

2020-10-21 16:19:26 2156

原创 Scala 面向对象(OOP)详解

Scala面向对象编程综述1.Scala是纯粹的面向对象的语言Scala 是纯粹的面向对象的语言,每个值都是对象,每个操作都是方法调用。2.Scala大量重用了Java中的类型Scala 与 Java 完全兼容,Scala 程序会被编译成 Java 字节码,访问 Java 字段,继承 Java 类,实现 Java 接口都不需要特别的语法。3…Scala OOP 比较 Java OOP 的主要差异(1)Scala取消了接口(Interface),新增了类似的特质概念(Trait)。(2)Scal

2020-10-21 15:51:53 785 1

原创 Scala函数详解

1.Scala方法和函数(1)函数式编程:函数是Scala的核心(2)方法是类的一部分属于定义在类中的函数(3)函数定义//定义一个函数/方法def square(x: Int): Int = { println(x) return x * x //return可省略}Val f0=square _//定义一个函数方式2val f1 = (x:Int,y:Int) => x + y 注:def定义的是方法,val/var定义的是对象2.函数调用(1

2020-10-20 11:13:58 355

原创 Scala入门基础

Scala简介1.Scala源自Java(1)Scala构建在JVM之上(2)Scala与Java兼容、互通2.Scala的优势(1)多范式编程:面向对象编程、函数式编程(2)表达能力强,代码精简3.大数据与ScalaSpark采用Scala语言设计(1)提供的API更加优雅(2)基于JVM的语言,能融入Hadoop生态圈4.Scala特点(1)静态类型:Scala 的变量声明后不允许改变类型(2)强类型:Scala 是强类型语言,Scala 在声明变量时一般无需显示指定类型,

2020-10-20 08:50:14 285 1

原创 Sqoop数据迁移

Sqoop简介1.概念:Sqoop是一个用于在Hadoop和关系数据库之间传输数据的工具(1)导入:从关系型数据库到Hadoop平台(2)导出:从Hadoop平台到关系型数据库(3)本质:将导入导出命令翻译成MapReduce程序并行执行(4)场景:常用于数仓中业务数据导入2.目标用户(1)系统管理员、数据库管理员(2)大数据分析师、大数据开发工程师等Sqoop命令1.导入(sqoop import)(1)从RDB导入表到HDFS①常规导入sqoop import --conne

2020-10-19 11:52:23 206

原创 HBase API操作

使用场景:项目部分会使用到从 Kafka 消费数据,然后存储到 HBase 数据库,使用的是HBase Java API。1.环境准备:新建项目后在 pom.xml 中添加依赖<dependency> <groupId>org.apache.hbase</groupId> <artifactId>hbase-client</artifactId> <version>1.2.0-cdh5.14.2</version&gt

2020-10-19 10:53:43 123

原创 HBase优化

1.高可用在 HBase 中 HMaster 负责监控 RegionServer 的生命周期,均衡 RegionServer的负载,如果 HMaster 挂掉了,那么整个 HBase 集群将陷入不健康的状态,并且此时的工作状态并不会维持太久。所以 HBase 支持对 HMaster 的高可用配置。(1)关闭 HBase 集群(如果没有开启则跳过此步)。[root@lyx2 hbase120]$ bin/stop-hbase.sh(2)在 conf 目录下创建 backup-masters 文件。

2020-10-19 10:28:12 554

原创 HBase集成

Phoenix集成HBase1.Phoenix简介:(1)构建在HBase上的SQL层(2)使用标准SQL在HBase中管理书籍(3)使用JDBC来创建表,插入数据、对HBase数据进行查询(4)Phoenix JDBC Driver容易嵌入到支持JDBC的程序中2.缺点:Phoenix无法代替RDBMS缺乏完整性约束,很多领域尚不成熟3.优点:Phoenix使HBase更易用4.应用场景(1)快速而容易地构建基于HBase的应用程序(2)需要极大的规模、性能和并发性的SQL应用程序

2020-10-19 09:40:18 150 1

原创 HBase shell操作详解

1.基本操作(1)进入HBase客户端命令行[root@lyx2 hbase120]$ $HBASE_HOME/bin/hbase shell注意:进入到 shell 环境后,不能使用退格键,需要使用 crtl+退格键。(2)查看帮助命令hbase(main):001:0> help(3)查看当前数据库中有哪些表hbase(main):002:0> list2.表的操作(1)创建表hbase(main):002:0> create 'customer', {NAM

2020-10-15 09:37:58 684

原创 HBase框架原理

1.HBase概述(1)HBase是一个领先的NoSQL数据库①是一个面向列存储的NoSQL数据库②是一个分布式Hash Map,底层数据是Key-Value格式③基于Google Big Table论文④使用HDFS作为存储并利用其可靠性(2)HBase特点①数据访问速度快,响应时间约2-20毫秒②支持随机读写,每个节点20k~100k+ ops/s③可扩展性,可扩展到20,000+节点④高并发2.HBase应用场景(1)增加数据-时间序列数据①高容量,高速写入②HBase之上

2020-10-15 09:04:16 184 1

原创 Hive数据倾斜

1.概念map/reduce程序执行时,reduce节点大部分执行完毕,但是有一个或者几个reduce节点运行很慢,导致整个程序的处理时间很长,这是因为某一个key的条数比其他key多很多(有时是百倍或者千倍之多),这条key所在的reduce节点所处理的数据量比其他节点就大很多,从而导致某几个节点迟迟运行不完,此称之为数据倾斜。2.hive产生数据倾斜的原因(1)key 分布不均匀(2)业务数据本身的特性(3)建表时考虑不周(4)某些 SQL 语句本身就有数据倾斜3.解决方案(1)参数调节

2020-10-14 10:29:58 161

原创 Hive性能优化

Hive性能调优工具1.EXPLAN(执行计划)显示查询语句的执行计划,但不运行通过工具生成可视化执行计划(1)基本语法EXPLAIN [EXTENDED | DEPENDENCY | AUTHORIZATION] query①EXTENDED提供执行计划关于操作的额外信息,比如文件路径②DEPENDENCY提供JSON格式输出,包括查询所依赖的表和分区列表③AUTHORIZATION列出所有需要授权的实体,包括查询的输入输出和授权失败(2)实例演示:①查看下面这条语句的执行计

2020-10-13 20:18:13 289

原创 Hive之DML操作详解

1.概念区分:①DML(Data Manipulation Language)数据操纵语言 :主要用来对数据库的数据进行一些操作,常用的就是INSERT、UPDATE、DELETE。②DDL(Data Define Language)数据定义语言:常用的有CREATE和DROP,用于在数据库中创建新表或删除表,以及为表加入索引等③DCL(Data Control Language)数据控制语言:通过GRANT和REVOKE,确定单个用户或用户组对数据库对象的访问权限2.数据导入(1)向表中装

2020-10-13 19:20:34 1369

原创 Hive函数和UDF详解

Hive函数1.数学函数(1)round①返回对a四舍五入的BIGINT值round(DOUBLE a)返回值:DOUBLE②返回对a四舍五入并保留d位小数位的值round(DOUBLE a, INT d)返回值:binary(2)floor向下取整,如:6.10->6 -3.4->-4floor(DOUBLE a)返回值:BIGINT(3)rand返回一个DOUBLE型随机数,seed是随机因子rand(INT seed)返回值:DOUBLE(4)

2020-10-13 10:38:28 1370

原创 Hive高级查询

基本查询1.全表和特定字段查询(1)全表查询hive (default)> select * from emp;(2)特定字段查询hive (default)> select empno, ename from emp;(3)注意:①SQL 语言大小写不敏感②SQL 可以写在一行或者多行③关键字不能被缩写也不能分行④各子句一般要分行写(不分行写不会报错,但影响阅读)⑤使用缩进提高语句的可读性2.列别名和 MySQL 一样,我们同样可以通过列别名重命名一个列,以便于计

2020-10-09 11:25:18 489

原创 Hive框架详解

Hive基本概念1.hive基本概念(1)起源:由FaceBook开源,用于解决海量结构化日志的数据统计。(2)概念:Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张表,并提供类SQL查询功能。(3)本质:将HQL转换成MapReduce程序。①Hive处理的数据存储在HDFS②Hive分析数据底层的实现是MapReduce③执行程序运行在YARN上2.hive优缺点:(1)优点:①操作接口采用类SQL语法,提供快速开发的能力(简单、容易上手)②避免了去写

2020-10-05 22:34:43 1330

原创 Hadoop高可用集群搭建

HDFS-HA集群配置1.HDFS-HA集群配置(1)HDFS 高可用集群规划,请保证 Hadoop 完全分布式和 ZooKeeper 完全分布式环境已经安装完成hadoop1 hadoop2JournalNode JournalNode(2)hadoop1中配置core-site.xml[root@hadoop1 hadoop]# vi core-site.xml 修改为下:<configuration> <!-- 把两个 NameNode的地址组装成一个集群 m

2020-09-29 20:09:26 227

原创 Zookeeper分布式环境搭建

1.解压安装包[root@hadoop1 opt]# tar zxvf zookeeper-3.4.5-cdh5.14.2.tar.gz -C /opt/soft/2.建立软连接[root@hadoop1 soft]mv zookeeper-3.4.5-cdh5.14.2 /opt/soft/zk3453.修改配置文件[root@hadoop1 opt]# cd /opt/soft/zk345/conf/[root@hadoop1 conf]# cp zoo_sample.cfg zoo.c

2020-09-29 11:45:10 530

原创 Hadoop完全分布式的搭建

1.准备4台克隆已经安装hadoop的虚拟机分别为master,hadoop1,hadoop2,hadoop3。(1)修改ip地址如下:①master:192.168.228.161②hadoop1:192.168.228.162③hadoop2:192.168.228.163④hadoop3:192.168.228.164(2)修改主机名(vi /etc/hostname)分别为master,hadoop1,hadoop2,hadoop3(3)修改/etc/hosts文件在每台linu

2020-09-29 10:38:51 102

原创 分布式应用协同服务:Zookeeper

zookeeper概述1.简述:Zookeeper是一个开源的分布式的,为分布式应用提供协调服务的Apache项目。2.zookeeper角色:(1)Leader(领导者)负责进行投票的发起和决议,更新系统状态(2)Follower(跟随者)用于接收客户端请求并向客户端返回结果,在选主过程中参与投票(3)Observer(观察者)可以接收客户端连接,将写请求转发给Leader节点。但Observer不参加投票过程,只同步Leader状态。3.特点:(1)Zookeeper:一个领导者(

2020-09-28 19:04:35 224

原创 Hadoop生态系统框架详解(四):Yarn框架

Yarn简介1.产生背景:(1)Hadoop1.x版本中最大的问题是资源问题①对数据的处理和资源调度主要依赖MapReduce完成,只能运行MapReduce程序②JobTracker负责资源管理和程序调度,压力较大(2)Hadoop2.x版本添加YARN主要负责集群资源管理2.概述:核心思想是将资源管理和任务的监控和调度分离(1)通用的资源管理系统,可为不同的应用(MapReduce、Spark、Flink等)提供统一的资源管理和调度(2)它的引入为集群在利用率、资源统一管理和数据共享等

2020-09-28 17:43:24 366

原创 MapReduce优化方法

MapReduce 优化需要考虑的点Mapreduce 程序效率取决于以下几点:1.计算机性能CPU、内存、磁盘健康、网络2.I/O 操作优化(1)数据倾斜(2)map 和 reduce 数设置不合理(3)map 运行时间太长,导致 reduce 等待过久(4)小文件过多(5)大量的不可分块的超大文件(6)spill 次数过多(7)merge 次数过多等。MapReduce 优化方法1.数据输入:合并小文件:在执行 mr 任务前将小文件进行合并,大量的小文件会产生大量的 map

2020-09-28 15:20:39 262

原创 MapReduce之Partition分区实例操作

1.需求:将统计结果按照手机归属地不同省份输出到不同文件中(分区)2.案例数据:phone_data.txt如下:1363157985066 13726230503 00-FD-07-A4-72-B8:CMCC 120.196.100.82 i02.c.aliimg.com 24 27 2481 24681 2001363157995052 13826544101 5C-0E-8B-C7-F1-E0:CMCC 120.197.40.4 4 0 264 0 20013631579910

2020-09-28 14:47:36 904

原创 MapReduce之使用序列化 Bean 对象统计流量信息

1.需求:给定的文件中是手机流量信息,统计每一个手机号耗费的总上行流量、下行流量、总流量。2.案例数据:phone_data.txt数据如下:1363157985066 13726230503 00-FD-07-A4-72-B8:CMCC 120.196.100.82 i02.c.aliimg.com 24 27 2481 24681 2001363157995052 13826544101 5C-0E-8B-C7-F1-E0:CMCC 120.197.40.4 4 0 264 0

2020-09-28 14:02:19 373

原创 MapReduce之实现WordCount案例

1.需求统计一个文件中每一个单词出现的总次数。2.案例数据wordcount.txt文件如下hello world MapReducehadoop world Yarnhello hadoop Hdfs 3.分析分别编写自定义 Mapper,Reducer,Driver。(1)Mapper类逻辑处理:①将 map 端输入为内容转换为 String 类型。②根据文件内容分隔符(空格)将每一行切分成单词。③Map 端输出数据的<K,V>格式为<word,1>

2020-09-28 11:29:52 417

原创 HDFS之DataNode工作机制

一个数据块在 DataNode 上以文件形式存储在对应服务器的磁盘上,包括两个文件,一个是数据本身,一个是元数据包括数据块的长度,块数据的校验和,以及时间戳。DataNode 启动后向 NameNode 注册,通过后,周期性(1 小时)的向 NameNode上报所有的块信息。心跳是每 3 秒一次,心跳返回结果带有 NameNode 给该 DataNode 的命令如复制块数据到另一台机器,或删除某个数据块。如果超过 10 分钟没有收到某个DataNode 的心跳,则认为该节点不可用。集群运行中

2020-09-24 10:40:36 167

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除