H02-Hadoop3.x

本文详细对比了Hadoop3.x与2.x的主要差异,包括Java版本要求、容错机制、数据平衡、存储Scheme、存储开销、YARN时间线服务、工具兼容性、文件系统支持、资源管理、可扩展性等方面。

Hadoop 3.x

2019年 Hadoop3.x 发布

与Hadoop2.x比较

License

hadoop 2.x - Apache 2.0,开源
Hadoop 3.x - Apache 2.0,开源

支持的最低Java版本

Hadoop 2.x - java的最低支持版本是java 7
Hadoop 3.x - java的最低支持版本是java 8

容错

Hadoop 2.x - 可以通过复制(浪费空间)来处理容错。
Hadoop 3.x - 可以通过Erasure编码处理容错。

数据平衡

Hadoop 2.x - 对于数据,平衡使用HDFS平衡器。
Hadoop 3.x - 对于数据,平衡使用Intra-data节点平衡器,该平衡器通过HDFS磁盘平衡器CLI调用。

存储Scheme

Hadoop 2.x - 使用3X副本Scheme
Hadoop 3.x - 支持HDFS中的擦除编码。

存储开销

Hadoop 2.x - HDFS在存储空间中有200%的开销。
Hadoop 3.x - 存储开销仅为50%。

存储开销示例

Hadoop 2.x - 如果有6个块,那么由于副本方案(Scheme),将有18个块占用空间。
Hadoop 3.x - 如果有6个块,那么将有9个块空间,6块block,3块用于奇偶校验。

YARN时间线服务

Hadoop 2.x - 使用具有可伸缩性问题的旧时间轴服务。
Hadoop 3.x - 改进时间线服务v2并提高时间线服务的可扩展性和可靠性。

默认端口范围

Hadoop 2.x - 在Hadoop 2.0中,一些默认端口是Linux临时端口范围。所以在启动时,他们将无法绑定。
Hadoop 3.x - 但是在Hadoop 3.0中,这些端口已经移出了短暂的范围。

工具

Hadoop 2.x - 使用Hive,pig,Tez,Hama,Giraph和其他Hadoop工具。
Hadoop 3.x - 可以使用Hive,pig,Tez,Hama,Giraph和其他Hadoop工具。

兼容的文件系统

Hadoop 2.x - HDFS(默认FS),FTP文件系统:它将所有数据存储在可远程访问的FTP服务器上。 Amazon S3(简单存储服务)文件系统Windows Azure存储Blob(WASB)文件系统。
Hadoop 3.x - 它支持所有前面以及Microsoft Azure Data Lake文件系统。

Datanode资源

Hadoop 2.x - Datanode资源不专用于MapReduce,我们可以将它用于其他应用程序。
Hadoop 3.x - 此处数据节点资源也可用于其他应用程序。

MR API兼容性

Hadoop 2.x - 与Hadoop 1.x程序兼容的MR API,可在Hadoop 2.X上执行
Hadoop 3.x - 此处,MR API与运行Hadoop 1.x程序兼容,以便在Hadoop 3.X上执行

支持Microsoft Windows

Hadoop 2.x - 它可以部署在Windows上。
Hadoop 3.x - 它也支持Microsoft Windows。

插槽/容器

Hadoop 2.x - Hadoop 1适用于插槽的概念,但Hadoop 2.X适用于容器的概念。通过容器,我们可以运行通用任务。
Hadoop 3.x - 它也适用于容器的概念。

单点故障

Hadoop 2.x - 具有SPOF的功能,因此只要Namenode失败,它就会自动恢复。
Hadoop 3.x - 具有SPOF的功能,因此只要Namenode失败,它就会自动恢复,无需人工干预就可以克服它。

HDFS联盟

Hadoop 2.x - 在Hadoop 1.0中,只有一个NameNode来管理所有Namespace,但在Hadoop 2.0中,多个NameNode用于多个Namespace。
Hadoop 3.x - Hadoop 3.x还有多个名称空间用于多个名称空间。

可扩展性

Hadoop 2.x - 我们可以扩展到每个群集10,000个节点。
Hadoop 3.x - 更好的可扩展性。 我们可以为每个群集扩展超过10,000个节点。

更快地访问数据

Hadoop 2.x - 由于数据节点缓存,我们可以快速访问数据。
Hadoop 3.x - 这里也通过Datanode缓存我们可以快速访问数据。

HDFS快照

Hadoop 2.x - Hadoop 2增加了对快照的支持。 它为用户错误提供灾难恢复和保护。
Hadoop 3.x - Hadoop 2也支持快照功能。

平台

Hadoop 2.x - 可以作为各种数据分析的平台,可以运行事件处理,流媒体和实时操作。
Hadoop 3.x - 这里也可以在YARN的顶部运行事件处理,流媒体和实时操作。

群集资源管理

Hadoop 2.x - 对于群集资源管理,它使用YARN。 它提高了可扩展性,高可用性,多租户。
Hadoop 3.x - 对于集群,资源管理使用具有所有功能的YARN。

