- 博客(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
1745
转载 十分钟读完《金字塔原理》
十分钟读完《金字塔原理》作者简介芭芭拉·明托 (Barbara Minto)哈佛商学院第一批女学员之一,麦肯锡顾问公司有史以来第一位女性顾问。一个致力于为人们提供训练思考、表达和解决问题的逻辑的专业咨询培训人士,1973年成立个人公司-明托国际公司(Minto International Inc.),为社会各界人士讲授金字塔原理,该理论应用遍及美国、欧洲、澳大利亚、新西兰等国家和地区绝大部分公司和管理咨询公司。推荐语比起欣赏一朵花漫溢的馨香,我们需要更加关注它盛开的过程。一些人...
2021-04-06 20:03:39
949
原创 【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
2255
原创 【FlinkSQL】一文读懂 动态表-时态表
一、FLink Sql 简介Flink SQL 是基于Apache Calcite来实现的标准 SQL。它是一种关系型 API,可以来做流批统一处理。不管是在有限批数据上还是在无限的流式数据上,Flink Sql都有相同的语义。二、动态表 (Dynamic Table)...
2021-03-28 16:49:56
1455
原创 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
833
原创 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
249
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
2394
1
原创 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
1569
原创 Flink watermark浅析
一、功能问题:Flink实时计算使用窗口时,消息会乱序,使用Event Time计算时,会有消息晚到。解决方案:假设我们把延迟超过5秒的消息丢掉(或特殊处理),那么在每条消息上打一个时间戳(watermark 水位线),这个时间是事件时间减去5s,表示的含义是这个水位线之前的数据都到了,告诉窗口可以出发计算了。补充时间概念:(1)事件时间:业务系统的业务发生或更新时间。(2)抽取时间:进入到消息队列的时间。(3)处理时间:实时计算的时间。二、原理1、watermark本.
2021-02-22 19:57:04
286
转载 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
2918
原创 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
1675
原创 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
1085
转载 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
801
原创 hadoop HDFS Federation
参考文档:http://hadoop.apache.org/docs/r2.7.3/hadoop-project-dist/hadoop-hdfs/Federation.html
2017-07-10 21:28:35
462
原创 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
816
原创 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
2515
原创 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
962
原创 hive优化总结
1、列裁剪、分区裁剪只查询需要的字段和分区,不使用select*2、join优化小表放左边3、空值处理(1)NULL和数字相加的问题,为避免这种情况先nvl 或者coalesce 先处理(2)NULL 值关联时,可排除掉不参与关联,也可随机分散开避免倾斜4. 排序优化不需要全局排序时,可用distribute by sort by 而不用
2017-06-11 11:48:22
1027
原创 一次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
16561
原创 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
8705
翻译 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
7420
原创 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
4119
原创 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
1323
原创 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
586
原创 清除 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
2861
原创 Spring boot 入门 实例
欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl
2016-03-26 22:49:06
1420
原创 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
785
原创 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
11462
原创 hadoop2.7配置HA,使用zk和journal
本文使用前提:从noha到ha机器分配:nn1namenode,DFSZKFailoverControllernn2namenode,DFSZKFailoverControllerslave1datanode,zookeeper,journalnodeslave2datanode,zookeeper,journalnode
2015-08-29 13:14:46
4173
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
2778
1
转载 Python 基础语法(一)
Python 基础语法(一)Python的特点 1. 简单 Python是一种代表简单思想的语言。 2. 易学 Python有极其简单的语法。 3. 免费、开源 Python是FLOSS(自由/开放源码软件)之一。 4. 高层语言 使用Python编写程序时无需考虑如何管理程序使用的内存一类的底层细节。 5. 可移植性
2015-08-22 13:44:09
738
原创 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
1273
转载 Thrift学习笔记—IDL基本类型
[-]1基本类型2特殊类型3struct4容器Containers5枚举enmu6常量定义和类型定义7异常Exceptions8服务Services9名字空间Namespace10注释Comment11Includes thrift 采用IDL(Interface Definition Language)来定义通用的服务接口,并通过生成不同的语言代理实现来达到跨语言
2015-08-18 23:19:56
1429
转载 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
1347
原创 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
3767
原创 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
8907
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
3196
原创 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
961
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人