自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Hbase常用Api

在IDEA中创建hbase-demo模块并添加如下依赖​<dependencies> <dependency> <groupId>org.apache.hbase</groupId> <artifactId>hbase-client</artifactId> <version>2.0.5</version>

2021-06-18 10:51:13 204

原创 如何理解依赖注入

假如有一个 船(Chuan)类 ,成员变量中肯定需要一个 桨(Jiang) 类,class Chuan{ Jiang j = new Jiang() ;}如果船要干什么事,肯定需要桨的参与。所以是十分 “依赖”桨;来新需求,桨需要统一长度为10米。需要重构:这时候我们需要控制桨的长度为10在构造方法中。我们需要这么写;class Chuan{ Jiang j = new Jiang(10) ;}来了,这一个改动同时需要修改桨的类即加入长度属性,又需要修改船其中的new Jiang(

2021-06-18 10:49:26 394

原创 flink on zeppelin

一.什么是 zeppelinZeppelin是一个基于Web的notebook,提供交互数据分析和可视化。后台支持接入多种数据处理引擎,如flink,spark,hive等。支持多种语言: Scala(Apache Spark)、Python(Apache Spark)、SparkSQL、 Hive、 Markdown、Shell等。开发者可以通过实现更多的解释器来为Zeppelin添加数据引擎。官方支持的执行引擎用一幅图可以清晰描述执行引擎的作用就是执行笔记中的与引擎相对应的代码,不同的引擎也会有不同

2021-06-18 10:28:03 756

原创 HBase Rowkey企业设计实战

HBase Rowkey企业设计实战在实际的设计中我们可能更多的是结合多种设计方法来实现Rowkey的最优化设计,比如设计订单状态表时使用:Rowkey: reverse(order_id) + (Long.MAX_VALUE – timestamp)。这样设计的好处:一是通过reverse订单号避免Region热点,二是可以按时间倒排显示。使用HBase作为事件(事件指的的终端在APP中发生的行为,比如登录、下单等等统称事件(event))的临时存储(HBase只存储了最近10分钟的热数据)来举

2021-03-09 14:22:17 232

原创 flink的ParameterTool

实例fromPropertiesFileString propertiesFilePath = "/home/sam/flink/myjob.properties";ParameterTool parameter = ParameterTool.fromPropertiesFile(propertiesFilePath);File propertiesFile = new File(propertiesFilePath);ParameterTool parameter = ParameterTo

2021-03-09 14:12:53 1117

原创 flink重启策略

(转载于 微信公众号:zhisheng)本章将介绍两个最佳实践,第一个是如何合理的配置重启策略,笔者通过自己的亲身经历来讲述配置重启策略的重要性,接着介绍了 Flink 中的重启策略和恢复策略的发展实现过程;第二个是如何去管理 Flink 作业的配置。两个实践大家可以参考,不一定要照搬运用在自己的公司,同时也希望你可以思考下自己是否有啥最佳实践可以分享。从使用 Flink 到至今,遇到的 Flink 有很多,解决的问题更多(含帮助微信好友解决问题),所以对于 Flink 可能遇到的问题及解决办法都比较清

2021-03-09 11:37:51 1410

原创 flink连接hive Demon

HiveCatalogHiveCatalog 有两个用途:作为原生 Flink 元数据的持久化存储,以及作为读写现有 Hive 元数据的接口。 Flink 的 Hive 文档 提供了有关设置 HiveCatalog 以及访问现有 Hive 元数据的详细信息。导入需要的依赖<dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-connector-hive_${s

2021-03-09 11:32:11 760

原创 flink开启checkpoint之后任务不断重启的问题

开启checkpoint之后,在idea运行代码之后情况如下:控制台一直输出打印获取连接成功。说明任务不断的重启,不断的获取率连接。在关闭checkpoint之后,运行代码不会一直输出打印获取连接成功,代码运行正常。开启checkpoint的情况下,将代码打包到flink集群运行,代码输出获取mysql连接失败:在将mysql连接的驱动名字从"com.mysql.jdbc.Driver"改为"com.mysql.cj.jdbc.Driver"之后,idea调试信息如下:(相比改动之前,获取连接

2021-02-05 10:24:44 1385

原创 flink on Yarn的任务提交流程

flink on Yarn提交流程1.客户端向Dispatcher发起请求2.Dispatcher向yarn提交job3.Yarn创建一个Container,启动Application Master4,Application Master启动一个Flink Resource Manager 和 Job Manager5.Job Manager根据JobGrap生成的ExecutionGraph以及物理执行计划向flink Resource Manager申请slot6,如果没用足够的slot,

2020-10-29 10:23:51 875

原创 hive-sql中透视表的实现

一所美国大学有来自亚洲、欧洲和美洲的学生,他们的地理信息存放在如下 student 表中。namecontinentJackAmericaPascalEuropeXiAsiaJaneAmerica需求:写一个查询语句实现对大洲(continent)列的 透视表 操作,使得每个学生按照姓名的字母顺序依次排列在对应的大洲下面。输出的标题应依次为美洲(America)、亚洲(Asia)和欧洲(Europe)。数据保证来自美洲的学生不少于来自亚洲或者欧洲的学生。

2020-10-13 19:50:33 1724 1

原创 hive-sql中平方和开根号函数

power(m,n)表示m的n次方POWER(2,3) 返回 2 的 3 次方,3的平方即power(3,2)SQUARE 返回给定表达式的平方。语法SQUARE ( float_expression )square(3)表示3的平方SQRT 返回给定表达式的平方根。语法SQRT ( float_expression )sqrt(9) 表示根号9...

2020-10-13 08:30:11 9523

原创 redis中flushdb和flushall两个命令的关键区别

在redis中,flushdb和flushall 都是清空当前数据库的操作,但是两者有很大的区别:1.flushall 清空数据库并执行持久化操作,也就是rdb文件会发生改变,变成76个字节大小(初始状态下为76字节),所以执行flushall之后数据库真正意义上清空了.2.flushdb 清空数据库,但是不执行持久化操作,也就是说rdb文件不发生改变.而redis的数据是从rdb快照文件中读取加载到内存的,所以在flushdb之后,如果想恢复数据库,则可以直接kill掉redis-server进程,然

2020-10-12 18:11:33 13947 1

原创 hive中用avg函数来求比例

题目:Table: Activity+--------------+---------+| Column Name | Type |+--------------+---------+| player_id | int || device_id | int || event_date | date || games_played | int |+--------------+---------+(player_id,event_dat

2020-10-11 13:59:29 4144 1

原创 mysql插入数据时的错误

往MYSQL里导入数据的时候遇到一个报错:java.sql.SQLException: Incorrect string value: ‘\xE5\x8D\x8E\xE5\x8C\x97’ for column ‘area’ at row 1最后发现是建表的时候使用的latin1默认字符集,把字符集改过来即可

2020-09-15 15:11:57 586

原创 SparkStreaming中的常见错误

在将SparkSreaming中的DStreaming打印输出时常发生这种错误:Exception in thread “main” java.lang.IllegalArgumentException: requirement failed: No output operations registered, so nothing to execute原因是不能使用pintln(ds)这种方法,而应该用ds.println()package com.atguigu.spark.SparkStreami

2020-09-14 14:57:34 639

原创 Spark中textFile源码分析

textfile源码解析textfile从文件系统中读取文件,基于读取的数据,创建HadoopRDD!object Spark02_RDD_File { def main(args: Array[String]): Unit = { val sparkConf = new SparkConf().setMaster("local").setAppName("File - RDD") val sc = new SparkContext(sparkConf)

2020-09-03 14:03:47 563

原创 Spark中makeRDD源码分析

makeRDD源码解析// 返回ParallelCollectionRDDdef makeRDD[T: ClassTag]( seq: Seq[T], numSlices: Int = defaultParallelism): RDD[T] = withScope { parallelize(seq, numSlices) }//这里分区数numSlices参数进行了初始化,如果没传入该参数就会是初始化的默认值//将代码块{parallelize(seq,

2020-09-03 10:28:45 1281

原创 一篇搞懂 IP、子网掩码、网关、DNS、端口号

作者:gk-auto链接:https://zhuanlan.zhihu.com/p/65226634来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。网络的基本概念客户端:应用 C/S(客户端/服务器) B/S(浏览器/服务器)服务器:为客户端提供服务、数据、资源的机器请求:客户端向服务器索取数据响应:服务器对客户端请求作出反应,一般是返回给客户端数据URLUniform Resource Locator(统一资源定位符)网络中每一个资源都对应唯一的

2020-08-28 11:24:28 1579

原创 Scala基础

一、 Scala入门1.1 概述为什么学习Scala1)Spark—新一代内存级大数据计算框架,是大数据的重要内容。2)Spark就是使用Scala编写的。因此为了更好的学习Spark, 需要掌握Scala这门语言。3)Spark的兴起,带动Scala语言的发展!Scala发展历史联邦理工学院的马丁·奥德斯基(Martin Odersky)于2001年开始设计Scala。马丁·奥德斯基是编译器及编程的狂热爱好者,长时间的编程之后,希望发明一种语言,能够让写程序这样的基础工作变得高效,简单。所

2020-08-25 19:36:06 295

原创 HBase数据读写分析详解

HBase数据的写入和读取流程1、写数据流程1)Client先访问Zookeeper,获取hbase:meta表位于哪个RegionServer。(元数据meta保存在zookeeper)2)访问对应的RegionServer,获取hbase:meta表,根据读请求的namespace:table/rowkey,查询出目标数据位于哪个RegionServer中的哪个Region中。并将该table的region信息以及meta表的位置信息缓存在客户端的meta cache,方便下次访问。3)与目标

