自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 FSImage并行加载以及对HDFS OIV的影响

FSImage并行加载关于NameNode FSImage并行加载现在有很多文章都详细介绍过,比如:https://blog.csdn.net/Androidlushangderen/article/details/100088073,所以这里就不大篇幅说了简单总结就是开启该功能后,FSImage文件里的FILESUMMARY将会添加INODE_SUB和INODE_DIR_SUB两类SECTION的索引,将INODE和INODE_DIR两个Section进行逻辑拆分,以实现并行加载。并行加载FSIma

2022-04-02 16:24:41 2901

原创 CapacityScheduler优化patch调研

之前看了LinkedIn的一篇Hadoop Yarn文章:https://engineering.linkedin.com/blog/2021/scaling-linkedin-s-hadoop-yarn-cluster-beyond-10-000-nodes感觉写的很好,里面提到了两种优化CapacityScheduler调度效率的场景,这里提出来总结一下一、修改队列调度排序场景CapacityScheduler默认根据利用率对队列进行排序,并首先将 containers 分配给利用率最低的队列。

2022-04-02 15:54:17 2549

原创 Could not find uri with key [dfs.encryption.key.provider.uri] to create a keyProvider

背景作业可能会出现以下报错ERROR org.apache.hadoop.hdfs.KeyProviderCache - Could not find uri with key [dfs.encryption.key.provider.uri] to create a keyProvider !!这个报错是hdfs客户端的一个bug,但并不影响作业正常运行,且在2.8版本之后已经修复相关代码DistributedFileSystem.java在这里调用getKeyProvider方法 p

2022-01-09 19:39:32 3985

原创 Hadoop单元测试编译报错

