hadoop之hdfs

hdfs的设计理念:当数据集的大小超过单台计算机的存储能力时,就有必要将其进行分区并存储到若干台单独的计算机上。可以这样说
hadoop有一个抽象的文件系统概念,HDFS只是其中的一个实现。
在hadoop里,hadoop定义了一个抽象的文件系统的概念,具体就是hadoop里面定义了一个java的抽象类:org.apache.hadoop.fs.FileSystm,这个抽象类用来定义hadoop中的一个文件系统接口,只要某个文件系统实现了这个接口,那么它就可以作为hadoop支持的文件系统

 

文件系统

URI方案

Java实现

org.apache.hadoop

定义

Local

file

fs.LocalFileSystem

支持有客户端校验和本地文件系统。带有校验和的本地系统文件在fs.RawLocalFileSystem中实现。

HDFS

hdfs

hdfs.DistributionFileSystem

Hadoop的分布式文件系统。

HFTP

hftp

hdfs.HftpFileSystem

支持通过HTTP方式以只读的方式访问HDFS,distcp经常用在不同的HDFS集群间复制数据。

HSFTP

hsftp

hdfs.HsftpFileSystem

支持通过HTTPS方式以只读的方式访问HDFS。

HAR

har

fs.HarFileSystem

构建在Hadoop文件系统之上,对文件进行归档。Hadoop归档文件主要用来减少NameNode的内存使用

KFS

kfs

fs.kfs.KosmosFileSystem

Cloudstore(其前身是Kosmos文件系统)文件系统是类似于HDFS和Google的GFS文件系统,使用C++编写。

FTP

ftp

fs.ftp.FtpFileSystem

由FTP服务器支持的文件系统。

S3(本地)

s3n

fs.s3native.NativeS3FileSystem

基于Amazon S3的文件系统。

S3(基于块)

s3 

fs.s3.NativeS3FileSystem

基于Amazon S3的文件系统,以块格式存储解决了S3的5GB文件大小的限制。

 

在hadoop里有一个文件系统概念,例如上面的FileSystem抽象类,它是位于hadoop的Common项目里,主要是定义一组分布式文件系统和通用的I/O组件和接口,hadoop的文件系统准确的应该称作hadoop I/O。而HDFS是实现该文件接口的hadoop自带的分布式文件项目,hdfs是对hadoop I/O接口的实现。

下面我给大家展示一张表,这样大家对hadoop的FileSystem里的相关API操作就比较清晰了,表如下所示:

HadoopFileSystem

Java操作

Linux操作

描述

URL.openSteam

FileSystem.open

FileSystem.create

FileSystem.append

URL.openStream

open

打开一个文件

FSDataInputStream.read

InputSteam.read

read

读取文件中的数据

FSDataOutputStream.write

OutputSteam.write

write

向文件写入数据

FSDataInputStream.close

FSDataOutputStream.close

InputSteam.close

OutputSteam.close

close

关闭一个文件

FSDataInputStream.seek

RandomAccessFile.seek

lseek

改变文件读写位置

FileSystem.getFileStatus

FileSystem.get*

File.get*

stat

获取文件/目录的属性

FileSystem.set*

File.set*

Chmod等

改变文件的属性

FileSystem.createNewFile

File.createNewFile

create

创建一个文件

FileSystem.delete

File.delete

remove

从文件系统中删除一个文件

FileSystem.rename

File.renameTo

rename

更改文件/目录名

FileSystem.mkdirs

File.mkdir

mkdir

在给定目录下创建一个子目录

FileSystem.delete

File.delete

rmdir

从一个目录中删除一个空的子目录

FileSystem.listStatus

File.list

readdir

读取一个目录下的项目

FileSystem.getWorkingDirectory

 

getcwd/getwd

返回当前工作目录

FileSystem.setWorkingDirectory

 

chdir

更改当前工作目录

hadoop的FileSystem里有两个类:FSDataInputStream和FSDataOutputStream类,它们相当于java I/O里的InputStream和Outputsteam,而事实上这两个类是继承java.io.DataInputStream和java.io.DataOutputStream。

hdfs的架构

  一个典型的hdfs集群中,包含 namenode,secondarynode,和至少一个datanode,所有的数据都存储在运行datanode进程的节点的块(block)里。



 

首先要解析块这个名词