<think>我们正在解决一个关于conda安装包时的权限错误问题。用户在使用`conda install xlrd`时遇到了`EnvironmentNotWritableError`,指出当前用户对目标环境(路径为`D:\.c`)没有写入权限。 根据错误信息,核心问题是权限不足。因此,我们需要调整目标环境的权限,使得当前用户具有写入权限。 以下是解决这个问题的步骤: 1. **确认目标环境路径**:错误中提到的路径是`D:\.c`。请注意,这个路径看起来不太常见(通常conda环境会安装在`envs`目录下),但可能是用户自定义的环境位置。我们需要确保这个路径存在,并且用户确实想将包安装到这个环境。 2. **检查当前用户权限**:我们需要验证当前用户是否对`D:\.c`目录有写入权限。 3. **修改目录权限**:如果当前用户没有写入权限,我们可以尝试修改该目录的权限。在Windows系统下,可以通过文件夹属性修改权限;在Linux或Mac系统下,可以使用`chmod`命令。由于路径中包含盘符(D:),我们假设用户使用的是Windows系统。 4. **以管理员身份运行命令提示符**:在Windows系统中,如果当前用户是管理员,可以尝试以管理员身份运行命令提示符或Anaconda Prompt,然后再执行conda命令。 5. **更改环境的所有权**:如果目录的所有者是其他用户(或系统),我们可以将所有权更改为当前用户。 6. **使用conda的--prefix参数指定可写环境**:如果问题仍然存在,可以考虑在另一个当前用户有写入权限的位置创建新环境,并使用`--prefix`参数指定路径。 7. **检查conda环境配置**:使用`conda info`查看当前环境的信息,确认活动的环境是否正确。 由于错误信息中给出的环境路径是`D:\.c`,这可能是conda的根环境(base环境)?或者是一个自定义环境?但通常conda的base环境不会在`D:\.c`下。因此,我们可以先检查当前活动的环境。 具体步骤: **对于Windows系统:** 步骤1:以管理员身份运行Anaconda Prompt(或命令提示符) - 在开始菜单中找到“Anaconda Prompt”,右键选择“以管理员身份运行”。 步骤2:检查当前环境 - 在Anaconda Prompt中,输入: ``` conda info ``` 查看当前的环境路径,确认是否是`D:\.c`。同时,检查该路径是否存在。 步骤3:修改目录权限(如果路径存在) - 打开文件资源管理器,导航到`D:\`。 - 右键单击`.c`文件夹(如果不存在,则可能是路径错误,需要进一步确认),选择“属性”。 - 转到“安全”选项卡,查看当前用户是否在列表中,以及是否有“完全控制”或“修改”权限。 - 如果没有,点击“编辑”,然后添加当前用户,并勾选“完全控制”或“修改”权限,然后应用。 步骤4:如果目录不存在 - 如果`D:\.c`目录不存在,那么可能是conda配置错误。我们可以检查conda的配置文件(.condarc)中的环境路径设置,或者使用`conda config --show`查看配置。 步骤5:尝试创建新环境(可选) - 如果问题仍然存在,可以尝试在另一个位置创建新环境,并安装xlrd: ``` conda create --name myenv python conda activate myenv conda install xlrd ``` 步骤6:重新安装Anaconda(作为最后的手段) - 如果上述方法都无法解决,可能需要重新安装Anaconda,并确保安装路径的权限正确。 注意:在修改系统文件夹权限时,请谨慎操作,以免破坏系统安全。 根据以上分析,我们给出详细的解决方案。 由于用户的问题是在安装xlrd时出现的,且错误明确指向权限问题,因此重点在于修改`D:\.c`目录的权限或者改变conda的环境配置。 下面我们将给出一个结构清晰的回答。 </think>针对您在使用`conda install xlrd`时遇到的`EnvironmentNotWritableError`错误,以下是系统化的解决方案: ### 错误原因分析 1. **权限问题**:当前用户对 Conda 环境目录 `D:\.c` 缺少写入权限[^1] 2. **环境路径异常**:`D:\.c` 可能是损坏或非常规的安装路径 3. **所有权冲突**:目录可能被其他用户或系统进程锁定 --- ### 解决方案(Windows系统) #### 方法1:修改目录权限(推荐) ```powershell # 右键单击"命令提示符"或"Anaconda Prompt" -> 以管理员身份运行 icacls "D:\.c" /grant %username%:(OI)(CI)F /t ``` - 执行后重启终端重试 `conda install xlrd` - `/grant` 授予完全控制权,`/t` 递归应用到子目录 #### 方法2:重置环境所有权 ```powershell takeown /f "D:\.c" /r /d y icacls "D:\.c" /reset /t ``` #### 方法3:创建新环境安装 ```bash conda create -n py_env python=3.9 # 新建环境 conda activate py_env conda install xlrd # 在新环境安装 ``` #### 方法4:更改默认环境路径 1. 创建用户有权限的目录:`mkdir C:\conda_env` 2. 修改`.condarc`配置文件: ```yaml envs_dirs: - C:\conda_env ``` --- ### 特殊情况处理 **若 `D:\.c` 是无效路径**: ```bash conda config --show | find "envs" # 查看真实环境路径 conda clean --all -y # 清理缓存修复路径 ``` --- ### 验证安装 安装成功后执行: ```python import xlrd print(xlrd.__version__) # 应输出版本号 ``` > **注意**:若涉及公司电脑,请联系IT部门添加权限,直接修改系统权限可能导致安全策略冲突[^1]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值