自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Centos7安装Python3.7

Centos7安装Python3.7

2022-05-05 12:54:10 430

原创 Netty入门

介绍netty是基于Java NIO网络提供客户端/服务端框架,它非常方便开发底层的非阻塞的网络应用。netty拥有如下特性:易用性:比Java NIO更易使用,提供针对很多使用场景的示例最小化依赖:仅仅需要一个依赖即可得到整个框架高性能:提供比核心Java API更高的吞吐量以及低延迟,由于内部资源池的概念使得它更容易扩展安全性:提供SSL、TLS、StartTLS支持Netty构建块基于Java的网络应用中,核心的组成是类Socket,而Netty提供的Channel接口提供了API

2022-03-11 09:42:02 269

原创 Debezium是什么

Debezium是什么Debezium是一个用来捕获数据库数据变更的分布式服务,你的应用可以看到这些数据变更,以及处理他们。Debezium以更改事件流的形式记录每张表的行级变更。然后应用可以以事件流产生的顺序读取事件流变更记录。目前支持的Source Connectors是Mysql,MongoDB,PostgresSQL、Oracle、SQL Server、Db2、Cassamdra、Vitesss。目前Cassandra、Vitess处于孵化阶段。说明:孵化连接器发版用于预览目的,对于孵

2022-01-15 17:51:28 15818

原创 Fork/Join使用

介绍Fork/join是ExecutorService的扩展。Fork/Join能够好好利用多处理器。任务能够递归的切割成更小的子任务Fork/Join框架分配任务到线程池中的工作线程,该框架是特别的,因为它显示了“偷任务”算法,闲置的线程能够从繁忙的线程中获取任务,最大化使用处理器Fork/Join框架的核心是ForkJoinPool类,这个类是AbstractExecutorService类的框架。ForkJoinPool实现了“偷任务”算法,可以执行ForkJoinTask任务。ForkJ

2021-12-09 10:53:46 455 1

原创 异步执行基本方法

介绍Java最开始使用Thread进行异步编程,后来产生了Future,尽管Future针对Thread提升了好多,但还是存在好多缺陷。进一步产生了CompletableFuture,解决了Future的一些限制。例如,解决了如下限制:真正的非阻塞能够以编程方式完成Future可以异常处理可以链接多个Futures可以结合多个Futures的结果方法说明runAsync方法用来异步执行一个方法,方法接受一个Runnable接口方法并不会返回值支持传递一个Executor作为第二

2021-12-08 15:45:51 1023

原创 线程的基本方法