2020-08-21 08:49:55 1040

原创 Yarn资源调度器

四、Yarn资源调度器​ Yarn是一个资源调度平台,负责为运算程序提供服务器运算资源,相当于一个分布式的操作系统平台,而MapReduce等运算程序则相当于运行于操作系统之上的应用程序。1、yarn架构:2、yarn工作机制:(1)MR程序提交到客户端所在的节点。(2)YarnRunner向ResourceManager申请一个Application。(3)RM将该应用程序的资源路径返回给YarnRunner。(4)该程序将运行所需资源提交到HDFS上。(5)程序资源提交完毕

2020-08-20 16:15:37 117

原创 hive中grouping sets的妙用

hive中grouping sets的用法假设有这样一张名为class的表:需求:查出每个地区,每个学校,每个班级各自的总人数;假设使用group by分别查出地区,学校,班级的总人数,代码如下:select region,null school,null class,count(*)total from classgroup by regionunionselect null region,school,null class,count(*) total from classgroup

2020-08-18 21:26:15 1316

原创 flume自定义拦截器interceptor

自定义Interceptor(1)案例需求使用Flume采集服务器本地日志,需要按照日志类型的不同,将不同种类的日志发往不同的分析系统。(2)需求分析在实际的开发中,一台服务器产生的日志类型可能有很多种,不同类型的日志可能需要发送到不同的分析系统。此时会用到Flume拓扑结构中的Multiplexing结构,Multiplexing的原理是,根据event中Header的某个key的值,将不同的event发送到不同的Channel中,所以我们需要自定义一个Interceptor,为不同类型的even

