自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

架构师思考实践

Life is too short, don’t live the same day twice.

  • 博客(285)
  • 资源 (4)
  • 收藏
  • 关注

原创 Hadoop源码分析---TextInputFormat、FileInputFormat、LineRecordReader

作用:1、将输入切分成split,确定split大小,map个数。 由getSplits方法实现。 2、为mapper提供输入数据,key/value形式。getRecordReader方法核心算法:1、文件切分算作用:确定split个数。概念: globalSize: totalsize/numSplits  ; minSize: InputSplit 最小值 配

2015-08-19 22:36:21 1687

转载 十分钟读完《金字塔原理》

十分钟读完《金字塔原理》作者简介芭芭拉·明托 (Barbara Minto)哈佛商学院第一批女学员之一,麦肯锡顾问公司有史以来第一位女性顾问。一个致力于为人们提供训练思考、表达和解决问题的逻辑的专业咨询培训人士,1973年成立个人公司-明托国际公司(Minto International Inc.),为社会各界人士讲授金字塔原理,该理论应用遍及美国、欧洲、澳大利亚、新西兰等国家和地区绝大部分公司和管理咨询公司。推荐语比起欣赏一朵花漫溢的馨香,我们需要更加关注它盛开的过程。一些人...

2021-04-06 20:03:39 791

原创 【FlinkSQL】一文读懂流join方式

目录一、常规join二、时间窗口join三、时态表join基于事件时间的时态 Join基于处理时间的时态 Join四、时态表函数join对于离线计算、批处理,join操作比较好理解,可以参考文章hive 各种 join (left outer join、join、full outer join)。但是数据流的join和离线join是有差异的,流是无限的,没有边界的。目前Flink Sql有四种join方式。一、常规join需要将所有的历史记录存放到state中,所有历史.

2021-03-30 19:57:05 2115

原创 【FlinkSQL】一文读懂 动态表-时态表

一、FLink Sql 简介Flink SQL 是基于Apache Calcite来实现的标准 SQL。它是一种关系型 API,可以来做流批统一处理。不管是在有限批数据上还是在无限的流式数据上,Flink Sql都有相同的语义。二、动态表 (Dynamic Table)...

2021-03-28 16:49:56 1300

原创 Flink基础概念

1、keyby、partitionCustom 区别(1)KeyBy DataStream → KeyedStream: 通过制定字段,将流转化成带key的流,之后相同key的数据,分发到相同的算子上。属于逻辑上的分区。 dataStream.keyBy("someKey") // 通过 "someKey"进行分组 dataStream.keyBy(0) // 通过Tuple的第一个元素进行分组(2)物理分区(1)Custom partitioning...

2021-03-24 20:45:35 703

原创 Flink架构

FLink是一个有状态的分布式实时计算架构。一、Flink API介绍1、最底层的是有状态的流处理,已经继承到DataStream API中,一般不直接使用。2、第二层核心API,分为流处理DataStream和批处理DataSetAPI,一般用于java、scala开发,使用较多。3、第三层TableAPI,以表为中心的声明式编程API,可以把一个流程定义为一个table,有元数据schema,可以执行部分sql操作,例如select、join等。table api可以和第二层API很

2021-03-11 19:47:10 178 2

原创 Flink Mac本地安装、运行

一、flink本地安装先看下是否有java,不过没有也没事,用的是open-jdk,命令如下:#1、查看java版本java -version#2、安装flinkbrew install apache-flink#3、查看flink版本flink --version

2021-02-26 18:18:57 1824

原创 Error: homebrew-core is a shallow clone.

mac brew update 失败,报错信息如下:解决办法:cd /usr/local/Homebrew/Library/Taps/homebrewrm -rf homebrew-corerm -rf homebrew-caskbrew upgrade

2021-02-24 19:59:25 1518

原创 Flink watermark浅析

一、功能问题:Flink实时计算使用窗口时,消息会乱序,使用Event Time计算时,会有消息晚到。解决方案:假设我们把延迟超过5秒的消息丢掉(或特殊处理),那么在每条消息上打一个时间戳(watermark 水位线),这个时间是事件时间减去5s,表示的含义是这个水位线之前的数据都到了,告诉窗口可以出发计算了。补充时间概念:(1)事件时间:业务系统的业务发生或更新时间。(2)抽取时间:进入到消息队列的时间。(3)处理时间:实时计算的时间。二、原理1、watermark本.