使用 mvn test 运行hadoop单元测试时,出现以下报错 [exec] ok 1 hadoop_add_classpath (simple not exist) [exec] ok 2 hadoop_add_classpath (simple wildcard not exist) [exec] ok 3 hadoop_add_classpath (simple exist) [exec] ok 4 hadoop_add_classpath (simple w

2022-01-09 19:25:48 925

原创 Yarn 3.x版本容器内存控制功能失效排查

问题背景Yarn集群中一部分节点的内存被打爆,排查发现作业使用内存超出了NodeManager的最大内存限制找出故障时间点运行的作业,发现作业内存设置不合理,用户只设置了mapreduce.map.java.opts=-Xmx40240m;mapreduce.reduce.java.opts=-Xmx80240m;而没有设置mapreduce.map.memory.mb(默认为1536)mapreduce.reduce.memory.mb(默认为3072)mapreduce.map.me

2021-11-28 14:10:18 26521

原创 网易游戏FairScheduler迁移CapacityScheduler实践

一、背景我们的海外集群上线spot动态节点后,由于动态节点不定期会被回收,为了保证作业运行稳定性,需要指定某些重点作业运行在固定节点,而这需要使用到CapacityScheduler的NodeLabel功能。虽然社区也有FairScheduler支持NodeLabel的patch(YARN-2497),但并不成熟,不适合在生产环境使用。此外,目前社区的开发重点也偏向CapacityScheduler,随着版本的更新,它对于调度吞吐量做了众多改进,比如多线程调度、细粒度锁等。经过讨论后,我们决定将目前使用

2021-11-28 13:56:36 3831

原创 Hadoop Yarn作业调度本地性源码分析

1、Yarn的调度本地性是指将作业分配到数据所在节点,可以减少很多网络IO,对MR作业来说,只有map task有本地性需求,reduce task和failed map task都没有本地性需求2、Yarn的调度本地性是通过延迟调度来满足的,本地性有3个级别:节点本地、机架本地和随意调度,当调度不能满足本地性时,调度器会计算错过的调度机会数量,并等待该计数达到阈值,然后将本地性约束放宽到下一个级别3、为了调度到满足数据本地性的节点,可以错过一定数量的调度机会,这个错过机会数量的阈值由以下参数控制:F

2021-10-12 17:14:34 510

原创 debian安装nginx报错:Package nginx-full is not configured yet.

执行sudo apt install nginx安装nginx时报错:Setting up nginx-full (1.10.3-1+deb9u7) ...[FAIL] Starting nginx: nginx failed!invoke-rc.d: initscript nginx, action "start" failed.dpkg: error processing package nginx-full (--configure): subprocess installed post-i

2021-09-23 12:32:46 877

原创 HDFS慢节点监控原理源码分析

背景HDFS集群规模日益扩大之后,集群中难免会出现一些“慢节点“,主要表现为网络数据传输变慢、磁盘读写变慢。平常这些慢节点很难被发现,只有当业务作业数据读写涉及到这些节点,导致作业运行时间延长,我们才会发现集群读写变慢了,进而去定位具体变慢的节点。所以慢节点一直是HDFS集群运维中需重点关注的问题,在Hadoop2.9之后,社区支持了从Namenode jmx上查看慢节点的功能。metrics格式如下,需要注意的是这里最多展示Top5个节点/磁盘:"SlowPeersReport":[{"SlowN

2021-08-29 11:30:47 3316 1

原创 大数据开发如何入门?大厂程序员分享一下我的学习路线

相信近几年大家也都感受到了计算机行业的火爆,越来越多的同学选择报考计算机专业,甚至很多非计算机专业的同学也一直想要转行当程序员。在这样的环境下,公司对程序员的要求也是水涨船高,几年前校招的同学,想找一份JAVA开发的工作,可能只需要会一些Java Web基础,再加spring框架,写几个毕设水平的小项目就行了。而现在,算法、微服务、分布式、高并发,很多工作中可能都遇不上的场景,也都要考察。现在JAVA开发程序员已经卷成这样,不如来看看另一条路:大数据开发。首先介绍一下我的情况,我大学专业是信息安全,毕

2021-05-16 18:36:53 1506 7

原创 Java api读取kerberos模式HDFS

maven依赖 <!-- https://mvnrepository.com/artifact/org.apache.hadoop/hadoop-common --> <dependency> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-common</artifactId> &

2021-04-16 17:46:21 260 1

原创 datanode日志 连接被对方重设/断开的管道

背景datanode日志中经常发现大量以下报错:2021-04-07 14:59:35,131 ERROR org.apache.hadoop.hdfs.server.datanode.DataNode: BlockSender.sendChunks() exception:java.io.IOException: 连接被对方重设 at sun.nio.ch.FileChannelImpl.transferTo0(Native Method) at sun.nio.ch.FileCha

2021-04-07 17:37:00 3051 2

原创 Debian/Ubuntu编译多版本Hadoop及踩坑

最近在搭建Jenkins+Git的CI/CD流程,公司用到了Hadoop的好几个版本,2.6.0、3.2.1、3.3.0,这三个版本对编译环境的要求都有不同,所以以下是我在一台机器搭建三个版本的Hadoop编译环境的过程。hadoop3.3 Requirements首先看BUILDING.txt(https://github.com/apache/hadoop/blob/trunk/BUILDING.txt),这里先以3.3版本为准Requirements:Unix SystemJDK 1.8

2021-01-30 16:05:01 798

原创 HDFS副本放置策略源码分析

背景前段时间我们的集群在写入block时有如下报错:Caused by: org.apache.hadoop.hive.ql.metadata.HiveException: org.apache.hadoop.ipc.RemoteException(java.io.IOException): File /tmp/xxxx.tmp could only be replicated to 0 nodes instead of minReplication (=1). There are 983 dat

2021-01-30 15:02:59 597

原创 没有项目,没有实习,没有竞赛,计算机专业同学如何准备校招

又到一年一度的国庆假期了,回想两年前的这个时候,我还在寝室里紧张地准备我的校招项目,都参加了好几场面试了,项目还有一些功能模块没有完成,所以整个国庆假期的时间都花在这上面了。索性之后也没有辜负我的努力,拿到了好几个offer,顺利结束了我的秋招。这篇文章想和大家分享一下,一个最普通的计算机专业学生,没有竞赛成绩,没有实习经历,没有项目经验,成绩也普通,要如何准备校招,收获一份满意的offer。首先我的专业是信息安全,但我要找一份Java开发的岗位,这其实算是小跨行了,Java这门课我只在大三上过一学期,

2020-10-06 14:49:40 9707 10

原创 计算机专业到底要不要考研?211毕业程序员工作一年后谈谈我的看法

上一篇文章中我回顾了我的大学生活,和大部分人一样,我在大三时候面临了考研or工作的选择,一开始我稀里糊涂打算考研,甚至复习了一个学期的高数,但后来我放弃了这个想法,参加了大四的秋招,工作一年后,我成功跳槽进入网易。这篇文章里,我打算以我的亲身经历来讲讲计算机专业的学生到底要不要考研,大三的时候我很想知道到底是直接工作好还是考研好,我逛了很多论坛,搜索了很多问答,最后发现,这个问题其实无法给出一个通用的准确的答案,只能根据每个人自身条件来判断。所以先说一下我主观总结的几条建议:1、能够保研建议直接读研

2020-09-19 17:55:41 21636 2

原创 从大一时成绩倒数,到毕业后入职网易,回顾一路走来的艰辛

马上又到了开学季了,如果把时光倒回到五年前,这个时候的我正收拾行囊,离开生活了十几年的家乡,怀着忐忑又憧憬的心,即将步入新的大学生活。而现在的我,已经毕业经历了一年的工作打拼,并在上个月成功跳槽到了网易。回想起这一路走来的经历,从刚上大学时的放飞自我,挂科倒数,到后来没日没夜的恶补学习,写代码写到头晕反胃,最后终于天道酬勤,取得一些小成果,我感觉有必要做一个回顾总结,同时也稍微放松一下一直以来紧绷的神经。大一 浑噩的一年经历了高考的人应该都有相同的感受,从那样的压力下解脱出来,大部分人都很难继续对学习

2020-09-06 12:55:44 3483 1

原创 一年经验大数据开发网易游戏社招面经(已拿offer)

先说一下背景,我是19年毕业的一所普通211的本科生,在国企工作一年,感觉技术进入瓶颈,就想跳槽了。不得不说今年行情确实很差,加上我工作年限太短了,投了一个多月的简历才拿到一个网易游戏的面试机会,所以劝各位想换工作的话最好还是别裸辞。话不多说,网易面试一共两轮技术面+一轮HR面:一面(技术面:1个小时)自我介绍数仓整条链路具体负责哪块团队多少人Flume具体配置Flume到Kafka的一次性Kafka的exactly once如何保证Kafka下游消费速度比不上生产速度怎么办讲一下Spar

2020-08-08 16:21:32 3966 5

原创 ElasticSearch7.0 Java High Level Client使用教程(三:聚合查询)

前两篇介绍了es的简单条件查询,本文将在条件查询的基础上添加聚合条件进行查询,聚合查询很大的不同是在查询结果的解析上。首先看一下这条dsl查询语句:GET test*/_search{ "size": 0, "timeout": "60s", "query": { "bool": { "must": [ { "terms": { "server_name.keyword": [ "w

2020-06-05 16:20:13 1265

原创 ElasticSearch7.0 Java High Level Client使用教程(二:Scroll滚动查询)

上一篇里演示了ES简单的条件查询,值得注意的是,因为ES的深分页问题,单次查询最多只能返回10000条数据,

2020-05-28 17:00:18 2417

原创 ElasticSearch7.0 Java High Level Client使用教程(一:简单查询)

本文将演示如何使用ES提供的Java高级包来查询数据,首先API其实就是在底层构建一条DSL查询语句,所以我们首先看一下这条语句:GET test*/_search{ "timeout": "60s", "query": { "bool": { "must": [ { "terms": { "status.keyword": [ "301", "302"

2020-05-21 14:44:36 1566 1

原创 filebeat和flume写入kafka后数据格式的不同

filebeat和flume都是当下非常流行的日志采集工具,flume功能更强,使用范围也更广,而filebeat相比flume更加轻量,一般跟ELK一起使用。笔者在使用这两个工具对接kafka的过程中发现他们采集到kafka里的数据格式是不同的,这里我使用spark streaming分别消费出几条数据对比一下:spark streaming程序:def run():Unit={ val sparkConf=new SparkConf().setAppName("Test").setMast

2020-05-13 17:39:55 1344

原创 CDH 5.12.1集群搭建与运维过程中的一些踩坑

一、cmf-agent: error: argument --hostname is required描述:启动cloudera-scm-agent失败解决:主机名(hostname)要跟/etc/hosts里配置的一样二、/opt/cloudera/目录更换操作描述:CDH的parcel等文件默认放在/opt/cloudera目录下,但一般情况下这个目录的磁盘空间都比较小,需要把这些文件...

2020-04-22 12:25:09 1763

原创 flume写hdfs使用日志里的时间作为文件目录

在使用flume采集日志写入hdfs的时候,可以通过a1.sinks.k1.hdfs.path = /flume/events/%y-%m-%d/%H%M/%S配置目录名称为日期,默认情况下会使用系统时间,但是在日志采集过程中经常会发生延迟情况,比如23:59的日志00:01才采集完,那这个时候本来是前一天的日志就会被写入第二天的目录里,后续ETL的过程中就会发生误差,这个时候我们会想,能不...

2020-04-17 18:09:23 867

原创 superset、metabase、redash三个开源BI工具的个人使用心得及分析

数据可视化也是大数据领域里极为关键的一环,一开始我们用的是SpringBoot+ECharts的经典组合来做可视化的,确实功能很强也很灵活,但后来随着统计需求越来越多,每来一个新需求都要写大量的重复的MVC代码,这等于花费了许多无用的时间和精力,这种时候就需要一个BI工具来简化这个过程。市面上有很多极为优秀的BI,像Tableau、PowerBI等,但这些都是收费的,不在考虑范围内。而开源免费的...

2020-04-12 12:38:27 24686 6

原创 记一次诡异的 ssh: connect to host localhost port 22: Connection refused

配置ssh免密登录应该是搭建集群过程中最基础的步骤之一了,也是一个很简单步骤,但是最近笔者刚收到几台测试机,在配置完ssh免密登录后却怎么也连不通,甚至ssh localhost也是不通的,百度了一下都是说没有安装openssh-server或是没有开启ssh服务,但我肯定是安装好了并且开启了的,这里顺便说一下,可以用 ps -ef | grep ssh 命令看一下,如果像下图一样有sshd的进...

2020-04-06 21:58:32 415

原创 spark streaming读kafka写elasticsearch

spark streaming作为当下依然火热的流计算引擎,对于kafka和elasticsearch都有很好的api支持,以下是笔者在实际生产环境中的一个案例。首先说一下几个重点:kafka消费offset使用mysql保存,一开始使用了ScalikeJDBC这个包来实现对数据库的访问,后来项目里同时有clickhouse的JDBC工具类,两者之间产生冲突,所以就自己写了原生的mysql ...

2020-03-10 23:41:13 552

原创 spark写DSL读取elasticsearch数据(内附踩坑点)

在一些场景下我们可能会遇到需要从es导出一部分特定的数据然后进行处理这样的情况,这个时候spark会是一个不错的选择。第一步 maven配置这里一些工具使用的版本:spark:2.3.4elasticsearch:7.0.0scala:2.11.8maven配置如下:<dependencies> <!-- 导入scala的依赖 --> ...

2020-02-16 18:12:06 1212 2

原创 超详细的centos7安装redash教程

redash是一款目前非常流行的开源BI工具,支持的数据源丰富,图表种类多,也比较美观。但有一点不好是目前在centos上安装redash比较麻烦,下面是我亲身实践成功安装的详细步骤:第一步 安装docker//安装必要的软件包yum install -y yum-utils device-mapper-persistent-data lvm2 //配置仓库yum-config-mana...

2020-02-03 14:02:03 5524 3

原创 Ruby 获取url参数的方法

第一种参数:url,参数名返回:参数内容def getURLParam(url,param) hash={} hash.default='' if url.index('?') str=url.split('?')[1] if str.split('&') ...

2020-01-17 17:27:57 695

空空如也

空空如也

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

TA关注的人

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