Windows安装Hadoop

当初搭建Hadoop、Hive、HBase、Flink等这些没有截图写文,今复盘mark特Windows重装。

d2de294808657faa0ba49895e553e022.jpeg

下载Hadoop

下载地址:https://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/

以管理员身份运行cmd

491c192df2e43f5e12f2dae4a84ecf09.png

切换到所在目录

1d4f0c2d58eea94c44833b1bd6a0eff3.png

执行start winrar x -y hadoop-3.3.4.tar.gz,解压。

299dace329efaac732a3f53317d3346a.png
d0a7052a97525c9eea95c3cd19659bab.png

配置系统变量

d695f79abce7e997ddbc7179f2335e4f.png

配置环境变量值

%Hadoop_Home%\bin

f37f1d51e343e28cf4622ac18712c7e7.png

测试配置是否成功

打开cmd,输入hadoop

11fb866602608b21867eff653e89a771.png

问题

系统找不到指定的路径。

Error: JAVA_HOME is incorrectly set.
       Please update D:\BigData\hadoop-3.3.4\etc\hadoop\hadoop-env.cmd

解决

Program Files中间有空行导致报错,把Program Files改成dos软链接名PROGRA~1:

@rem set JAVA_HOME=%JAVA_HOME%
set JAVA_HOME=C:\PROGRA~1\Java\jdk1.8.0_131
35c34cdc1e9f17a43122e149d54b1fb0.png

测试配置是否成功

4f9255971bcb459c6ce2451b1e0ca58c.png

配置 data 和 temp 文件夹

① 进入 “D:\hadoop-3.1.3”

② 新建 “data” 文件夹

③ 新建 “temp” 文件夹

④ 进入 data 文件夹,新建 “datanode” 文件夹 和 “namenode” 文件夹

配置hadoop相关配置文件

进入“D:\BigData\hadoop-3.3.4\etc\hadoop”

core-site.xml中增加

<property>
    <name>fs.defaultFS</name>
    <value>hdfs://localhost:9000</value>
</property>
a748f48a7f86b27d6ef00d53d45e80fa.png

hdfs-site.xml中增加

<property>
    <name>dfs.replication</name>
    <value>1</value>
</property>
<property>
    <name>dfs.namenode.http-address</name>
    <value>localhost:50070</value>
</property>
<property>
    <name>dfs.namenode.name.dir</name>
    <value>/D:/BigData/hadoop-3.3.4/data/namenode</value>
</property>
<property>
    <name>dfs.datanode.data.dir</name>
    <value>/D:/BigData/hadoop-3.3.4/data/datanode</value>
</property>
225284d3a2546be63c0e54d5f2da486b.png

mapred-site.xml中增加

<property>
    <name>mapreduce.framework.name</name>
    <value>yarn</value>
</property>
f03a84db6fea266cd0cece060e1535aa.png

yarn-site.xml中增加

<property>
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</value>
</property>
<property>
    <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
    <value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
<property>
    <name>yarn.nodemanager.resource.memory-mb</name>
    <value>1024</value>
</property>
<property>
    <name>yarn.nodemanager.resource.cpu-vcores</name>
    <value>1</value>
</property>
<property>
    <name>hadoop.tmp.dir</name>
    <value>/D:/BigData/hadoop-3.3.4/temp/nm-local-dir</value>
</property>
<property>
    <name>yarn.nodemanager.local-dirs</name>
    <value>/D:/BigData/hadoop-3.3.4/temp/nm-local-dir</value>
</property>
8b6e40c0b42cafbde74e5fca1dd9410d.png

格式化 namenode 节点

组合键 “Win+R”->输入 “cmd”->“Enter” ,在弹出的窗口输入 “hdfs namenode -format” 对namenode节点进行格式化。

927f58c16215985b23a4293ecb72e28b.png

启动:sbin->start-all.cmd