介绍这篇文章介绍线程的一些基本方法joinsleepyieldjoin方法如果在正在运行的线程t1上调用t2的join()方法,那么t1会进行等待状态,直到t2完成它的执行。如果join方法传递一个时间,那么表示t1只会等待该时间,就会往下继续执行。我们以例子来说明:public class ThreadExample implements Runnable { public static void main(String[] args) throws Interrupt

2021-12-07 17:19:44 455

原创 MappedByteBuffer

介绍ByteBuffer有三种类型No-DirectDirectMappedByteBuffer其中Bytebuffer可以创建No-Direct和Direct类型,MappedByteBuffer类型是通过ByteBuffer的子类MappedByteBuffer来创建的。今天简单介绍下MappedByteBuffer类。这个类对于读取文件来说非常高效。MappedByteBuffer解读例如,当我们多次读取一个文件内容时,可以加载文件内容到内存中,然后在内存中进行读取,而不需要从磁盘

2021-12-07 16:13:10 551

原创 堆外内存例子

使用ByteBuffer分配int类型数值(int类型占用4字节)ByteBuffer byteBuffer = ByteBuffer.allocateDirect(12);System.out.println("byteBuffer.position: " + byteBuffer.position());byteBuffer.putInt(3);System.out.println("byteBuffer.position: " + byteBuffer.position());byteB.

2021-12-06 21:00:00 563

原创 堆内存与堆外内存

1 介绍作为一名Java开发者,可能会优先考虑到堆内存,因为JVM会自动在堆内存中进行对象分配和释放。但是作为一名优秀的Java开发者,要意识到:基于JVM的应用中,堆内存 可以使用,但同时堆外内存也可以使用。要根据使用场景,将对象存储在堆内存中或者堆外内存中。JVM的架构如下:2. 堆内存堆内存切割成如下区域:Heap:young generationedensurvival0survival1old generationoil generation新创建的类实例首先在y

2021-12-06 16:17:46 1811

原创 Function Currying in Java

Function Currying in Java概念在Java中定义了一个参数方法(Function)、两个参数方法(BiFunction),可以将这两种方法以参数形式传递到其他方法中,但是针对太多参数的方法,就需要使用额外的库(Vavr),另一种选择就是使用Function Currying。Function Currying表示将多参数的方法切割为单参数的多个方法,输出结果是相同的。切换成单参数的方法除了最后一个方法返回期望的值之外,其他方法都是返回一个方法。通过如下代码对比 (used

2021-05-13 16:49:17 164

原创 ThreadLocal变量-Java

ThreadLocal介绍:ThreadLLocal变量是为了对象线程安全。是synchronization的另一种选择。每个线程都会有ThreadLocal变量的副本,所以能够提供线程安全。一个线程可以全局访问ThreadLocal变量,表示一个线程中的任何方法都可以访问该变量ThreadLocal变量对于一个线程来说是本地,表示一个线程不能访问、修改另一个线程的ThreadLocal变量。ThreadLocal简单语法:创建变量private static final Thread

2020-12-25 19:33:55 271

原创 算法面试题-Java

转换一个字符串循环方法:public class Example { public static void main(String[] args) { String origin = "hello world"; String reverse = ""; for (int i = origin.length() - 1; i >= 0; i--) { reverse += origin.charAt(i);

2020-09-23 12:45:00 276

原创 位操作-java

列表操作描述|位或运算&位与运算~按位补码^按位异或运算<<左位移>>右位移>>>无符号右位移例子位或运算位或运算是二元运算,通过|表示,通过比较两个操作数对应的位,如果对应的位有一个是1,那么就是1,如果不是,那么就是0。public class Example { public static void main(String[] args) {

2020-09-23 12:04:24 99

原创 Hive debug

执行hive clihive --debug将hive源码导入idea开工作,进行编译配置远程debug点击idea开发工具中的debug,设置断点在服务器上执行HiveSQL语句,即可跟踪源码

2020-09-17 15:32:05 142

原创 FlinkSQL连接JDBC

运行FlinkSQL./sql-client.sh embedded --jar /home/<username>/flink-connector-jdbc_2.11-1.11.0.jar --jar /home/<username>/mysql-connector-java-8.0.21.jar创建表CREATE TABLE test ( a string, b int, c string, PRIMARY KEY (a) NOT ENFORCED) WI

2020-09-17 14:30:15 1897

原创 FlinkSQL连接Kafka

创建kafka topickafka-topics --zookeeper test:2181 --topic test --partitions 1 --replication-factor 1 --create生成测试数据kafka-console-producer --broker-list test:9092 --topic test开启FlinkSQL./sql-client.sh embedded --jar /home/<username>/flink-sql-con

2020-09-17 12:50:06 2836

原创 创建bucket和sort表

创建bucket和sort表CREATE TABLE Employee( ID BIGINT, NAME STRING, AGE INT, SALARY BIGINT, DEPARTMENT STRING )COMMENT '雇员表'CLUSTERED BY(ID) SORTED BY(AGE) INTO 5 BUCKETSROW FORMAT DELIMITEDFIELDS TERMINATED BY ','STORED AS TEXTFILE;表是通过ID字段进行分桶,在每

2020-09-11 09:16:48 169

原创 Implicit,Mixs-Scala

隐士参数package Implicitobject ImplicitTest { implicit val stringModoId: ModoId[String] = new ModoId[String] { override def add(x: String, y: String): String = { x.concat(y) } override def unit: String = { "" } } implici

2020-08-06 10:43:18 114

原创 Traits-Scala

创建Traitspackage traitstrait DonutShoppingCartDao { def add(donut: String): Long def update(donut: String): Boolean def search(donut: String): String def delete(donut: String): Boolean}package traitsclass DonutShoppingCart extends Donu

2020-08-05 15:22:43 112

原创 类的使用-Scala

定义类package commonclass Donut(donutName: String, productCode: String) { def print = { println(s"donutName is $donutName, productCode is $productCode") }}val donut = new Donut("name", "1001")donut.print伴侣对象package commonclass Donut(don

2020-08-03 18:45:37 112

原创 方法的使用-Scala

定义方法(无参数,返回字符串类型)def favoriteDonut() : String = { "fengfengzai"}val MyFavoriteDonut = favoriteDonut()println(s"$MyFavoriteDonut")方法体的最后一行是返回给调用者,不需要return定义方法(无括号)def leastFavoriteDonut = "Plain Donut"println(s"$leastFavoriteDonut")没有提供返回类

2020-07-29 16:18:19 142

原创 扩展Spark API

介绍Apache Spark有许多内建方法进行数据处理,但是在实际应用中,可能需要domain specific operators来解决实际问题,我们需要扩展Spark API来添加自定义方法。扩展Spark API有两种方法:在存在的RDD上添加自定义方法创建新的RDD动力我们有一份销售数据,以CSV格式进行存储,包含transactionid, customerid, itemid, itemvalue列。class SalesRecord(val transactionId: St

2020-07-28 17:59:29 158

原创 Hive集成ElasticSearch

环境操作系统:Centos7集群:CDH5.16.2安装将elasticsearch-hadoop.jar添加到hive的classpath路径中方法1(此方法支持HDFS路径)add jar /path/elasticsearch-hadoop.jar;方法2(使用配置)bin/hive -hiveconf hive.aux.jars.path=/path/elasticsearch-hadoop.jar方法3(使用hive-site.xml配置文件)<property&

2020-07-28 10:28:58 519

原创 定位Yarn任务失败原因

首先找到Application ID可以在客户端日志中找到,例如,Hive log,Spark Log或者自定义程序日志通常的格式:application_1111111111111_12345定位AM Container运行在哪个节点上可以从RM log或者RM UI上找到通常AM Container是job的第一个容器,除非AM Container运行失败从RM log中搜索application_1111111111111_12345,例如:INFO org.apache.hadoop..

2020-06-23 17:51:30 1419

原创 Linux命令汇总

删除一个包(不会删除该包的依赖)yum remove [package_name]或者yum erase [package_name]删除一个包(同时删除该包的依赖)yum autoremove [package_name]

2020-06-12 10:15:08 259

原创 Mysql-常用命令

备份真个数据库(仅包含表结构)mysqldump --no-data -h localhost -u root -ppassword mydatabase > mydatabase_backup.sql备份部分表(仅包含表结构)mysqldump --no-data -h localhost -u root -ppassword mydatabase table1 table2 > mydatabase_backup.sql在执行mysqldump命令是,如果报如下错误:1044 .

2020-06-05 10:47:56 88

原创 hive-列转行

Lateral view explode转换数组数据到多行。举例说明:创建测试表create table test_explode( name varchar(100), phones array<string>, cities array<string>);添加测试数据insert overwrite table test_explode select 'AAA',array("123456","678901"),array("city1",

2020-06-02 14:19:52 275

原创 查看SQL Server的某张表的字段,数据类型

第一种方法SELECT c.name 'Column Name',t.Name 'Data type',c.max_length 'Max Length',c.precision ,c.scale ,c.is_nullable,ISNULL(i.is_primary_key, 0) 'Primary Key'FROM sys.columns cINNER JOIN sys.types t ON c.user_type_id = t.user_type_idLEFT OUTER.

2020-05-17 18:14:43 2148

原创 Postgres常用命令

列出数据库\l列出数据库(数据库大小,表空间,描述)\l+列出所有的元命令\?

2020-05-12 21:24:57 280

原创 在Vim中定位到某行的方法

打开文件时,定位到某行vim +line_num foo.c如果已经打开文件,使用下面的方法:line_num在文件中搜索word/pattern显示行号:set number

2020-05-12 21:20:42 876

原创 Hive常用命令

删除数据库如果数据库中存在表,默认restrict模式会阻止数据库删除要使用drop database database_name cascade;

2020-05-12 21:13:33 95

原创 Presto常用命令

列出表清单show tables [from schema] [like pattern]

2020-05-12 21:11:12 2016 1

原创 在Hive中创建日期维度表

基础知识datediff操作select datediff("2020-01-10", "2020-01-01")输出:9repeat操作select repeat("o", 9);输出:ooooooooosplit操作select split("ooooooooo", "o");输出:["","","","","","","","","",""]posexplode操作select posexplode(split("ooooooooo", "o"));输出:pos,v

2020-05-11 21:27:34 4097 1

原创 列出某个schema的表-greenplum

当使用\dt命令列出表时,自动列出的schema为public的表列出所有schema的表\dt *.*列出某个schema的表\dt public.*使用正则列出表\dt (public|t).(s|a)Schema | Name | Type | Owner --------+------+-------+------- public | s | table |...

2020-03-19 10:44:39 1055

原创 Greenplum-查看表的创建时间

创建一张测试表postgres=# create table test(abc text);CREATE TABLE查看表的创建时间select * from pg_stat_last_operation where objid = 'test' ::regclass order by statime;classid | objid | staactionname | stasysi...

2020-03-17 10:12:40 2418

原创 hive insert overwrite仅仅覆盖生成的文件,并不会覆盖目录

介绍hadoop fs -ls /mytest/warehouse/mytable/Found 4 items-rwxrwxrwx 3 myvm users 1163 2016-11-24 03:11 /mytest/warehouse/mytable/000000_0-rwxrwxrwx 3 myvm users 0 2016-11-24 03:09 /mytest/warehouse...

2020-02-25 14:46:51 8199 7

原创 删除binlog日志 造成MySQL无法启动

在服务器上直接删除binlog日志,会造成MySQL无法启动[ERROR] Failed to open log [ERROR] Could not open log file [ERROR] Can’t init tc log [ERROR] Aborting解决方法:将已经删除的binlog条目从mysql-bin.index文件中删除,MySQL顺利启动。使用purge binary ...

2020-02-25 09:54:02 2372 2

原创 得到command的退出状态

shell脚本执行的每个命令都会有退出状态,退出状态是一个数值,0表示命令执行成功,非0表示命令执行失败。通过$?得到上一个执行命令的退出状态。dateecho $?date-foo-barprintf '%d\n' $?得到命令的退出状态commandstatus=$?## run date command ##cmd="date"$cmd## get status #...

2020-02-13 11:20:51 607

原创 当SQL文件中某SQL报错时,停止执行接下来的SQL

介绍当使用Greenplum构架数仓时,经常需要一个SQL文件执行多个SQL,所以需要关注任何SQL的报错,这时ON_ERROR_STOP参数就可以使用。如果ON_ERROR_STOP参数设置后,当SQL文件中的任何SQL报错后,就会停止执行接下来的SQL。例如:cat sample_test.sql/set ON_ERROR_STOP onselect * from t1;sele...

2020-02-13 10:51:01 2792 1

原创 Java中的标记接口

介绍标记接口是没有变量和方法的接口(空接口),例如Serializable,Cloneable和Remote接口,这些接口都是标记接口public interface Serializable { // nothing here}Cloneable接口这个接口在java.lang包中。Object类中有clone()方法,当一个类实现Cloneable接口后,表示这个类可以进行合...

2020-01-20 09:18:05 252

空空如也

空空如也

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

TA关注的人

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