2020-08-18 16:18:21 307 1

原创 flume聚合案例

聚合​ 这种模式是我们最常见的,也非常实用,日常web应用通常分布在上百个服务器,大者甚至上千个、上万个服务器。产生的日志,处理起来也非常麻烦。用flume的这种组合方式能很好的解决这一问题,每台服务器部署一个flume采集日志,传送到一个集中收集日志的flume,再由此flume上传到hdfs、hive、hbase等,进行日志分析。案例:整体flume架构如上图配置hadoop102和103的配置文件:[atguigu@hadoop102 job]$ vim netcat-flu

2020-08-17 21:16:29 759 2

原创 flume负载均衡案例

负载均衡和故障转移Flume支持使用将多个sink逻辑上分到一个sink组,sink组配合不同的SinkProcessor可以实现负载均衡和错误恢复的功能。负载均衡案例:整体flume架构如上图所示,下面开始编辑flume配置文件:在hadoop103节点的 /opt/module/flume/job 下新建配置文件:vim netcat-flume-loggers.conf添加如下内容:a3.sources = r3a3.channels = c3a3.sources.r3.typ

2020-08-17 20:01:56 575

原创 flume复制及多路复用案例

复制和多路复用Flume支持将事件流向一个或者多个目的地。这种模式可以将相同数据复制到多个channel中,或者将不同数据分发到不同的channel中,sink可以选择传送到不同的目的地。案例:整体flume架构如上图所示,下面开始编辑flume配置文件:在hadoop103节点的 /opt/module/flume/job 下新建配置文件:vim netcat-flume-loggers.conf添加如下内容:a3.sources = r3a3.channels = c3a3.so

