Hadoop进阶篇(安装配置)

windows平台上搭建Hadoop2.7.4

准备工作1:
需要提前配好JDK1.8,及相关环境变量(本教程针对64位,32位没尝试过),
JAVA_HOME,比如本文实验环境 C:\PROGRA~1\Java\jdk1.8.0_131
Path中,最后面加上 ;%JAVA_HOME%\bin;
注意JAVA_HOME的program files用Progra~1代替,避免出现空格。

准备工作2:
下载Hadoop二进制编译好的版本。Hadoop二进制版可看做是绿色免安装的软件,解压到不带中文的目录中即可,比如本文实验环境C:\Hadoop2.7.4。
所需工具的Git地址:https://github.com/845318843/Hadoop2.7.4forWindows

准备工作3:
下载Hadoop在windows平台的辅助工具,即编译好的winutils,它无需借助cygwin即可模拟Linux环境。

正式开始:

第一步,Hadoop的环境变量设置
新建HADOOP_HOME变量,比如本文实验环境 C:\Hadoop2.7.4
在这里插入图片描述
Path中,添加;%HADOOP_HOME%\bin;
在这里插入图片描述
设置好后, cmd内输入 hadoop version, 出现下图说明环境配置好了
在这里插入图片描述

第二步(省略),使用winutils的bin覆盖bin中的文件。
这个工具是windows平台的辅助工具,它无需借助cygwin即可模拟Linux环境。
考虑到初学者比较担心Hadoop版本号、64位、32位等不一致会带来的兼容性问题,
我已统一打包好放Git上,版本号为2.7.4,64位。Git下回来的一套东西都在里面。
免去替换文件的环节。
所需工具的Git地址见第一步。

关于兼容性问题多说两句,winutils与具体的hadoop版本是有关的,
如果选用不同的hadoop版本,需要找到正确的util,
目前hadoop并没有提供window util,
所以如果选择了最新版本的hadoop,可能无法在网上找到合适的版本,

那需要自己编译。
Hadoop各版本下载:https://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common/
winutils各版本下载:https://github.com/steveloughran/winutils。

第三步,修改5个配置文件
配置文件在etc\hadoop\文件夹下,它们分别是
1.yarn-site.xml、 2.mapred-site.xml、 3.hdfs-site.xml
4.core-site.xml、 5.hadoop-env.cmd
±±±±±±±±±±±±±±±±±±±±±±

yarn-site.xml文件用于配置 yarn 资源管理器,yarn是一个通用资源管理系统。
mapred-site.xml文件用于配置 MapReduce作业。 MapReduce是一种编程模型,用于大规模数据集(大于1TB)的并行运算。

hdfs-site.xml文件用于配置HDFS分布式文件系统,文件副本数量、物理存储位置等信息。

core-site.xml 文件用于配置HDFS的对外端口,临时文件夹位置等信息。

hadoop-env.cmd 文件用于配置Hadoop运行环境变量,如JDK位置、控制台日志过滤级别。

因配置信息过多,影响整体阅读,另开了一篇博文关于配置信息的介绍,
博文地址:https://blog.csdn.net/ai_64/article/details/100803903

第四步,完成配置更改后,执行hdfs启动并初始化(格式化)。

1.格式化hdfs命令
hadoop namenode –format

备注:我这里的 –y 是因为我电脑环境已初始化, -y为了免去反复确认。
在这里插入图片描述

2.启动dfs命令

