- 博客(73)
- 收藏
- 关注
转载 flink (一)
随着互联网的不断发展,行业内对于数据的处理能力和计算的实时性要求都在不断增加,随之而来的是计算框架的升级。经过了十余年开源社区的不断演进,现在计算框架已经从第一代的雅虎开源的Hadoop体系进化到目前主流的Spark框架,这两套框架的计算主要是从强依赖硬盘存储能力的计算发展到了内存计算,大大增强了计算力。随着5G时代的到来,未来都将会是万物互联,各种各样的设备都会与网络连接起来,会有大量的数据产生。以后这些数据都将需要做实时分析,下一代计算引擎,也就是第三代计算引擎,将会从计算实时性的角度突破,也就是Fli
2021-12-08 21:06:50
269
原创 HBase调优
一、预分区默认情况下,在创建HBase表的时候会自动创建一个region分区,当导入数据的时候, 所有的HBase客户端都向这一个region写数据,直到这个region足够大了才进行切分。 一种可以加快批量写入速度的方法是通过预先创建一些空的regions,这样当数据写入 HBase时,会按照region分区情况,在集群内做数据的负载均衡如果知道hbase数据表的key的分布情况,就可以在建表的时候对hbase进行region的预分区。这样做的好处是防止大数据量插入的热点问题,提高数据插入的效率。
2021-12-06 23:01:31
597
原创 Phoenix(shell中用SQL操控HBase)
1、phoenix使用1)连接sqllinesqlline.py master,node1,node22)常用命令(区分大小写)# 1、创建表CREATE TABLE IF NOT EXISTS STUDENT (id VARCHAR NOT NULL PRIMARY KEY,name VARCHAR,age BIGINT,gender VARCHAR ,clazz VARCHAR);# 2、显示所有表!table# 3、插入数据upsert...
2021-12-06 22:43:19
1874
原创 HBase架构读写流程,过滤器,MR读写HBase
一、HBase架构及读写流程1、Master作用1)为RegionServer分配Region2)负责RegionServer的负载均衡3)发现失效的Region并重新分配4)管理用户对表结构的增删改操作2、RegionServer的作用1)维护Region,处理用户的IO请求2)切分运行过程中过大的Region3、Zookeeper作用1)保存HMater的一些原数据,例如:meta表(存储region的一些信息,在哪个RegionServer,row.
2021-12-06 22:31:43
2786
原创 HBase JAVA API
导包<dependencies> <dependency> <groupId>org.apache.hbase</groupId> <artifactId>hbase-client</artifactId> <version>1.4.6</version> </dependency> <dependency>
2021-12-01 20:12:49
842
原创 HBase Shell
1、启动hbasestart-hbase.sh2、进入hbase shell命令行hbase shell注意:直接按删除,只会从光标所在处往后删 要想正常删除,按住ctrl3、基本命令创建表1) create 'test','info'2) create 'test',{NAME=>'info',VERSION=>3}3) create 'test',{NAME=>'cf1',TTL=>5}删除表...
2021-12-01 19:50:51
1401
原创 HBase简介
1、Hadoop生态系统2、HBase简介1)HBase – Hadoop Database,是一个高可靠性、高性能、面向列、可伸缩、实时读写的分布式数据库2)利用Hadoop HDFS作为其文件存储系统,利用Hadoop MapReduce来处理HBase中的海量数据,利用Zookeeper作为其分布式协同服务3)主要用来存储非结构化和半结构化的松散数据(列存 NoSQL 数据库)3、Hbase系统架构1)Master1.为Region server分配regi.
2021-11-30 19:19:54
1045
原创 Hive求连续登录问题
学生表中按班级求年龄前三dense_rank:有并列排名,依次递增 (开窗函数相当于Top-N)select * from ( select *,dense_rank() over(partition by clazz order by age)as num from students) as t where t.num<=3;#### 连续登陆问题> 在电商、物流和银行可能经常会遇到这样的需求:统计用户连续交易的总额、连续登陆天数、连续登陆开始和结束时间、间...
2021-11-28 21:19:57
613
原创 Hive数据仓库建模
1、基于Hive数据仓库建模数据仓库的发展大致经历了这样的三个过程:报表——>集市——>仓库简单报表阶段:这个阶段,系统的主要目标是解决一些日常的工作中业务人员需要的报表,以及生成一些简单的能够帮助领导进行决策所需要的汇总数据。这个阶段的大部分表现形式为数据库和前端报表工具。数据集市阶段:这个阶段,主要是根据某个业务部门的需要,进行一定的数据的采集,整理,按照业务人员的需要,进行多维报表的展现,能够提供对特定业务指导的数据,并且能够提供特定的领导决策数据。数据仓库阶段:这个阶
2021-11-28 17:14:04
3080
原创 Hive语法及进阶
1、Hive基本操作——建表内部表基础建表语句一:(默认指定文件类型为TextFile,HDFS路径为/user/hive/warehouse/库/下) 格式: create table 表名 ( 字段名1 字段类型1, 字段名2 字段类型2, ... ) row format delimi...
2021-11-27 20:41:43
1073
原创 MapReduce原理深入理解
1、MapReduce概述及原理MapReduce是一种分布式计算模型MapReduce是分布式运行的,由两个阶段组成:Map和Reduce,Map阶段是一个独立的程序,有很多个节点同时运行,每个节点处理一部分数据。Reduce阶段是一个独立的程序,有很多个节点同时运行,每个节点处理一部分数据【在这先把reduce理解为一个单独的聚合程序即可】。 MapReduce框架都有默认实现,用户只需要覆盖map()和reduce()两个函数,即可实现分布式计算,非常简单。 这两个函数的形参和返回值都是&l.
2021-11-24 19:15:34
1878
1
原创 HDFS原理深入理解
1、hdfs 概述数据量越来越多,在一个操作系统管辖的范围存不下了,那么就分配到更多的操作系统管理的磁盘中,但是不方便管理和维护,因此迫切需要一种系统来管理多台机器上的文件,这就是分布式文件管理系统 。是一种允许文件通过网络在多台主机上分享的文件系统,可让多机器上的多用户分享文件和存储空间。通透性。让实际上是通过网络来访问文件的动作,由程序与用户看来,就像是访问本地的磁盘一般。容错。即使系统中有某些节点宕机,整体来说系统仍然可以持续运作而不会有数据损失【通过副本机制实现】。 分布式文件管理系
2021-11-24 16:05:06
734
原创 Hive架构及使用
1、Hive是什么?Hive 是建立在 Hadoop 上的数据仓库(Data Warehouse)基础构架。它提供了一系列的工具,可以用来进行数据提取转化加载(ETL ),这是一种可以存储、查询和分析存储在 Hadoop 中的大规模数据的机制。Hive 定义了简单的类 SQL 查询语言,称为 HQL ,它允许熟悉 SQL 的用户查询数据。Hive是SQL解析引擎,它将SQL语句转译成M/R Job然后在Hadoop执行。Hive的表其实就是HDFS的目录,按表名把文件夹分开。如果是分区表...
2021-11-24 09:43:02
579
原创 Java重写MapReduce
/** * 统计单词个数 */package com.shujia.mr;import org.apache.hadoop.conf.Configuration;import org.apache.hadoop.fs.FileSystem;import org.apache.hadoop.fs.Path;import org.apache.hadoop.io.LongWritable;import org.apache.hadoop.io.Text;import org.apache.
2021-11-20 22:29:09
855
原创 RPC网络编程(Java操作Hadoop)
Java代码操作HadoopJava在Windows中,Hadoop在Linux中在hadoop pom.xml文件中导入以下几个包<dependencies> <dependency> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-hdfs</artifactId> <version>2.
2021-11-19 21:47:02
1202
转载 hdfs基本操作
hdfs分布式文件系统 , 将一个大的文件拆分成多个小文件存储在多台服务器中,文件系统: 目录结构(树状结构) "/" 树根, 目录结构在namenode中维护浏览器输入 master:50070进入到web提供的hdfs可视化界面 ——> Browse Directory如何在Linux命令行操作hdfs?1、创建目录 mkdirmkdir : 创建目录/data :路径 , 需要从 ”/“ 开始hadoop dfs -mkdir /data-p : 递...
2021-11-18 21:48:37
1501
原创 Hadoop
1、Apache基金会是专门为支持开源软件项目而办的一个非盈利性组织2、服务器(节点)服务器的内存,cpu及硬盘性能远高于pc机3、机架——负责放服务器的架子4、hadoop概述hadoop是一个适合海量数据分布式存储(消耗硬盘)和分布式计算(消耗cpu内存)的平台+资源分配Google Fs 文件管理系统 FileSystem—>hdfsMapReduce 分布式计算框架Big Table 大表5、had...
2021-11-18 16:10:53
620
原创 Redis 集群Cluster
1、Redis主从复制(读写分离)一个redis服务可以有多个该服务的复制品,这个redis服务成为master,其他复制品成为slaves,slaves只能执行读命令,来降低master的读压力开启master,node1两台虚拟机[root@master ~]#cd /usr/local/soft[root@master soft]#scp -r redis /node1: /usr/local/soft/[root@master bin]# cd redis/bin[ro..
2021-11-17 19:41:38
712
原创 Redis命令基本操作
Redis是开源的,c编写的,基于内存(快)且支持持久化(数据备份保存到硬盘),高性能的key-value的NoSQL数据库1、字符串String2、列表List(有索引)3、散列 Hash(实际上是map)4、集合 Set(去重,无序)5、有序集合 sortedSet (去重,有序)Redis数据模型存取单个set k vget k存取多个(原子性:要插入都插入,要失败都失败)mset k1 v1 k2 v2mget k1 k2..
2021-11-17 17:00:39
856
原创 Redis持久化
redis持久化(缓存服务器不需要,内存数据库需要)将数据从易丢失的内存放到能永久存储的设备(disk)上redis持久化方式1、RDB默认情况下redis将数据保存在dump.rdb二进制文件中vim redis.conf策略都是用来触发RDB的存储机制(持久化机制)手动关闭server服务(ctrl+c)——>RDB自动策略自动触发RDB机制策略:1)自动:按照配置文件中的条件满足就执行bgsave2)手动:客户端发起save,bgsave命令
2021-11-16 22:53:09
643
原创 面向接口开发
为方便后期对代码的修改,如将代码中原先访问的mysql数据库改成redis数据库,我们可以定义一个接口UserDao来规定方法,统一方法名,然后UserDaoMysqlImpl和UserDaoRedisImpl类再去实现这个接口,重写里面的方法,就可以做到保证方法名的统一UserDao接口//规定方法 统一方法名public interface UserDao{ User login(String username); int update();}UserDaoMy..
2021-11-16 21:37:32
180
原创 缓存服务器——Redis
代码如何连接redispublic class JedisAPI { private static Jedis jedis =null; //创建对象 @Before public void init(){ jedis=new Jedis("192.168.164.110",6379); } @Test public void set(){ jedis.set("str","abc"); } @Te
2021-11-16 21:21:05
540
原创 单机时代——缓存
提升查询效率的几种方式1、连接池2、缓存:第一次查询很慢,之后会查询的很快(用来做缓存的数据库有redis)3、主键:主键所在的字段会自动分配一个索引,但索引会占据硬盘空间,一般只给常用作查询的字段加上索引,方便对字段进行快速查找模拟一个缓存案例:将students.txt中的数据放大1000倍插入到数据库中public class MakeDataMYSQL { public static void main(String[] args) throws Except
2021-11-14 20:59:56
308
原创 数据分离——连接池DataSource
连接池:一次性可在池中创建多个连接,只要(url,driver,username,password)四个参数没问题,服务器故障修好后,去池中取一个连接即可,连接只创建一次,一次创建一池,多次取用(避免了服务器挂机修好后无法获取连接的情况)1、BasicDataSource连接池//连接 池(先创建池,再将连接放进池中)public class DBCPTest { public static void main(String[] args) throws Exception{
2021-11-14 20:35:16
326
原创 单机时代——分层
1、表现层 Controller@RestControllerpublic class UseController{ @RequestMapping("/login") public String userlogin(String username,String password){ UserService userService=new UserService; String message=userServic...
2021-11-14 20:17:48
384
原创 spring boot应用
spring boot 可以实现前端与后台代码的交互具体操作是通过注解(@RestController,@RequestMapping)来绑定方法和前端地址1、编写后台代码@RestControllerpublic class TestController01 { @RequestMapping("/login") public String login(){ //验证 return "login"; } @RequestMapp
2021-11-14 19:05:14
217
原创 sql例题
日期分组-- select * from test;-- select datediff(datetime,"2018-6-1") from test; ——0,1,2,3,4,5,6,7,8,9,10,11,12,13-- select floor( datediff(datetime,"2018-6-1") /7) from test; ——0,0,0,0,0,0,0,1,1,1,1,1,1,1-- select floor(datediff(datetime,"2018-6..
2021-11-10 20:46:50
465
原创 Java操作mysql---jdbc
回顾反射的三种方式:1、对象.getClass();2、类名.class();3、Class.forName("类的全路径");//1.验证用户名 2.验证密码public class Login { static Connection conn ; static { try {//1.加载驱动 Class.forName("com.mysql.cj.jdbc.Driver"); ...
2021-11-10 19:49:20
978
原创 shell操作mysql
[root@master~] cd /usr/local/data[root@master data] vim mysql.sh编辑脚本#!/bin/bashMYSQL="mysql -uroot -p123456"sql="select * from shujia.student"result="($MYSQL -e "$sql")"echo -e "$result"[root@master data] sh mysql.sh加上定时任务[root@master
2021-11-10 16:40:41
446
原创 MySQL关系型数据库
1、什么是数据库?数据库是数据的仓库文件管理系统:针对电脑的存储有一个可视化的界面(如c盘,d盘等)数据库和普通文件管理系统的区别在于:数据库依据数据结构来组织数据,因为数据结构的存在,所以看到的数据是条理化的,且能快速查找出对于的数据2、数据库的分类1)关系型数据库(MySQL数据库)依据关系模型创建数据库 ,关系模型就是一对一,一对多,多对多等关系模型,关系模型就是存储格式,是以行列组成的二维表格,最小单位是行2)非关系型数据库(NoSQL数据库/KeyValue数据库)
2021-11-04 20:00:06
711
原创 SQL语言
5、SQL语言SQL是用来存取关系数据库的语言,具有查询DQL、操纵DML、定义DDL和控制DCL关系型数据库的四方面功能1)DQL 数据查询语言 select2)DML 数据处理语言 如 update更新, insert增加, delete删除3)DDL 数据定义语言 用来定义数据库的对象,如数据表、视图、索引等4)DCL 数据控制语言 指用于设置用户权限和控制事务语句 如grant,revoke,if…else,while,begin t...
2021-11-04 19:57:01
195
原创 shell编程
shell是一个用c语言编写的程序,是用户操作linux的桥梁(与终端的区别是shell一次可以执行多条命令)1、创建:后缀为.sh的文件vim shell01.sh2、编写:头部注释为#!/bin/sh或者#!/bin/bash3、运行:1)通过sh命令执行 sh shell01.sh2)通过bash命令执行 bash shell01.sh3)通过把文件修改为可执行的文件(绿色)然后通过./文件命令.sh来执行 c...
2021-11-03 22:56:09
141
原创 Linux命令与虚拟机的创建,克隆
linux目录结构bin存储普通命令sbin存储超级命令home存储普通用户root存储超级用户/usr/local下存储数据或软件tmp临时目录 迎来存放临时数据常用命令 reboot:重启虚拟机 halt:关闭虚拟机 ifconfig:查看网络 service network restart:重启网络 hostname:查看主机名 ho...
2021-11-03 20:23:49
323
原创 File文件和目录抽象
1、 File:Java用于操作文件或目录 文件或目录的抽象 文件和目录可以通过File封装成对象 对于File,其封装的并不是一个正真的文件,知识文件的路径,可存在可不存在,之后通过具体 的操作把这个路径转化为具体的存在 构造:File(String pathname)通过将给定的路径名字符串转换为抽象路径名来创建新的File实例 ...
2021-10-31 21:47:41
125
原创 对字符串分组聚合
1、用HashSet分组(唯一),HashMap聚合(k,v)/* 统计一串字符串当中每个字母出现的个数给定字符串abacba */ArrayList<String> list = new ArrayList<>();//abacbalist.add("a");list.add("b");list.add("a");list.add("c");list.add("b");list.add("a");//分组HashSet&...
2021-10-31 20:01:15
275
原创 Java面试题
1、HashMap和Hashtable的区别?1)它们都属于Map接口的类,均是<k,v>格式2)HashMap类没有分类或者排序,它允许一个null键和多个null值,线程不安全3)Hashtable类似于HashMap,但是不允许null键和null值,是线程安全的2、阐述StringBuilder和StringBuffer区别?1)StringBuffer:线程安全, StringBuilder:线程不安全。因为 StringBuffer ...
2021-10-31 11:15:14
156
原创 定时器Timer
定时器是一个应用十分广泛的线程工具, 可用于调度多个定时任务以后台线程的方式执行。在Java中,可以通过Timer和TimerTask类来实现定义调度的功能Timer()//创建一个新的计时器。void schedule(TimerTask task, long delay)//在指定的延迟之后安排指定的任务执行。void schedule(TimerTask task, long delay, long period)//在指定 的延迟之后开始 ,重新执行 固定延迟执行的指
2021-10-27 15:15:56
81
原创 设计模式的分类
1、设计模式的分类1)创建型模式 对象的创建2)结构型模式 对象的组成(结构)3)行为型模式 对象的行为2、简单工厂模式(静工厂方法模式)1)简单工厂模式概述又叫静态工厂方法模式,它定义一个具体的工厂类负责创建一些类的实例(动物工厂.某个制造动物的方法())2)优点 客户端不需要在负责对象的创建,从而明确了各个类的职责3)缺点 这个静态工厂类负责所有对象的创建,如果有新的对象增加,或者某些对象的创...
2021-10-27 11:02:34
54
原创 网络编程(UDP/TCP)
1、网络编程就是用来实现网络互连的不同计算机上运行的程序间可以进行数据交换。2、网络编程三要素1)IP地址 计算机在网络中的唯一标识(现实中的唯一标识是MAC地址)2)端口 软件在计算机中的唯一标识(0~65535)3)网络通信协议 多台计算机之间进行数据传输,须遵循的规则,常见协议UDP/TCP 获取任意主机:getByName 主机名:getHostName 主机Ip地址:...
2021-10-27 10:50:34
70
原创 Java反射
1、反射对于任意一个类,通过class文件对象去使用该文件中的构造方法,成员变量,成员方法2、class类构造方法:Constructor成员变量:Fields成员方法:Method3、如何获取到class文件对象(字节码文件)Person p = new Person();//1、通过Object类中的getClass()方法获取Class<? extends Person> c1 = p.getClass();//2、通过类名.获取静态属性class
2021-10-27 10:03:44
64
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人