每个磁盘都有默认的数据块大小,就是磁盘进行读写的最小单元,文件系统也有文件块的概念,如ext3,ext2等。

hdfs的默认文件系统的块大小为64M,也可以通过设置 hdfs-site.xml配置文件中的dfs.block.size项的大小。

  dfs.relication 配置为每个HDFS的块在hadoop集群中复制份数。

例如 :一个data.txt文件,大小为150M,hdfs文件块大小为64M,那么文件就分为3块

   第一块 64M

   第二块 64M

   第三块 22M

这里特别要指出,hdfs小于一个块文件大小的文件不会占据整个块的空间,但是还是会分配一个块。

 

nameNode ,SecondaryNameNode

nameNode也被称为名字节点,是hdfs(master/slave)架构的主角色,维护整个文件系统的目录树,以及目录树里所有的文件和

目录,这些信息以两种文件存储在本地文件系统  一种》fsimage(命名空间镜像,即HDFS元数据的完整快照),另外一种 edit log(命名空间镜像的编辑日志)

secondaryNameNode 用于定期合并fsimage和edit log.

fsimage文件其实是文件系统元数据的一个永久性检查点,其流程如下

 

 

(1).secondaryNameNode 引导nameNode滚动更新edit log文件,并开始将新的内容写入edit log.new

(2).secondaryNameNode将nameNode的 fsimage,edit log文件复制到本地的检查点目录。

(3).secondaryNameNode载入fsimage文件,回放edit log,将其合并到fsimae,将新的fsimage文件压缩后写入磁盘

(4).secondaryNameNode将新的fsimage文件送回namenode,namenode在接受新的fsimage后,直接加载和应用该文件

(5).namenode将edit log.new更名为edit log.

默认情况下每小时发生一次,或者到namenode的edit log文件到达默认的64M,

fsimage保存了最新的元数据检查点。

edits保存自最新检查点后的命名空间的变化。

fsimage文件中包含文件metadata信息,不包含文件块位置的信息。

namenode把文件块位置信息存储在内存中,这些位置信息是,在 datanode加入集群的时候,

namenode询问datanode得到的,并且间断的更新

 

从最新检查点后,hadoop将对每个文件的操作都保存在edits中,为避免edits不断增大,secondary namenode就会周期性合并fsimage和edits成新的fsimage,edits再记录新的变化

这种机制有个问题:因edits存放在Namenode中,当Namenode挂掉,edits也会丢失,导致利用secondary namenode恢复Namenode时,会有部分数据丢失



 

 

 

hdfs读取文件和写入文件

一 数据读取

例如 hdfs中存储了一个文件/user/data.txt,hdfs客户端要读取该文件,

1.通过验证机制是否允许访问

2.namenode提供hdfs客户端这个文件的第一个数据块的标号已经保存有该数据库块的datanode列表,主意这个列表是datanode与hdfs客户端的距离排序的,有了数据块标号以及datanode,hdfs直接访问最合适的datanode,读取所需的数据块。该过程会一直重复直到该文件所有数据块读取完成。、




 
 

二:数据写入

    以hdfs客户端向hdfs创建一个新文件为例




 
 

当hdfs客户端发送请求,这个请求将被发送到namenode,并建立该文件的元数据,这个新建立的文件元数据并未和任何数据块相关联,此时hdfs客户端会收到响应,当客户端将数据写入流时,数据会被自动拆分成数据包,并将数据包保存在内存队列中,客户端有一个独立的线程,从队列中读取数据包,并向namenode请求一组datanode,hdfs客户端将直接连接到列表中的的第一个datanode,而该datanode又连接到第二个datanode,第二个又连接第三个,如此就建立了数据块的复制管道,hdfs客户端应用程序维护着一个列表,记录哪些包还未收到确认消息。

 

hdfs 数据完整性

 正在写数据的hdfs客户端将数据和校验和发送到由一系列datanode组成的复制管道,管道中最后一个datanode负责验证校验和。

hdfs客户端从datanode读取数据时,也会验证校验和,将他们与datanode中存储的校验和进行比较,每个datanode均保存有一个用于校验和日志,客户端成功校验一个数据块后,会告诉datanode,datanode由此更新日志。

不只是客户端在读取数据和写入数据时会验证校验和,每个datanode也会在一个后台线程运行dataBlockScanner,定期验证存储在这个datanode上的所有数据块。