报错: java.lang.RuntimeException: java.io.FileNotFoundException:Could not locate Hadoop executable: D:\BigData\hadoop-3.3.4\bin\winutils.exe -see https://wiki.apache.org/hadoop/WindowsProblems(本地安装的Hadoop的bin目录,缺少winutils.exe的文件。)

解决方案:

①下载winutils和hadoop.dll:https://github.com/steveloughran/winutils,

②复制到D:\BigData\hadoop-3.3.4\bin。

③重新执行hdfs namenode -format。

2ee86d4817d39f1972ad5726c5024ba4.png
82b67cc4a9051463b7b8afb609db9620.png

问题:Apache Hadoop Distribution yarn resourcemanager和hadoop namenode正常启动;Apache Hadoop Distribution datanode和nodemanager,报错如下:

3152bc7dca066d0cac97e18353c4d956.png

解决方案:

①datanode、tmp文件夹右键->属性->安全->编辑,完全控制;

②删除提前手动建立的datanode、tmp文件夹,由hadoop创建。

5f2e31b9dc433c734999b6dfc92edf82.png

已issue,https://github.com/steveloughran/winutils/issues/25

b95475cd3d372b76c3e85f833c8e3e22.png

测试Hadoop

打开浏览器,

在地址栏输入http://localhost:50070查看Hadoop状态

在地址栏输入http://localhost:8088/查看cluster状态

9959b63bb56acb00ae44357f732f64b5.png
25c40ff3fae40cdc21c73e36aed3f5e5.png

 

 

 

### Hadoop Java 文件未找到异常解决方案 当遇到 `java.io.FileNotFoundException` 并提示路径不是文件时,通常是因为指定的路径不正确或者权限不足。以下是针对该问题的具体分析和解决方法: #### 1. 配置环境变量 确保 Hadoop安装目录以及其子目录具有正确的访问权限,并确认 `JAVA_HOME` 已正确定义并指向实际的 JDK 安装位置[^2]。 如果当前使用的脚本为 Windows 环境下的 `.cmd` 或 Linux 下的 `.sh` 脚本,则需检查以下内容: - **Windows**: 修改 `hadoop-env.cmd` 中的 `set JAVA_HOME=D:\path\to\jdk`。 - **Linux/MacOS**: 编辑 `hadoop-env.sh` 文件,添加或修改如下行: ```bash export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64 ``` #### 2. 检查输入路径的有效性 错误消息表明 `/user/hadoop/input` 不是一个有效的文件路径。这可能由以下几个原因引起: - 输入路径不存在; - 使用了错误的 URI 格式; 建议通过以下方式验证路径是否存在: ```bash hdfs dfs -test -e /user/hadoop/input ``` 如果没有返回任何输出,则表示路径存在。否则需要创建目标路径或将数据上传至对应位置: ```bash hdfs dfs -mkdir -p /user/hadoop/ hdfs dfs -put local_file_path /user/hadoop/input ``` #### 3. 正确调用 HDFS API 在 Java 程序中读取 HDFS 数据时,应使用 `FileSystem.get()` 方法获取分布式文件系统的实例[^3]。下面是一段示例代码展示如何连接到 HDFS 和处理文件操作: ```java import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.FileSystem; import org.apache.hadoop.fs.Path; import java.net.URI; public class HDFSTest { public static void main(String[] args) throws Exception { String hdfsUri = "hdfs://namenode:9000/user/hadoop/input"; Configuration conf = new Configuration(); FileSystem fs = FileSystem.get(new URI(hdfsUri), conf); if (fs.exists(new Path("/user/hadoop/input"))) { System.out.println("File exists!"); } else { throw new RuntimeException("Input path does not exist."); } } } ``` #### 4. 同步集群配置文件 完成本地测试后,在多节点环境中部署应用前还需同步所有节点上的核心配置文件[^4]。可以利用命令如 `scp` 将更新后的 XML 文件复制到其他机器上: ```bash scp core-site.xml ssl-server.xml ssl-client.xml mapred-site.xml user@nodeX:/opt/hadoop/etc/hadoop/ ``` --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

李景琰

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值