2020-08-17 19:18:12 791

原创 flume简单串联配置案例

(1)简单串联​ 这种模式是将多个flume顺序连接起来了,从最初的source开始到最终sink传送的目的存储系统。此模式不建议桥接过多的flume数量, flume数量过多不仅会影响传输速率,而且一旦传输过程中某个节点flume宕机,会影响整个传输系统。(不需要启动hadoop集群)案例:这里我以hadoop102与hadoop103两个节点组成串联举例1.分发flume到hadoop102和hadoop103节点,并各自新建配置文件在hadoop102新建配置文件netc

2020-08-14 21:31:09 470

原创 flume安装部署以及使用案例

一、Flume概述1、定义Flume是Cloudera提供的一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统。Flume基于流式架构,灵活简单[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-RV3UdQii-1597403755028)(E:/%E5%A4%8D%E4%B9%A0%E7%AC%94%E8%AE%B0/flume/flum.assets/1597309346265.png)]2、Flume基础架构[外链图片转存失败,源站可能有防盗链机制,建

2020-08-14 19:16:23 321

原创 hive企业调优方法

1、 Fetch抓取Fetch抓取是指,Hive中对某些情况的查询可以不必使用MapReduce计算。例如:SELECT * FROM emp;在这种情况下,Hive可以简单地读取emp对应的存储目录下的文件,然后输出查询结果到控制台。在hive-default.xml.template文件中hive.fetch.task.conversion默认是more,老版本hive默认是minimal,该属性修改为more以后,在全局查找、字段查找、limit查找等都不走mapreduce。<prope

2020-08-14 19:12:42 181

原创 hive分区和分桶详解

1 、分区表分区表实际上就是对应一个HDFS文件系统上的独立的文件夹,该文件夹下是该分区所有的数据文件。Hive中的分区就是分目录,把一个大的数据集根据业务需要分割成小的数据集。在查询时通过WHERE子句中的表达式选择查询所需要的指定的分区,这样的查询效率会提高很多。1)分区表基本操作(1)引入分区表(需要根据日期对日志进行管理, 通过部门信息模拟)dept_20200401.logdept_20200402.logdept_20200403.log(2)创建分区表语法hive (defa

2020-08-14 17:01:38 855

原创 HIVE查询语法案例

查询语句语法:SELECT [ALL | DISTINCT] select_expr, select_expr, ... FROM table_reference [WHERE where_condition] [GROUP BY col_list] [HAVING col_list] [ORDER BY col_list] [CLUSTER BY col_list | [DISTRIBUTE BY col_list] [SORT BY col_list] ] [LI

2020-08-14 16:41:10 310

原创 HIVE中的DML操作

1、数据导入1)向表中装载数据(Load)(1)语法hive> load data [local] inpath '数据的path' [overwrite] into table student [partition (partcol1=val1,…)];(1)load data:表示加载数据(2)local:表示从linux本地加载数据到hive表;否则从HDFS加载数据到hive表(3)inpath:表示加载数据的路径(4)overwrite:表示覆盖表中已有数据(不管表中有几个文

2020-08-14 16:36:28 446

原创 HIVE中的DDL操作

1 、创建数据库CREATE DATABASE [IF NOT EXISTS] database_name[COMMENT database_comment][LOCATION hdfs_path][WITH DBPROPERTIES (property_name=property_value, ...)];1)创建一个数据库,数据库在HDFS上的默认存储路径是/user/hive/warehouse/*.db。hive (default)> create database db_hiv

2020-08-14 16:32:45 504

原创 一篇搞定zookeeper

一、Zookeeper入门1、概述Zookeeper是一个开源的分布式的,为分布式应用提供协调服务的Apache项目。Zookeeper从设计模式角度来理解,是一个基于观察者模式设计的分布式服务管理框架,它负责存储和管理大家都关心的数据,然后接受观察者的注册,一旦这些数据的状态发生了变化,Zookeeper就负责通知已经在Zookeeper上注册的那些观察者做出相应的反应.Zookeeper = 文件系统 + 通知机制2、特点3、数据结构4 、应用场景提供的服务包括:统一命名服务、统一

2020-07-27 21:13:20 619

原创 Hadoop之MapReduce详解

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

2020-07-27 10:22:30 480

空空如也

空空如也

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

TA关注的人

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