在大数据的日常学习开发中,我们会遇到使用集群的情况,尤其在本地开发调试阶段,平时模拟一下数据在本地测试,是非常必要的。今天就来谈一谈,如何使用Windows系统搭建一个小规模的伪分布式集群。
Hadoop的三种运行模式介绍
1、本地运行模式
无需任何守护进程,所有的程序都运行在同一个JVM上执行。在本地模式下调试MR程序非常高效方便,一般该模式主要是在学习或者开发阶段调试使用 。
2、伪分布式模式
Hadoop守护进程运行在本地机器上,模拟一个小规模的集群,换句话说,可以配置一台机器的Hadoop集群,伪分布式是完全分布式的一个特例。
3、完全分布式模式
Hadoop守护进程运行在一个集群上。这种运行模式也就是我们常见的各种云,主要用于大规模的生产环境中。
![da03d0c0aaac80276dc170a97fed272b.png](https://i-blog.csdnimg.cn/blog_migrate/0cae65a1261b35dd133cb44f5c87b102.jpeg)
三种模式集群所需的必须配置
注意:分布式要启动守护进程 ,是指在使用分布式hadoop时,要先启动一些准备程序进程,然后才能使用。比如start-dfs.sh start-yarn.sh,而本地模式不需要启动这些守护进程。
注意:在本地模式下,将使用本地文件系统和本地MapReduce运行器。在分布式模式下,将启动HDFS和YARN守护进程。
二、伪分布式集群的搭建
2.1、 软件准备
![09b35b1b2134c8eec33bca5863f6a733.png](https://i-blog.csdnimg.cn/blog_migrate/a4430a155287d7719600949b06911516.jpeg)
windows模拟linux 环境:winutils-masterhadoop
编译后的包:hadoop-2.7.3.tar.gz
windows的hadoop配置:hadoop_windows.zip
hadoop的配置:hadoop_conf.tar
2.2、需要修改通知级别
![6a14c6229e159b62033a1b66a45d1c17.png](https://i-blog.csdnimg.cn/blog_migrate/a0639ee4835ac7afeb6376e70d30dd77.jpeg)
2.3、压缩文件解压顺序及方法
1 解压hadoop-2.7.3.tar.gz,到C盘的某个目录下;
2 解压winutils-master.zip,将解压的hadoop-2.7.1/bin文件夹内的内容拷贝到hadoop-2.7.3bin目录下,注意,千万别覆盖bin目录下的其他文件;
3 解压hadoop_conf.tar, 然后将解压的hadoop文件夹内的内容替换到hadoop-2.7.3etchadoop目录下;
4 解压hadoop-window.zip,然后将解压的hadoop文件夹内的内容做修改后,替换到hadoop-2.7.3etchadoop。
2.4、在WINDOWS上配置环境变量
1)HADOOP_HOME
![91e614600dc2259a5c13ef8be3d71ed8.png](https://i-blog.csdnimg.cn/blog_migrate/36755bab5823b79de308c69605c6b75e.jpeg)
2)把hadoop的bin和sbin配置到path环境变量里
;%HADOOP_HOME%bin;%HADOOP_HOME%sbin
![1c0665c3df6c30c75b763315773c54c2.png](https://i-blog.csdnimg.cn/blog_migrate/884918934f4d36ff0dc67e3d9749d903.jpeg)
2.5、设置hadoop配置文件
core-site.xml
![682a83ad2bd458a3c6f92dc535dfa382.png](https://i-blog.csdnimg.cn/blog_migrate/d54241a729f0515dceb90ce0f3a08c18.jpeg)
hdfs-site.xml
![f34846d67618756b57fc65d661424507.png](https://i-blog.csdnimg.cn/blog_migrate/626b39c57b4a25dab942c0210e520f38.jpeg)
maprd-site.xml
![224b60bb7577b8c29424c29e3ccfd943.png](https://i-blog.csdnimg.cn/blog_migrate/5e711e231a6f8e9714563c4413e91d2e.jpeg)
yarn-site.xml
![6708a4c301ddfb98bc97f3e04ae115b0.png](https://i-blog.csdnimg.cn/blog_migrate/e2f7208c31e6faac80fdd71a2f6e6ac0.jpeg)
hadoop-env.cmd
![6f0c1345ae5a5b83efd95d1c4081d524.png](https://i-blog.csdnimg.cn/blog_migrate/b929ad3e428d02c3ca1a635de61232ae.jpeg)
之后,把修改好的配置文件覆盖hadoop-2.7.3etchadoop目录
![244f659397724bf59272b76a9c0041fa.png](https://i-blog.csdnimg.cn/blog_migrate/f2311729d87e80ccbc9b47a087c11a24.jpeg)
2.6、测试hadoop命令
打开cmd输入set查看设置的环境变成是否生效
![01811d9c3ea9cf40e9c45a70dbbe0b07.png](https://i-blog.csdnimg.cn/blog_migrate/aec784e1da8ead533ea3b1d2c0e23836.jpeg)
输入hadoop version查看hadoop的版本
![8a37d9426e7c8d723ad94a8a7ec0b7e8.png](https://i-blog.csdnimg.cn/blog_migrate/a249710eb880d7857a8a5f1d9e9c2229.jpeg)
2.7、格式化namenode
hadoop namenode -format
![0dc5f30589084c3133af1a1a247facc0.png](https://i-blog.csdnimg.cn/blog_migrate/62d565da23a2b4ae99c8813ca5e43417.jpeg)
2.8、启动hdfs
使用start-dfs.cmd 命令 之后会弹出两个窗口
namenode窗口,如下图
![856025de906e0cada91a600a5de21be6.png](https://i-blog.csdnimg.cn/blog_migrate/73e64393a529647a9dd1e4c247468b27.jpeg)
datanode窗口,如下图
![d3fcbb1dd14c0cd8a83bbd7c4e456457.png](https://i-blog.csdnimg.cn/blog_migrate/1f871f6178637c6a1ddaa84dc20eb3df.jpeg)
之后在电脑上的c盘就能看到tmp目录,里面有namenode文件和datanode文件。启动成功之后就可以查看hdfs的web页面。注意:IP地址。
![386e89617f149a02a56e65fe29e8e396.png](https://i-blog.csdnimg.cn/blog_migrate/880a3aac9947cba7c2cb00575febc151.jpeg)
2.9、启动yarn
使用 start-yarn.cmd 命令 之后弹出两个窗口,分别如下:
resourceManager窗口
![425be0ca73295e076d1f3f8fadcd5f82.png](https://i-blog.csdnimg.cn/blog_migrate/26efae71c3895f10196e6a5521a91852.jpeg)
nodeManager窗口
![0b5eb107f6dbe5e82bc7848c94543646.png](https://i-blog.csdnimg.cn/blog_migrate/864cb600224a8e40665d303d67c49819.jpeg)
通过UI界面,查看yarn的web界面,可以观察伪分布式集群的资源
![83cd11d4f8470ae06b82ac4aa9a961b1.png](https://i-blog.csdnimg.cn/blog_migrate/62359f71811e5ffe6d95e90a5ad8a940.jpeg)
2.10、测试hdfs是否好用
![7546d56b28e87ede28a5b31bf9074077.png](https://i-blog.csdnimg.cn/blog_migrate/969663194bfe55fdf71a9239fbe92c0f.jpeg)
2.11、开启集群和关闭集群,命令如下
start-all.cmd开启hadoopstop-all.cmd关闭hadoop