`

hadoop集群dfs.data.dir目录权限问题导致节点无法启动

 
阅读更多

 

安装使用Hive的时候发现文件无法从本地拷贝到hadoop集群系统,老是报错,错误内容为:

java.io.IOException: File  … could only be replicated to 0 nodes, instead of 1。查找namenode的日志,也是报这个错,而且非常多,即便在启动的时候也是报类似的错误。这个学习环境为单namenode+2个datanode,使用dfsadmin -report报无数据节点,如下:

[hadoop@namenode hadoop]$ hadoop dfsadmin -report

 

Configured Capacity: 0 (0 KB)
Present Capacity: 0 (0 KB)
DFS Remaining: 0 (0 KB)
DFS Used: 0 (0 KB)
DFS Used%: ?%
Under replicated blocks: 0
Blocks with corrupt replicas: 0
Missing blocks: 0

————————————————-
Datanodes available: 0 (0 total, 0 dead)

 

 

 

重新格式化namenode,并重新启动,故障依旧,清除历史日志,从datanode节点的日志发现了错误“Incompatible namespaceIDs “,删除了datanode的dfs.data.dir目录,并重建,然后重新格式化namenode、启动,发现dfsadmin -report还是没有数据节点加入。再查日志,发现错误不同了:All directories in dfs.data.dir are invalid。没有生成目录结构,正纳闷呢,发现日志中前面有警告:

Invalid directory in dfs.data.dir: Incorrect permissio
n for /hadoop/hadoop-data, expected: rwxr-xr-x, while actual: rwxrwxr-x。

    根据警告内容,分别在两个datanode上修改该目录权限:

[hadoop@namenode logs]$ ssh datanode01.hadoop
Last login: Wed Mar 14 01:58:39 2012 from namenode.hadoop
[hadoop@datanode01 ~]$ chmod g-w /hadoop/hadoop-data/
[hadoop@datanode01 ~]$ exit

[hadoop@namenode logs]$ ssh datanode02.hadoop
Last login: Wed Mar 14 01:59:00 2012 from datanode01.hadoop
[hadoop@datanode02 ~]$ chmod g-w /hadoop/hadoop-data/
[hadoop@datanode02 ~]$ exit

启动后,故障解除:

[hadoop@namenode hadoop]$ hadoop dfsadmin -report
Configured Capacity: 158030774272 (147.18 GB)
Present Capacity: 141718949918 (131.99 GB)
DFS Remaining: 141718892544 (131.99 GB)
DFS Used: 57374 (56.03 KB)
DFS Used%: 0%
Under replicated blocks: 0
Blocks with corrupt replicas: 0
Missing blocks: 0

————————————————-
Datanodes available: 2 (2 total, 0 dead)

Name: 172.21.126.102:50010
Decommission Status : Normal
Configured Capacity: 79015387136 (73.59 GB)
DFS Used: 28687 (28.01 KB)
Non DFS Used: 8155709425 (7.6 GB)
DFS Remaining: 70859649024(65.99 GB)
DFS Used%: 0%
DFS Remaining%: 89.68%
Last contact: Wed Mar 14 01:40:41 CST 2012

Name: 172.21.126.103:50010
Decommission Status : Normal
Configured Capacity: 79015387136 (73.59 GB)
DFS Used: 28687 (28.01 KB)
Non DFS Used: 8156114929 (7.6 GB)
DFS Remaining: 70859243520(65.99 GB)
DFS Used%: 0%
DFS Remaining%: 89.68%
Last contact: Wed Mar 14 01:40:41 CST 2012

 

运行hive测试,也能正常使用了:

hive> create table dummy(value STRING);
OK
Time taken: 10.642 seconds
hive> load data local inpath ‘/tmp/dummy.txt’ overwrite into table dummy;
Copying data from file:/tmp/dummy.txt
Copying file: file:/tmp/dummy.txt
Loading data to table default.dummy
Deleted hdfs://namenode.hadoop/user/hive/warehouse/dummy
OK
Time taken: 0.439 seconds
hive> select * from dummy;
OK
X
Time taken: 0.254 seconds
hive>

 

没想到数据目录的权限检查如此严格,多了用户组的写权限能造成集群系统的无法启动,在这记录,以备查。

 

转自:http://hellodatabase.com/?p=345

分享到:
评论

相关推荐

    Hadoop集群搭建.pdf

    在构建Hadoop集群的过程中,需要遵循一系列步骤和配置要求,以确保集群稳定高效地运行。以下是对标题"《Hadoop集群搭建.pdf》"和描述中所述知识点的详细说明: 1. **集群搭建目的**: 创建Hadoop集群的目的是为了...

    第六节、Hadoop集群搭建.pdf2

    Secondary NameNode的HTTP地址(`dfs.namenode.secondary.http-address`),默认的副本数(`dfs.replication`),是否开启权限检查(`dfs.permissions`),以及DataNode的数据存储路径(`dfs.datanode.data.dir`)等。...

    hadoop集群搭建.docx

    【Hadoop集群搭建详解】 Hadoop是一个开源的分布式计算框架,由Apache基金会开发,主要用于处理和存储海量数据。本文将详细介绍如何在多台机器上搭建一个基础的Hadoop集群,适用于初学者参考学习。 1. **环境准备*...

    hadoop节点问题.docx

    在Hadoop集群环境中,启动过程中可能会遇到某些关键节点未能正常启动的问题。例如,在启动Hadoop集群时,可能会遇到NameNode无法正常启动的情况。此类问题可能由多种因素引起,包括配置错误、节点ID不匹配等。本文将...

    hadoop集群搭建(超级详细)

    五、Hadoop集群启动与验证 1. 初始化NameNode: ```bash hadoop namenode -format ``` 2. 启动所有服务: ```bash start-dfs.sh start-yarn.sh start-zookeeper.sh ``` 3. 验证Hadoop集群是否正常运行: - 访问Web ...

    winutils.exe_hadoop-3.0.0

    这个文件对于在Windows上配置和运行Hadoop集群至关重要。`winutils.exe`通常位于Hadoop安装目录的`bin`子目录下,需要将其路径添加到系统环境变量`PATH`中,以便在命令行中随时调用。 `hadoop.dll`是Hadoop在...

    Hadoop2.X集群安装与配置

    八、测试Hadoop集群 通过`hadoop fs -ls /`命令检查HDFS是否正常运行。还可以创建一个测试文件并进行读写操作,以验证MapReduce功能。 九、监控与维护 利用Hadoop自带的Web界面监控集群状态,包括NameNode、...

    hadoop分布式配置.docx

    完成上述配置后,可以使用`sbin/start-dfs.sh`或`sbin/start-all.sh`命令启动Hadoop集群,并在每台虚拟机上执行`jps`命令来检查进程是否正常启动。在主节点上应能看到三个进程启动:Namenode、SecondaryNamenode和...

    Hadoop集群扩容操作手册

    Hadoop集群扩容操作手册 在大数据处理中,Hadoop集群的存储空间是非常宝贵的。当集群的磁盘快满时,需要对集群进行扩容。扩容操作可以分为两种方法:增加存储容量和对数据进行压缩存储。 1. 增加存储容量 增加...

    hadoop集群遇到的问题及其解决方法

    在Hadoop集群部署过程中,经常会出现DataNode无法成功连接到NameNode的情况,导致集群无法正常启动。 **原因分析:** 1. **主机名解析问题:** 主要是由于/etc/hosts文件中的配置不正确或存在冲突导致的,特别是当...

    Hadoop 2.x单节点部署学习。

    关键配置项包括`dfs.replication`(默认的文件复制因子),`dfs.namenode.name.dir`(名称节点的数据目录)和`dfs.datanode.data.dir`(数据节点的数据目录)。在单节点部署中,所有这些目录通常都会指向同一台机器...

    hadoop配置文件编辑

    这里设置为 file:/usr/hadoop/dfs/data,表示 DataNode 的数据目录为 /usr/hadoop/dfs/data。 4. dfs.http.address:指定 HDFS 的 HTTP 地址。这里设置为 master:9002,表示 HDFS 的 HTTP 地址为 master 节点的 ...

    centos下hadoop2.6.0配置.pdf

    在CentOS系统中配置Hadoop 2.6.0涉及多个步骤,主要目的是确保集群能够正确运行分布式文件系统(HDFS)和MapReduce任务。以下是一个详细的配置指南: 1. **配置环境变量**: 在`hadoop-2.6.0/etc/hadoop/hadoop-...

    安装hadoop集群三台虚拟机

    ### Hadoop集群三台虚拟机安装配置详解 #### 一、环境准备与概述 本教程主要介绍如何在三台Linux虚拟机上安装配置Hadoop集群。三台虚拟机的IP地址分别为192.168.116.10(作为NameNode)、192.168.116.11(作为...

    安装hadoop配置文件.zip

    这些配置文件的修改应谨慎进行,因为任何不适当的改动都可能导致Hadoop集群不稳定或性能下降。在部署Hadoop集群时,理解并正确配置这些文件是确保系统正常运行的基础。根据实际的硬件资源、网络条件和应用需求,对每...

    hadoop安装配置.docx

    2. `hdfs-site.xml`: 这里配置了HDFS的相关参数,如是否开启权限(`dfs.permissions.enabled`)、副本数量(`dfs.replication`)、名称节点目录(`dfs.name.dir`)和数据节点目录(`dfs.data.dir`)。 3. `mapred-...

    hadoop-2.7.5.zip

    在core-site.xml中,配置Hadoop的默认名称节点(name node)和数据节点(data node),通常使用本地文件系统作为临时存储,设置如下: ```xml <name>fs.defaultFS <value>file:/// ``` 接下来,我们需要...

    hadoop2.x 安装文档

    根据题目提供的信息,我们需要搭建一个包含四台机器的Hadoop集群,其角色分配如下: - **Node1**: - NameNode (NN) - DataNode (DN) - ZooKeeper (ZK) - ZooKeeper Failover Controller (ZKFC) - JournalNode ...

    hadoop 集群搭建说明书.rar

    - 在`hdfs-site.xml`中,配置副本因子(replication factor)和DFS相关参数,如`dfs.namenode.name.dir`和`dfs.datanode.data.dir`。 - `yarn-site.xml`用于配置YARN资源管理器和节点管理器的相关参数。 - `...

    hadoop-2.6.0.tar

    本文详细介绍了Hadoop 2.6.0在Linux上的安装和配置过程,包括环境准备、解压安装、配置环境变量、初始化目录、修改配置文件以及启动服务和测试安装。理解并掌握这些步骤对于在实际环境中部署和使用Hadoop至关重要。...

Global site tag (gtag.js) - Google Analytics