在开始配置前,我们先了解Hadoop的三种运行模式。
Hadoop的三种运行模式
- 独立(或本地)模式:无需运行任何守护进程,所有程序都在同一个JVM上执行。在独立模式下测试和调试MapReduce程序很方便,因此该模式在开发阶段比较适合。
- **伪分布式模式:**Hadoop守护进程运行在本地机器上,模拟一个小规模的集群。
- **全分布式模式:**Hadoop守护进程运行在一个集群上。
下面我们进入正题,即如何在Windows 7上搭建Hadoop伪分布式环境。
- 安装JDK,设置环境变量。
首先,在控制面板上查看自己的操作系统是32位还是64位。
然后,检查自己的电脑上是否已经具备Java环境。步骤如下:
1)Ctrl+R
2)cmd
3)输入java -version,若正常显示java版本,证明本机已安装java环境,跳到步骤2.若显示“不是内部或外部命令”,则需要安装JDK,继续步骤4)
4) 安装JDK,楼主用的是jdk-8u131-windows-x64.exe,因为不允许重复上传CSDN资源,所以楼主无法提供给大家,可以自行下载。说明:只需安装JDK,不需要安装JRE。
5)配置Java环境变量,配置路径:计算机(右键)–属性–高级系统设置—高级–环境变量。
在系统变量处新建,变量名:JAVA_HOME;变量值:你安装JDK的位置,楼主的是D:\Tools\jdk
修改path:在原有的那串变量值后增加%JAVA_HOME%\bin;…
6)测试Java环境
在cmd窗口:
测试Java环境:
echo %JAVA_HOME%
echo %path%
path
java -version
javac -version - 下载Hadoop 2.7.7,这个楼主传了资源,诚信赚分,哈哈(https://download.csdn.net/download/u013159040/10620584)
下载,解压到某个文件夹,如D:\Tools\Hadoop - 下载window util for hadoop。为了配合hadoop 2.7.7,楼主也上传了资源(https://download.csdn.net/download/u013159040/10620589),下载后解压到hadoop2.7.7的bin目录下,直接覆盖该目录下的所有内容。请注意此util与具体的hadoop版本是有关的,如果选用不同的hadoop版本,需要找到正确的util。
- 添加Hadoop环境变量,参考Java的,新建HADOOP_HOME 变量名同样是自己存放hadoop的位置,如D:\Tools\Hadoop\hadoop-2.7.7, 并添加path路径:%HADOOP_HOME%\bin
创建nodename和datanode目录,用来保存数据,如:
d:\tools\hadoop\data\namenode
d:\tools\hadoop\data\datanode在D:\Tools\Hadoop\hadoop-2.7.7\etc\hadoop里修改4个配置文件:core-site.xml, hdfs-site.xml, mapred-site.xml, yarn-site.xml
<configuration><property><name>fs.defaultFS</name><value>hdfs://localhost:9000</value></property>
</configuration>
hdfs-site.xml(不要直接复制楼主的,要看看自己的namenode和datanode存放的位置是否和楼主一致,不一致的要修改):
<configuration><property><name>dfs.replication</name><value>1</value></property><property><name>dfs.namenode.name.dir</name><value>/D:/Tools/data/namenode</value></property><property><name>dfs.datanode.data.dir</name><value>/D:/Tools/data/datanode</value></property>
</configuration>
mapred-site.xml:
<configuration><property><name>mapreduce.framework.name</name><value>yarn</value></property>
</configuration>
yarn-site.xml:
<configuration><!-- Site specific YARN configuration properties --><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.scheduler.minimum-allocation-mb</name><value>1024</value></property><property><name>yarn.nodemanager.resource.memory-mb</name><value>4096</value></property><property><name>yarn.nodemanager.resource.cpu-vcores</name><value>2</value></property>
</configuration>
7.上面步骤完成设置后,就可以试着运行Hadoop了。
Hadoop 启动命令start -all.cmd
Hadoop 结束命令stop -all.cmd
进入到自己的hadoop sbin目录(一直cd就行了),启动start-all.cmd,再jps查看java进程,如下图
同时,会跳出4个窗口
web方式查看文件系统:http://localhost:50070/
查看mapreduce job:http://localhost:8088
由NameNode(守护进程)服务提供
下面可以测试Hadoop自带的Wordcount
- 在d盘新建一个txt文件t1.txt
- 把t1上传到HDFS: hadoop fs -put d:\t1.txt /t1/t1.txt
- cd进到mapreduce,然后可以开始运行wordcount了:
hadoop jar /D:\Application\hadoop-2.7.7\share\hadoop\mapreduce\hadoop-mapreduce-examples-2.7.7.jar wordcount \t1 \output
- 然后我们可以看到词频统计结果:
网页上查看的如下:
可以下载分布式文件系统上的这个t1.txt文件。
——————————————–欢迎一起学习探讨————————————————