进入sbin目录下,start-dfs.cmd,弹出2个窗口,一个是Namenode,一个是Datanode。
为什么需要弹出2个窗口?
HDFS需要Namenode和Datanode配合使用。用Namenode管理Datanode,数据存在Datanode中,NameNode 和 DataNode 都是被动式响应。Client请求某个文件时,先请求Namenode。
在这里插入图片描述
3.启动yarn命令
在这里插入图片描述
进入sbin目录下,start-yarn.cmd,一样弹出2个窗口,一个是Resourcemanager,一个是Nodemanager。
为什么需要弹出2个窗口?
Yarn需要Resourcemanager和Nodemanager配合使用。
Hadoop不仅提供分布式存储还是分布式计算。
分布式存储比较容易理解,基本就两个东西,Namenode和Datanode。
分布式计算中,关系最复制的是ResourceManager。
弄懂ResourceManager就弄懂了分布式计算的60%。
ResourceManager管理发放每一个应用程序的资源,应用程序的资源跑在容器中,因此还需要不同的容器,下文会讲容器。但是应用程序执行状况不由ResourceManager管理,专门有ApplicationMaster监控应用程序。ResourceManager管理ApplicationMaster。
Nodemanager 也是ResourceManager的下属,是每一台机器框架的代理,是执行应用程序的容器,监控应用程序的资源使用情况 (CPU,内存,硬盘,网络)。
综上所述,Yarn需要Resourcemanager和Nodemanager配合使用。

4.启动start-all命令
在这里插入图片描述

该命令是yarn和dfs的组合,弹出4个窗口,快速停止用 stop-all.sh。
可在cmd中输入 C:\Hadoop2.7.4\etc\hadoop\jps查看运行的进程。


若发现端口已被占用,可考虑改端口,也考虑杀进程后再重新运行。
杀进程教程见博文:
http://www.xx.com

5.验证是否成功

访问Hadoop网页服务
 hadoop自带的web控制台GUI

就可以成功见到如下界面

  1. 资源管理GUI:http://localhost:8088/;
    在这里插入图片描述
    2.节点管理GUI:http://localhost:50070/
    在这里插入图片描述

6.根据你core-site.xml的配置,接下来你就可以通过:hdfs://localhost:8010来对hdfs进行操作了。
命令操作示范:
查看根目录下的文件:hadoop fs –ls / 或者 hadoop fs -ls hdfs://localhost:8010/
在这里插入图片描述
空白,什么都没有。
创建目录: hadoop fs –mkdir /foldertest
在这里插入图片描述
操作完成无提示。
查看目录下的文件:hadoop fs –ls /
在这里插入图片描述
换url方式查看根目录下的文件: hadoop fs -ls hdfs://localhost:8010/
在这里插入图片描述

上传数据到远端仓库/foldertest中
hadoop fs –put ./test/goodDog.txt /foldertest
在这里插入图片描述

下载文件夹到C:\Hadoop2.7.4\sbin\test文件夹中
hadoop fs –get /foldertest ./test
在这里插入图片描述

查看文件命令
hadoop fs -cat  foldertest/goodCat.txt

在这里插入图片描述

删除文件/foldertest/goodDog.txt
hadoop fs -rm /foldertest/goodDog.txt
在这里插入图片描述

更多命令行操作,比如Mapreduce任务管理,
见下一篇博文:

QA常见问题:
1:启动hadoop可能提示找不到JAVA_HOME路径。
因为hadoop读取JAVA_HOME环境变量存在空格导致。

2:启动hadoop提示找不到HADOOP。
因为Hadoop环境变量没有配置好,请检查Hadoop环境变量配置。

3:winutil.exe 和 hadoop.dll存在兼容性问题。
换一个配套的老版本比折腾要强100倍。

4:namenode启动失败
如果上述2个错误出现的话,start-all.cmd命令会在nodename下创建文件,需要在nodename目录下删除所有命令,再执行start-all.cmd 即可修复

5:没有tmp文件夹导致出现错误。
在core-site.xml中配置 hadoop.tmp.dir和其路径(上面都有)
6:遇到NodeManage启动失败?
因为 \tmp目录下没有 nm-local-dir文件夹, 创建一个新的就好了。

7:上传文件提示There are 0 datanode(s) running。
因为多次格式化clusterID不一致导致的错误,导致datanode启动不了。
用Hadoop2.7.4\workplace\name\current\VERSION文件里面的clusterID,修改Hadoop2.7.4\workplace\data\current\VERSION文件里面的clusterID。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章