Hadoop 3.x的第一个稳定版本在2017年底就已经发布了,有很多重大的改进。
腾讯云大数据团队服务的某个大客户,hadoop集群超过300台服务器。因为大数据平台承载的业务程序非常多(每天超过5万次任务运行在yarn)、datanode的IO压力很大,在今天下午datanode出现大面积故障。通过日志查找,发现以下信息:
Hadoop HDFS时的“Incompatible clusterIDs”错误原因分析.pdf
Fayson想了想这个问题其实在各个环境是都可能碰到的,于是在这篇文章给大家系统介绍一下。
在开始编写Java程序之前,您需要确保本地计算机已经安装并启动了Hadoop和HDFS服务。
总有一天你会笑着说出曾经令你痛苦的事情,毕竟有些东西虽然不是你想要的,但是却是你自找的,表面上是无奈,实际上是懒得去做选择,成功的路只有一条,而失败的路则是各种各样的原因。
Hadoop Distributed File System(HDFS)是一个分布式文件系统,用于存储和处理大规模数据。在HDFS中,文件被分为数据块,并存储在不同的数据节点上,以实现高可靠性和容错性。文件的上传是使用HDFS API或命令行工具完成的。
1.移走集群中所有JournalNode节点目录下的同一个edits文件,比如下面图片中的文件 edits_0000000000001904836-0000000000001904904
HDFS是主/从式的架构。一个HDFS集群会有一个NameNode(简称NN),也就是命名节点,该节点作为主服务器存在(master server).
Hadoop分布式文件系统(HDFS)是一个基于Java的分布式文件系统,由Apache Hadoop项目管理。HDFS可以在大规模集群中存储和处理大量的数据,其参数设置对于系统的性能和稳定性至关重要。
在前面的文章《0550-6.1-如何将普通用户增加到HDFS的超级用户组supergroup》中Fayson介绍过如何将普通用户设置为HDFS的超级用户,从而可以让普通用户也可以执行如dfsadmin相关的功能,但对于HDFS服务来说还有一个管理员用户(dfs.cluster.administrators),无论是超级用户还是管理员用户默认都是hdfs,本文Fayson主要介绍如何将普通用户设置为HDFS的管理员用户。
Flume是Cloudrea公司开源的一款优秀的日志收集框架,主要经历了两个大的版本,分别是 Flume-OG Flume-NG OG是0.9.x的版本,依赖zookeeper,角色职责不够单一
温馨提示:要看高清无码套图,请使用手机打开并单击图片放大查看。 Fayson的github: https://github.com/fayson/cdhproject 提示:代码块部分可以左右滑动查看噢 1.文档编写目的 ---- 在开发应用使用Hadoop提供的hadoop-client API来访问HDFS并进行本地调试,本篇文章Fayson主要介绍如何使用Java API访问Kerberos环境下的HDFS并为目录设置配额。 内容概述 1.环境准备 2.Kerberos环境为HDFS目录设置配额 3.
1.帮助命令 可以通过此命令了解更多命令 hdfs dfs -help 2.根目录详情 hdfs dfs -ls / 3.文件上传到hdfs的根目录下 hdfs dfs -put a.txt /a.txt 4.剪切文件到hdfs的根目录下 hdfs dfs -moveFromLocal a.txt /aa.txt 5.从hdfs根目录下载文件到指定位置 hdfs dfs -get /a.txt /root/aa.txt 6.在hdfs下创建文件夹 hdfs dfs -mkdir /hq 7.在hdfs下强制
下面是成功信息,出现 has been successfully formatted.
官网 http://hadoop.apache.org/docs/r2.7.3/api/index.html
一、异常现象 启动hadoop时,datanode启动失败,出现如下异常: 2018-03-23 14:39:09,962 WARN org.apache.hadoop.hdfs.server.datanode.DataNode: Invalid dfs.datanode.data.dir /ray/hadoop/dfs/data : ExitCodeException exitCode=1: chmod: changing permissions of `/ray/hadoop/dfs/data': O
2014-06-18 20:34:59,622 FATAL org.apache.Hadoop.hdfs.server.datanode.DataNode: Initialization failed for block pool Block pool <registering> (Datanode Uuid unassigned) service to localhost/127.0.0.1:9000 java.io.IOException: Incompatible clusterIDs in /usr/local/hadoop/hdfs/data: namenode clusterID = CID-af6f15aa-efdd-479b-bf55-77270058e4f7; datanode clusterID = CID-736d1968-8fd1-4bc4-afef-5c72354c39ce at org.apache.hadoop.hdfs.server.datanode.DataStorage.doTransition(DataStorage.java:472) at org.apache.hadoop.hdfs.server.datanode.DataStorage.recoverTransitionRead(DataStorage.java:225) at org.apache.hadoop.hdfs.server.datanode.DataStorage.recoverTransitionRead(DataStorage.java:249) at org.apache.hadoop.hdfs.server.datanode.DataNode.initStorage(DataNode.java:929) at org.apache.hadoop.hdfs.server.datanode.DataNode.initBlockPool(DataNode.java:900) at org.apache.hadoop.hdfs.server.datanode.BPOfferService.verifyAndSetNamespaceInfo(BPOfferService.java:274) at org.apache.hadoop.hdfs.server.datanode.BPServiceActor.connectToNNAndHandshake(BPServiceActor.java:220) at org.apache.hadoop.hdfs.server.datanode.BPServiceActor.run(BPServiceActor.java:815) at java.lang.Thread.run(Thread.java:744)
首先将Hadoop软件包上传至/root中,并解压在/usr/local/src/下
前一段时间总结了hadoop中的token认证、yarn任务运行中的token,其中也都提到了delegation token。而最近也遇到了一个问题,问题现象是:flink任务运行超过七天后,由于宿主机异常导致任务失败,继而触发任务的重试,但接连重试几次都是失败的,并且任务的日志也没有聚合,导致无法分析问题失败的原因。最后发现是和delegation token有关,本文就来总结下相关的原理。
org.apache.hadoop.security.AccessControlException: Permission denied: user=root, access=WRITE, inode="/user":hdfs:supergroup:drwxr-xr-x
2、将hadoop-3.0.0/bin文件复制一份,改名为hadoop-3.0.0/bin.template
随着 Flink 实例的迁移下云以及新增需求接入,自建 Flink 平台规模逐渐壮大,当前总计已超 4 万核运行在自建的 K8S 集群中,然而 Flink 任务数的增加,特别是大状态任务,每次 Checkpoint 时会产生脉冲式带宽占用,峰值流量超过 100Gb/s,早期使用 OSS 作为 Checkpoint 数据存储,单个 Bucket 每 1P 数据量只有免费带宽 10Gb/s,超出部分单独计费,当前规模每月需要增加 1x w+/月。
问题导读: 1.什么是flume? 2.如何安装flume? 3.flume的配置文件与其它软件有什么不同? 一、认识flume 1.flume是什么? 这里简单介绍一下,它是Cloudera的一个产品 2.flume是干什么的? 收集日志的 3.flume如何搜集日志? 我们把flume比作情报人员 (1)搜集信息 (2)获取记忆信息 (3)传递报告间谍信息 flume是怎么完成上面三件事情的,三个组件: source: 搜集信息 channel:传递信息 sink:存储信息 上面有点简练,详细可以
温馨提示:要看高清无码套图,请使用手机打开并单击图片放大查看。 Fayson的github:https://github.com/fayson/cdhproject 提示:代码块部分可以左右滑动查看噢 1.文档编写目的 ---- 启用HDFS的NameNode高可用时,需要指定一个nameservice ID。这个ID用来标识由2个NameNode组成的单个HDFS实例。默认情况下,在启用NameNode高可用时,这个nameservice ID使用的是nameservice1。在启用HA的时候,我们可以通
有一段时间没有更文了,一方面是之前准备的hudi系列由于一些细节还没研究得很清楚,暂时没有继续更新。另一方面,最近事情相当多,回家后收拾收拾就十一二点了,也就没有再进行总结输出了。
这几天在使用tpcds数据对hudi 0.12.0写入性能进行压测,发现在数据写入半小时后,即出现异常,并且程序不断重启,任务异常日志如下:
这是几个月前遇到的一次HBase集群宕机事件,今天重新整理下事故分析报告。概况的说是业务方的一个10节点HBase集群支撑百TB级别的数据量,集群region数量达 23000+,最终集群支持不住业务压力,带来了一次惨痛的宕机事件。
Windows 7 环境下启动 HDFS,执行 start-dfs.cmd 出现 org.apache.hadoop.io.nativeio.NativeIO$Windows.access0(Ljava/lang/String;I)Z报错信息如下:
首先完成Java开发环境准备,创建工程并导入开发所需的Jar包。之后在准备好的工程中完成以下步骤。
1.Unable to determine local hostname -falling back to "localhost"
本文用于解决 Apache Hadoop 启动时 DataNode 启动异常的问题,但是请注意这会删除 HDFS 中原有的所有数据,如果原有的数据很重要请不要这样做。
用beeline连接spark thriftserver或者kyuubi(spark 3.3.0)查询hudi mor表,发现对于同一个spark SQL在同一个beeline session里面不同时间查到的东西都是一样的。比如我用select count(*) from xxx。除此之外还有个问题就是,在同一个beeline session里面再过一段时间后,由于有些文件被合并了,再查会报以前的log文件找不到的问题。
在HDFS集群中NameNode存在单点故障(SPOF),对于只有一个NameNode的集群,如果NameNode机器出现意外,将导致整个集群无法使用。为了解决NameNode单点故障的问题,Hadoop给出了HDFS的高可用HA方案,HDFS集群由两个NameNode组成,一个处于Active状态,另一个处于Standby状态。
出现 这种异常是因为数据冲突造成的,可以把通过日志查看,解决办法:删掉tmp文件夹下生成的dfs文件,重新format一下,问题解决。
当前版本的Hadoop已解决了hdfs、yarn和hbase等单点,并支持自动的主备切换。
如果DataNode的dfs.datanode.data.dir全配置成SSD类型,则执行“hdfs dfs -put /etc/hosts hdfs:///tmp/”时会报如下错误:
在HDFS集群中NameNode存在单点故障(SPOF),对于只有一个NameNode的集群,如果NameNode机器出现意外,将导致整个集群无法使用。为了解决NameNode单点故障的问题,Hadoop给出了HDFS的高可用HA方案,HDFS集群由两个NameNode组成,一个处于Active状态,另一个处于Standby状态。Active NameNode可对外提供服务,而Standby NameNode则不对外提供服务,仅同步Active NameNode的状态,以便在Active NameNode失败时快速的进行切换。本篇文章Fayson主要讲述如何使用Cloudera Manager启用HDFS的HA。
更改了hadoop的配置文件:core-site.xml 和 mapred-site.xml 之后,重启hadoop 和 hbase 之后,发现hbase日志中抛出了如下异常:
Hadoop分布式文件系统(HDFS)是Hadoop框架中的一部分,用于存储大量数据。HDFS写数据的流程是在客户端和HDFS之间的通信中发生的,它涉及了多个组件和步骤。
本文的目的是为当前最新版本的Hadoop 2.4.0提供最为详细的安装说明,以帮助减少安装过程中遇到的困难,并对一些错误原因进行说明。本文的安装只涉及了hadoop-common、hadoop-hdfs、hadoop-mapreduce和hadoop-yarn,并不包含HBase、Hive和Pig等。
解决 Apache Hadoop 启动时 DataNode 没有启动的问题(注意这会删除 HDFS 中原有的所有数据,如果原有的数据很重要请不要这样做)。
hadoop提供了一个可靠的共享存储和分析系统。HDFS实现数据的存储,MapReduce实现数据的分析和处理。虽然Hadoop还有其他功能,但HDFS和MapReduce是核心价值。
启动./start-dfs.sh后jps发现没有datanode进程。 查看日志 2018-02-27 13:54:27,918 INFO org.apache.hadoop.ipc.Server: IPC Server Responder: starting 2018-02-27 13:54:29,140 INFO org.apache.hadoop.hdfs.server.common.Storage: Lock on /home/hadoop/app/tmp/dfs/data/in_use.lock
在部署hadoop集群时,core-site.xml中的fs.defaultFS项的value不可包含下划线,否则会报以下错误
访问HDFS的方式很多,常用的有命令行方式、通过Hadoop提供的API访问、也可以通过挂载NFS的方式访问,在前面的文章Fayson也都有介绍过。本篇文章Fayson主要介绍使用FTP的方式来访问HDFS,这里介绍一个开源的小工具hdfs-over-ftp,简单易用的实现了基于FTP的方式对HDFS上文件进行上传和下载等功能。本篇文章Fayson主要介绍如何基于C6编译hdfs-over-ftp工具,并进行安装部署及验证。
STARTUP_MSG: Starting DataNode STARTUP_MSG: host = node-128-99/192.168.1.99 STARTUP_MSG: args = [] STARTUP_MSG: version = 1.1.2 STARTUP_MSG: build = https://svn.apache.org/repos/asf/hadoop/common/branches/branch-1.1 -r 1440782; compiled by 'hortonfo' on Thu Jan 31 02:06:43 UTC 2013 ************************************************************/ 2013-12-06 17:19:20,492 INFO org.apache.hadoop.metrics2.impl.MetricsConfig: loaded properties from hadoop-metrics2.properties 2013-12-06 17:19:20,508 INFO org.apache.hadoop.metrics2.impl.MetricsSourceAdapter: MBean for source MetricsSystem,sub=Stats registered. 2013-12-06 17:19:20,509 INFO org.apache.hadoop.metrics2.impl.MetricsSystemImpl: Scheduled snapshot period at 10 second(s). 2013-12-06 17:19:20,509 INFO org.apache.hadoop.metrics2.impl.MetricsSystemImpl: DataNode metrics system started 2013-12-06 17:19:20,670 INFO org.apache.hadoop.metrics2.impl.MetricsSourceAdapter: MBean for source ugi registered. 2013-12-06 17:19:20,736 WARN org.apache.hadoop.hdfs.server.datanode.DataNode: Invalid directory in dfs.data.dir: can not create directory: /opt/dfs/data 2013-12-06 17:19:22,183 ERROR org.apache.hadoop.hdfs.server.datanode.DataNode: org.apache.hadoop.util.DiskChecker$DiskErrorException: Invalid value for volsFailed : 1 , Volumes tolerated : 0 at org.apache.hadoop.hdfs.server.datanode.FSDataset.<init>(FSDataset.java:974) at org.apache.hadoop.hdfs.server.datanode.DataNode.startDataNode(DataNode.java:403) at org.apache.hadoop.hdfs.server.datanode.DataNode.<init>(DataNode.java:309) at org.apache.hadoop.hdfs.server.datanode.DataNode.makeInstance(DataNode.java:1651) at org.apache.hadoop.hdfs.server.datanode.DataNode.instantiateDataNode(DataNode.java:1590) at org.apache.hadoop.hdfs.server.datanode.DataNode.createDataNode(DataNode.java:1608) at org.apache.hadoop.hdfs.server.datanode.DataNode.secureMain(DataNode.java:1734) at org.apache.hadoop.hdfs.server.datanode.DataNode.main(DataNode.java:1751)
领取专属 10元无门槛券
手把手带您无忧上云