namenode负责在验证收到的数据后存储数据及其校验和

 

 

提供了一个基于51单片机的RFID门禁系统的完整资源文件,包括PCB图、原理图、论文以及源程序。该系统设计由单片机、RFID-RC522频射卡模块、LCD显示、灯控电路、蜂鸣器报警电路、存储模块和按键组成。系统支持通过密码和刷卡两种方式进行门禁控制,灯亮表示开门成功,蜂鸣器响表示开门失败。 资源内容 PCB图:包含系统的PCB设计图,方便用户进行硬件电路的制作和调试。 原理图:详细展示了系统的电路连接和模块布局,帮助用户理解系统的工作原理。 论文:提供了系统的详细设计思路、实现方法以及测试结果,适合学习和研究使用。 源程序:包含系统的全部源代码,用户可以根据需要进行修改和优化。 系统功能 刷卡开门:用户可以通过刷RFID卡进行门禁控制,系统会自动识别卡片并判断是否允许开门。 密码开门:用户可以通过输入预设密码进行门禁控制,系统会验证密码的正确性。 状态显示:系统通过LCD显示屏显示当前状态,如刷卡成功、密码错误等。 灯光提示:灯亮表示开门成功,灯灭表示开门失败或未操作。 蜂鸣器报警:当刷卡或密码输入错误时,蜂鸣器会发出报警声,提示用户操作失败。 适用人群 电子工程、自动化等相关专业的学生和研究人员。 对单片机和RFID技术感兴趣的爱好者。 需要开发类似门禁系统的工程师和开发者。
hadoop-3.3.6/share/hadoop/hdfs/jdiff/Apache_Hadoop_HDFS_3.3.3.xml tar: hadoop-3.3.6: Cannot mkdir: Permission denied tar: hadoop-3.3.6/share/hadoop/hdfs/jdiff/Apache_Hadoop_HDFS_3.3.3.xml: Cannot open: No such file or directory hadoop-3.3.6/share/hadoop/hdfs/jdiff/Null.java tar: hadoop-3.3.6: Cannot mkdir: Permission denied tar: hadoop-3.3.6/share/hadoop/hdfs/jdiff/Null.java: Cannot open: No such file or directory hadoop-3.3.6/share/hadoop/hdfs/jdiff/Apache_Hadoop_HDFS_2.8.3.xml tar: hadoop-3.3.6: Cannot mkdir: Permission denied tar: hadoop-3.3.6/share/hadoop/hdfs/jdiff/Apache_Hadoop_HDFS_2.8.3.xml: Cannot open: No such file or directory hadoop-3.3.6/share/hadoop/hdfs/jdiff/Apache_Hadoop_HDFS_3.3.5.xml tar: hadoop-3.3.6: Cannot mkdir: Permission denied tar: hadoop-3.3.6/share/hadoop/hdfs/jdiff/Apache_Hadoop_HDFS_3.3.5.xml: Cannot open: No such file or directory hadoop-3.3.6/share/hadoop/hdfs/jdiff/Apache_Hadoop_HDFS_2.8.0.xml tar: hadoop-3.3.6: Cannot mkdir: Permission denied tar: hadoop-3.3.6/share/hadoop/hdfs/jdiff/Apache_Hadoop_HDFS_2.8.0.xml: Cannot open: No such file or directory hadoop-3.3.6/share/hadoop/hdfs/jdiff/Apache_Hadoop_HDFS_3.0.3.xml tar: hadoop-3.3.6: Cannot mkdir: Permission denied tar: hadoop-3.3.6/share/hadoop/hdfs/jdiff/Apache_Hadoop_HDFS_3.0.3.xml: Cannot open: No such file or directory hadoop-3.3.6/share/hadoop/hdfs/jdiff/hadoop-hdfs_0.22.0.xml tar: hadoop-3.3.6: Cannot mkdir: Permission denied tar: hadoop-3.3.6/share/hadoop/hdfs/jdiff/hadoop-hdfs_0.22.0.xml: Cannot open: No such file or directory hadoop-3.3.6/share/hadoop/hdfs/jdiff/Apache_Hadoop_HDFS_2.9.1.xml tar: hadoop-3.3.6: Cannot mkdir: Permission denied tar: hadoop-3.3.6/share/hadoop/hdfs/jdiff/Apache_Hadoop_HDFS_2.9.1.xml: Cannot open: No such file or directory hadoop-3.3.6/share/hadoop/hdfs/jdiff/Apache_Hadoop_HDFS_3.1.1.xml tar: hadoop-3.3.6: Cannot mkdir: Permission denied tar: hadoop-3.3.6/share/hadoop/hdfs/jdiff/Apache_Hadoop_HDFS_3.1.1.xml: Cannot open: No such file or directory hadoop-3.3.6/share/hadoop/hdfs/jdiff/hadoop-hdfs_0.20.0.xml tar: hadoop-3.3.6: Cannot mkdir: Permission denied tar: hadoop-3.3.6/share/hadoop/hdfs/jdiff/hadoop-hdfs_0.20.0.xml: Cannot open: No such file or directory hadoop-3.3.6/share/hadoop/hdfs/jdiff/Apache_Hadoop_HDFS_3.0.0-alpha4.xml tar: hadoop-3.3.6: Cannot mkdir: Permission denied tar: hadoop-3.3.6/share/hadoop/hdfs/jdiff/Apache_Hadoop_HDFS_3.0.0-alpha4.xml: Cannot open: No such file or directory hadoop-3.3.6/share/hadoop/hdfs/jdiff/Apache_Hadoop_HDFS_3.2.0.xml tar: hadoop-3.3.6: Cannot mkdir: Permission denied tar: hadoop-3.3.6/share/hadoop/hdfs/jdiff/Apache_Hadoop_HDFS_3.2.0.xml: Cannot open: No such file or directory hadoop-3.3.6/share/hadoop/hdfs/jdiff/Apache_Hadoop_HDFS_2.9.2.xml tar: hadoop-3.3.6: Cannot mkdir: Permission denied tar: hadoop-3.3.6/share/hadoop/hdfs/jdiff/Apache_Hadoop_HDFS_2.9.2.xml: Cannot open: No such file or directory hadoop-3.3.6/share/hadoop/hdfs/jdiff/Apache_Hadoop_HDFS_3.0.0-alpha2.xml tar: hadoop-3.3.6: Cannot mkdir: Permission denied tar: hadoop-3.3.6/share/hadoop/hdfs/jdiff/Apache_Hadoop_HDFS_3.0.0-alpha2.xml: Cannot open: No such file or directory hadoop-3.3.6/share/hadoop/hdfs/jdiff/Apache_Hadoop_HDFS_3.0.2.xml tar: hadoop-3.3.6: Cannot mkdir: Permission denied tar: hadoop-3.3.6/share/hadoop/hdfs/jdiff/Apache_Hadoop_HDFS_3.0.2.xml: Cannot open: No such file or directory hadoop-3.3.6/share/hadoop/hdfs/jdiff/Apache_Hadoop_HDFS_2.10.0.xml tar: hadoop-3.3.6: Cannot mkdir: Permission denied tar: hadoop-3.3.6/share/hadoop/hdfs/jdiff/Apache_Hadoop_HDFS_2.10.0.xml: Cannot open: No such file or directory hadoop-3.3.6/share/hadoop/hdfs/jdiff/Apache_Hadoop_HDFS_3.1.0.xml tar: hadoop-3.3.6: Cannot mkdir: Permission denied tar: hadoop-3.3.6/share/hadoop/hdfs/jdiff/Apache_Hadoop_HDFS_3.1.0.xml: Cannot open: No such file or directory hadoop-3.3.6/share/hadoop/hdfs/jdiff/Apache_Hadoop_HDFS_3.0.1.xml tar: hadoop-3.3.6: Cannot mkdir: Permission denied tar: hadoop-3.3.6/share/hadoop/hdfs/jdiff/Apache_Hadoop_HDFS_3.0.1.xml: Cannot open: No such file or directory hadoop-3.3.6/share/hadoop/hdfs/jdiff/Apache_Hadoop_HDFS_3.2.1.xml tar: hadoop-3.3.6: Cannot mkdir: Permission denied tar: hadoop-3.3.6/share/hadoop/hdfs/jdiff/Apache_Hadoop_HDFS_3.2.1.xml: Cannot open: No such file or directory hadoop-3.3.6/share/hadoop/hdfs/jdiff/Apache_Hadoop_HDFS_3.2.4.xml tar: hadoop-3.3.6: Cannot mkdir: Permission denied tar: hadoop-3.3.6/share/hadoop/hdfs/jdiff/Apache_Hadoop_HDFS_3.2.4.xml: Cannot open: No such file or directory hadoop-3.3.6/share/hadoop/hdfs/jdiff/hadoop-hdfs_0.21.0.xml tar: hadoop-3.3.6: Cannot mkdir: Permission denied tar: hadoop-3.3.6/share/hadoop/hdfs/jdiff/hadoop-hdfs_0.21.0.xml: Cannot open: No such file or directory hadoop-3.3.6/share/hadoop/hdfs/jdiff/Apache_Hadoop_HDFS_3.1.3.xml tar: hadoop-3.3.6: Cannot mkdir: Permission denied tar: hadoop-3.3.6/share/hadoop/hdfs/jdiff/Apache_Hadoop_HDFS_3.1.3.xml: Cannot open: No such file or directory hadoop-3.3.6/share/hadoop/hdfs/hadoop-hdfs-client-3.3.6-tests.jar tar: hadoop-3.3.6: Cannot mkdir: Permission denied tar: hadoop-3.3.6/share/hadoop/hdfs/hadoop-hdfs-client-3.3.6-tests.jar: Cannot open: No such file or directory hadoop-3.3.6/share/hadoop/hdfs/hadoop-hdfs-httpfs-3.3.6.jar tar: hadoop-3.3.6: Cannot mkdir: Permission denied tar: hadoop-3.3.6/share/hadoop/hdfs/hadoop-hdfs-httpfs-3.3.6.jar: Cannot open: No such file or directory tar: Exiting with failure status due to previous errors jtx@ubuntu:~$
09-28
<think>我们当前需要解决的是在解压hadoop-3.3.6时出现的两个问题: 1. Cannot mkdir: Permission denied (创建目录权限被拒绝) 2. Cannot open: No such file or directory (无法打开:没有这样的文件或目录) 根据引用中提供的信息,我们可以总结出以下可能的原因和解决方案: 对于第一个问题:Cannot mkdir: Permission denied - 原因:当前用户对目标目录没有写权限。 - 解决方案: a) 使用管理员权限(sudo)执行解压命令(如果解压到系统目录如/usr/local,通常需要sudo)。 b) 更改目标目录的所有权,使得当前用户有权限写入(如引用[1]中提到的`chown`命令)。 c) 或者将hadoop解压到当前用户有权限的目录,例如用户主目录下的某个目录。 对于第二个问题:Cannot open: No such file or directory - 原因:可能是解压命令中指定的文件路径不正确,或者文件确实不存在(可能是下载不完整或路径错误)。 - 解决方案: a) 检查文件路径是否正确,确保解压命令中指定的压缩包文件存在。 b) 检查当前目录下是否存在该压缩包,可以使用`ls`命令查看。 c) 如果文件不存在,重新下载hadoop-3.3.6压缩包。 此外,根据引用[3]和引用[4]的信息,我们还需要注意在后续配置Hadoop环境时,确保环境变量设置正确,并且使用正确的用户权限来执行Hadoop相关命令。 具体步骤建议如下: 1. 确保下载的hadoop-3.3.6压缩包完整存在,并且存放的目录当前用户有读取权限。 2. 选择一个合适的解压目录: - 如果希望解压到系统目录(如`/usr/local`),则需要使用sudo权限,命令如下: ```bash sudo tar -xzvf hadoop-3.3.6.tar.gz -C /usr/local ``` - 如果使用当前用户主目录下的目录,例如`~/apps`,则不需要sudo: ```bash tar -xzvf hadoop-3.3.6.tar.gz -C ~/apps ``` 3. 如果解压过程中出现权限问题,可以尝试先更改目标目录的所有权(如果目标目录已经存在且属于其他用户): ```bash sudo chown -R $USER:$USER /usr/local/hadoop # 如果之前已经创建了hadoop目录且权限不对 ``` 或者,在解压后更改整个解压目录的所有权(如果使用sudo解压,那么解压出来的文件属于root,需要更改所有权以便普通用户使用): ```bash sudo chown -R hadoop:hadoop /usr/local/hadoop-3.3.6 # 假设你有一个hadoop用户和组,或者使用你自己的用户名和组 ``` 注意:这里的用户和组应该替换成你自己的。 4. 对于文件不存在的错误,请检查当前目录下是否有`hadoop-3.3.6.tar.gz`文件,或者检查你输入的文件名是否正确(注意大小写和版本号)。 5. 解压完成后,按照引用[3]中的示例配置环境变量(注意路径要根据实际解压目录调整): 修改`~/.bashrc`或`~/.bash_profile`,添加类似以下内容(具体路径根据实际情况): ```bash export JAVA_HOME=/path/to/your/jdk export HADOOP_HOME=/usr/local/hadoop-3.3.6 # 或者你解压到的目录 export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin ``` 然后执行`source ~/.bashrc`使环境变量生效。 6. 后续在运行Hadoop时,如果出现权限问题(如引用[2]和引用[4]),可能需要使用HDFS的命令来设置目录权限,例如: ```bash hdfs dfs -chmod 777 / # 不推荐,这里只是示例,实际生产环境需要严格控制权限 ``` 或者使用正确的用户来执行命令(如hdfs用户)。 注意:在Linux系统中,操作权限是非常重要的,尤其是在多用户环境下。请根据实际需求和安全策略来分配合适的权限。 综上所述,我们按照步骤来解决解压时的问题。 请用户按照上述步骤尝试解决问题。 </think>针对解压 Hadoop 3.3.6 时出现的权限不足和文件不存在问题,结合引用内容提供以下解决方案: ### 📂 一、解决权限问题(Cannot mkdir: Permission denied) 1. **更改解压目录所有权** 使用管理员权限将目标目录所有权赋予当前用户(替换 `your_user` 为实际用户名): ```bash sudo chown -R your_user:your_user /usr/local/hadoop ``` 如引用[1]的操作: ```bash chown -R hadoop:hadoop hadoop-0.20.2/ ``` 2. **使用 sudo 解压** 若需解压到系统目录(如 `/usr/local`),需提升权限: ```bash sudo tar -xzvf hadoop-3.3.6.tar.gz -C /usr/local ``` 3. **修改目录权限** 解压后赋予目录读写权限(参考引用[2]): ```bash sudo chmod 777 /usr/local/hadoop # 临时方案,生产环境需严格权限控制 ``` ### 🔍 二、解决文件不存在问题(Cannot open: No such file or directory) 1. **检查文件路径** 确认压缩包存在且路径正确: ```bash ls -l hadoop-3.3.6.tar.gz ``` 2. **完整下载压缩包** 重新下载并校验哈希值(官网提供 SHA-256): ```bash wget https://archive.apache.org/dist/hadoop/core/hadoop-3.3.6/hadoop-3.3.6.tar.gz sha256sum hadoop-3.3.6.tar.gz ``` 3. **修复环境变量配置** 如引用[3]所示,确保 `$HADOOP_HOME` 等变量正确定义: ```bash export HADOOP_HOME=/usr/local/hadoop export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin source ~/.bashrc # 立即生效 ``` ### ⚙️ 三、后续配置建议 1. **HDFS 权限修复** 若启动后出现 `Permission denied`(参考引用[4]): ```bash hdfs dfs -chmod 777 / # 临时开放根目录权限 hadoop fs -mkdir /user # 创建用户目录 ``` 2. **日志目录处理** 手动创建缺失目录并赋权(引用[1][3]): ```bash mkdir -p /usr/local/hadoop/logs chown -R hadoop:hadoop /usr/local/hadoop/logs ``` 3. **用户切换** 始终使用专属 Hadoop 用户操作(避免 root 权限问题): ```bash su - hadoop # 切换到hadoop用户 ``` ### 💡 根本原因总结 | 问题类型 | 主要原因 | 解决方案 | |----------|----------|----------| | **权限拒绝** | 用户对目录无写权限 | `chown`/`chmod` 赋权或使用 `sudo` | | **文件不存在** | 压缩包路径错误/下载不完整 | 检查路径/重新下载校验 | | **后续报错** | 环境变量缺失或权限配置错误 | 完善环境变量/HDFS显式赋权 | > ✨ **关键提示**:解压后需完整配置 `hadoop-env.sh` 中的 `JAVA_HOME` 和 `HADOOP_LOG_DIR`(参考引用[3]),否则启动时仍可能报错。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值