2021-02-22 19:57:04 219

转载 Hive--对空值和NULL的处理

问题描述Hive中默认将NULL存为\N,NULL类型的字符串如何检索?创建一个测试表及准备测试数据,SQL如下:create table test_null (id int, age string) ROW FORMAT DELIMITEDFIELDS TERMINATED BY ','LINES TERMINATED BY '\n'STORED AS TEXTFILE;测试数据如下:1,232,24c3,32d4,305,NULL6,\N将数..

2020-10-04 16:17:49 2660

原创 java使用--Exception 异常信息 StackTraceElement

在某些场景下,直接使用e.printStackTrace(); 或者使用log4j打印异常,在日志收集系统中不好检索。下面方法将异常拼接成一行,使用 StackTraceElement。package com.ajl.usage.exception;/** * @Author anjinlong * @create 2020-10-02 17:05 * @description description */public class ExceptionUsage { ...

2020-10-02 20:41:37 1353

原创 java用法--HashMap putAll

类:HashMap方法:putAll()作用:将map2的数据全部放入到map1中,如果map1中已经存在key则更新,如果不存在则插入。测试代码:public static void putAllTest() { System.out.println("putAll 将map2的数据全部放入到map1中,如果map1中已经存在key则更新,如果不存在则插入。"); HashMap<String, String> map1 = new H.

2020-10-02 20:37:29 890

转载 Git: Github提示Key is already use

背景:在Github中为用户添加SSH Key的时候报Key is already use,根据错误提示很显然,所添加的SSH Key已经被其他账号使用后,才会出现这个错误。现在有两种解决办法,第一,找到帐号删除Key;第二,重新生成Key找到使用该Key的帐号,在Github个人信息中有SSH and GPG keys这一栏,管理着所有的SSH Keys,找到匹配的Key删除,另外一个账号就可以使用该Key了重新生成SSH Key,仅需几个简单的步骤1.打开终端2.输入以下命令,并执行$ s

2020-09-28 14:08:14 583

原创 HDFS 写流程

待写,敬请期待

2017-07-10 21:30:02 458

原创 hadoop HDFS Federation

参考文档:http://hadoop.apache.org/docs/r2.7.3/hadoop-project-dist/hadoop-hdfs/Federation.html

2017-07-10 21:28:35 427

原创 Hadoop partitioner及自定义partitioner

一、hadoop partitioner所有partitioner都继承自抽象类Partitioner ,实现getPartition(KEY var1, VALUE var2, intvar3),hadoop自带的partitioner有:(1)TotalOrderPartitioner(2)KeyFieldBasedPartitioner(3)BinaryPartiti

2017-07-10 21:06:07 747

原创 Hadoop MapReduce 修改输出文件名 MultipleOutputs

需求:修改mapreduce的输出文件名称 为自己想要的名字工具:MultipleOutputs默认文件名:part-r-xxx 或者000178_0修改后为: 自定义名字-r-xxx 后边的r-xxx还没有去掉主要流程:声明 multipleOutputs在setup方法中初始化在reduce方法中调用 public voidwrite(KEYOUT key, VALUEOUT value, String baseOutputPath)在cleanup放中close

2017-07-07 22:45:49 2454

原创 HBase源码分析 -- HBase Region 拆分(split)

代码版本:hbase-1.2.6工程:hbase-server类:org.apache.hadoop.hbase.regionserver.HRegion1、判断是否需要切分方法: checkSplit返回值: splitpoint做了一些判断后,其实是调用:byte[] ret = splitPolicy.getSplitPoint();2、切分策略o

2017-07-01 23:34:02 879

原创 hive优化总结

1、列裁剪、分区裁剪只查询需要的字段和分区,不使用select*2、join优化小表放左边3、空值处理(1)NULL和数字相加的问题,为避免这种情况先nvl 或者coalesce 先处理(2)NULL 值关联时,可排除掉不参与关联,也可随机分散开避免倾斜4.    排序优化不需要全局排序时,可用distribute by sort by  而不用

2017-06-11 11:48:22 969

原创 一次hive reduce oom 处理:Execution Error, return code 2 from org.apache.hadoop.hive.ql.exec.mr.MapRedTas

问题: hive job失败,现象reduce失败,起了新的reduc而后还是失败,最终job失败错误:2017-06-07 16:43:20 INFO Examining task ID: task_*** (and more) from job job_***2017-06-07 16:43:21 INFO FAILED: Execution Error, return code

2017-06-11 11:04:22 16486

原创 hive2.0 存储过程 hplsql

在hive2.0中集成了hplsql,可用用hplsql命令执行存储过程。hplsql是一个开源项目,地址:http://www.hplsql.org/home,现在集成到hive2.0了。使用方式:hplsql -f script.sql hplsql -e "sql" hplsql -e "PRINT a || ', ' || b" -d a=Hello -d b=worl

2016-08-28 10:28:14 8641

翻译 LLAP

全称: Live Long and Process (LLAP)在hive2.0中添加了LLAP功能(HIVE-7926),文档jira 是HIVE-9850。配置LLAP可以参考 Configuration Properties. 中的llap部分概览在最近几年,hive的速度有了显著的提升,这要感谢社区贡献的多种特征和提升其中包括Tez和CBO,下边是我们要把h

2016-08-28 09:58:05 7247 3

原创 hive源码分析--row_number源码分析

前言row_nubmer使用说明: row_number接收到的数据是已经分区排序的数据, row_number() OVER (PARTITION BY c ORDER BY d)description = @Description( name = "row_number", value = "_FUNC_() - The ROW_NUMBER function as

2016-08-13 19:46:54 3952

原创 hive源码分析--导入到eclipse

先去hive官网下载源代码,我现在阅读hive2.1.0官网: http://mirrors.cnnic.cn/apache/hive/通过import maven工程后需要修改两个地方:1、修改 .project hive-exec org.eclipse.jdt.core.javabuilder org.ecli

2016-08-13 19:30:08 1285 1

原创 java线程池ThreadPoolExecutor

import java.util.concurrent.ArrayBlockingQueue;import java.util.concurrent.ThreadPoolExecutor;import java.util.concurrent.TimeUnit;public class ThreadPoolTest { public static void main(String...

2016-03-26 23:03:05 557

原创 清除 git 上某个文件的历史

git filter-branch --force --index-filter 'git rm --cached --ignore-unmatch 文件名' --prune-empty --tag-name-filter cat -- --allgit push origin master --forcerm -rf .git/refs/original/ git reflog expir

2016-03-26 22:53:29 2798

原创 Spring boot 入门 实例

欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl

2016-03-26 22:49:06 1326

原创 Spark运行架构

基本概念:Application:用户写的spark程序Driver Program:运行app的main()函数并创建SparkContextRDD Graph:RDD是Spark的数据结构,可以通过算子进行操作(Transformation和Action)。当RDD遇到Action算子时将之前的所有算子形成有向无环图(DAG),再在spark中转化为job提交到集群执行。一个app

2015-11-28 10:40:37 753

原创 hadoop 无法查看job信息 8088无法访问

需要配置一些8088The http address of the RM web application.yarn.resourcemanager.webapp.address${yarn.resourcemanager.hostname}:8088

2015-09-12 23:24:33 11393

原创 hadoop2.7配置HA,使用zk和journal

本文使用前提:从noha到ha机器分配:nn1namenode,DFSZKFailoverControllernn2namenode,DFSZKFailoverControllerslave1datanode,zookeeper,journalnodeslave2datanode,zookeeper,journalnode

2015-08-29 13:14:46 4138 2

原创 hadoop做HA后,hbase修改

由于hadoop做了HA,namenode可能进行切换,hbase中的配置要做修改:hbase-site.xml中,rootdir改为和hadoop的dfs.nameservices一样,并将hadoop的core-site.xml和hdfs-site.xml拷贝到hbase的conf下,然后重启hbasehbase.rootdirhdfs://masters/hbase

2015-08-29 12:36:39 2735 2

转载 Python 基础语法(一)

Python 基础语法(一)Python的特点  1. 简单    Python是一种代表简单思想的语言。  2. 易学    Python有极其简单的语法。  3. 免费、开源    Python是FLOSS(自由/开放源码软件)之一。  4. 高层语言    使用Python编写程序时无需考虑如何管理程序使用的内存一类的底层细节。  5. 可移植性

2015-08-22 13:44:09 692

原创 windows7 配置 python开发环境

1、安装python2.7    官网下载,安装,配置环境变量 path,命令行 运行python2、easy_install 安装win7 64位必须使用ez_setup.py进行安装。方法是下载ez_setup.py后,在cmd下执行 python ez_setup.py,即可自动安装setuptools。下载完成后双击执行安装文件,即可在D:\Program Fi

2015-08-22 13:42:56 1216

转载 Thrift学习笔记—IDL基本类型

[-]1基本类型2特殊类型3struct4容器Containers5枚举enmu6常量定义和类型定义7异常Exceptions8服务Services9名字空间Namespace10注释Comment11Includes thrift 采用IDL(Interface Definition Language)来定义通用的服务接口,并通过生成不同的语言代理实现来达到跨语言

2015-08-18 23:19:56 1320

转载 windows配置thrift开发环境

1)安装thrift:到thrift官网下载exe文件,然后将文件重命名为thrift.exe,拷贝到c:\windows目录下,然后就可以在dos环境下使用了           如:thrift -gen java D:\mywork\javaProject\thriftTest\test.thrift ,输出的java文件默认输出到当前目录下,也可以使用-o参数指定输出路径 

2015-08-18 23:17:45 1293

原创 apache 配置---- 同一个域名配置多个root目录

由来:有个数据系统的域名被领导分给其他组用了,这系统只能用ip访问了,本想改完apache配置,和documentroot后就没问题了,哪知道这机器上还有其他项目需求:同一个ip下需要有多个documentroot方法:使用别名Alias,例如:Alias /anjl /var/www/anjl/当访问   http://ip/anj 时,会到/var/www/anjl/下

2015-04-15 22:53:32 3666

原创 hadoop异常之 reduce拉取数据失败  (error in shuffle in fetcher)

主要错误信息:Error: org.apache.hadoop.mapreduce.task.reduce.Shuffle$ShuffleError: error in shuffle in fetcher#43解决办法:限制reduce的shuffle内存使用                hive:set mapreduce.reduce.shuffle.memory.li

2015-03-08 15:36:25 8749 1

原创 hadoop 计算 pv uv

使用hadoop 进行页面的pv uv 计算不推荐的做法 将访问者的cookie放在hashmap中进行去重计算uv,因为当访问量大时,会将hashmap撑爆,报出java.lang.OutOfMemoryError: Java heap space推荐做法:使用textpair 将cookie作为second key 进行排序,在reduce中进行判断,如果上一个co

2015-01-18 10:44:21 3138

原创 读书励志贴

最近不想读书,写个帖子激励一下吧之后每个月贴一本看完的书,加油!2014年11月:《托福词汇》

2014-11-30 21:10:51 852

原创 awk 常用命令

1、统计列数cat XX |awk -F"\t" '{print NF}' |more2、对某一列的值进行判断cat xx |awk -F "," '{if($2=="3"){ print $2}}' |more

2014-11-30 16:46:15 932

swing 简介 小例子

swing 简介 小例子 里面有一些小例子,学swing的可以看一下

2013-04-07

《MATLAB程序设计》中文版ppt教程 有源代码

详细讲解了MATLAB,是ppt,想要搞数学建模的很有用。 有源代码,很实用 想要学的不要错过呀

2010-04-27

离散数学(左孝凌)课后习题答案 很详细是计算机的基础课

离散数学(左孝凌)课后习题答案 很详细是计算机的基础课 课后习题 理论分析

2010-02-03

简单的php入门,一些基础知识

一个简单的php入门,喜欢php的朋友们可以看看,一点简单点的基础

2009-06-16

空空如也

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

TA关注的人

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