突然需要用到Hadoop环境,先是在linux环境下搭建了伪分布模式。但是由于我是用Myeclipse工具进行MapReduce的程序编写,显然在window下调试比打jar包部署到linux服务器上运行要方便很多。故此,在本机win7环境下进行了hadoop的伪分布环境的搭建。
一、进行Hadoop的安装包的下载与解压
注:搭建hadoop环境必须jdk支持,能搭建hadoop的不能够没有jdk吧,这里就不讲jdk的安装与环境配置了,自行脑补去
1、可自行去hadoop官网https://hadoop.apache.org/releases.html去下载,我下载的是2.8.5版本的
注:一定要下载的是已编译过的压缩包,就是二进制的包Binary 下的版本,后缀名为hadoop-2.8.5.tar.gz的文件包
2、将下载下来的安装包用管理员身份进行解压,我本地解压目的地为C:\hadoop-2.8.5文件夹
3、进行环境变量的配置
将hadoop的路径进行配置环境变量,类似jdk的环境变量的配置
1)计算机-->属性-->高级系统变量-->环境变量-->新建系统变量(也可以直接新建用户变量,但是添加用户变量后,命令窗口只能用管理员身份运行才能识别hadoop命令,所以建议直接新建系统变量)变量名:HADOOP_HOME 变量值:C:\hadoop-2.8.5 因为我的在这个位置,所以你根据自己位置自己灵活设置,总之是bin目录的上一层。
2)配置好HADOOP_HOME后,需要在Path中打开编辑,定位到末尾添加变量%HADOOP_HOME%\bin;
3)配置好环境变量后,运行cmd,输入hadoop version 命令,进行检验环境变量是否配置成功,如果成功,则提示版本号。如果提示 'hadoop不是内部命令' 等错误信息,则说明环境变量没有配置正确,则仔细看上述操作步骤再试一遍。
二、由于window下搭建hadoop环境需要winutils.exe和hadoop.dll等的支持,所以需要下载对应版本的工具。
1、现提供百度网盘下载链接为:https://pan.baidu.com/s/1TS-NK48WaJ0wOT0keWJHUQ (或者可以去我的csdn资源积分下载https://download.csdn.net/download/top__one/10833759),下载下来解压后查找对应的版本号即可(我hadoop为2.8.5版本,但是也可以用压缩包中hadoop-2.8.3版本下的bin文件进行替换)。
2、将本地hadoop-2.8.5下的bin目录删除,然后拷贝工具类中的hadoop-2.8.3版本下的bin目录,然后粘贴到本地hadoop-2.8.5目录下即可
三、对hadoop的配置进行修改,搭建伪分布环境,配置文件目录为C:\hadoop-2.8.5\etc\hadoop
1、修改core-site.xml
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://localhost:9000</value>
</property>
</configuration>
2、修改hdfs-site.xml. 修改完以后需要手动在hadoop-2.8.5目录下自动新建data文件夹及子文件夹namenode和datanode。
此位置对应下列参数中的namenode和datanode的位置。配置如下:
<configuration>
<!-- 这个参数设置为1,因为是单机版hadoop -->
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>
<!-- 这个参数设置为namenode,灵活修改value值,为你本地新建目录路径 -->
<property>
<name>dfs.namenode.name.dir</name>
<value>/C:/hadoop-2.8.5/data/namenode</value>
</property>
<!-- 这个参数设置为datanode,灵活修改value值,为你本地新建目录路径 -->
<property>
<name>dfs.datanode.data.dir</name>
<value>/C:/hadoop-2.8.5/data/datanode</value>
</property>
</configuration>
3、复制mapred-site.xml.template,并去掉后缀名.template,然后修改mapred-site.xml文件
打开mapred-site.xml,并修改配置如下:
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
4、修改yarn-site.xml
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.auxservices.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
</configuration>
5、修改hadoop-env.cmd文件,找到set JAVA_HOME=%JAVA_HOME%这一行进行修改
set JAVA_HOME=C:\jdk1.6.0_32_x64 (注:此处为你的jdk位置,需要你根据本机jdk位置灵活配置)
至此,所以hadoop的伪分布环境配置结束,接下来进行namenode的格式化和hadoop环境的启动
四、hadoop的namenode格式化及环境启动
1、打开cmd命令窗口,运行命令hdfs namenode -format
正常情况下会格式化成功,很不幸我的报错了,是因为家里的电脑装的jdk1.6版本的,不支持hadoop-2.8.5的编译文件运行,所以需要我更换高版本的jdk,比如jdk1.7 jdk1.8等
所以我重新配置一个高版本的jdk以后(配置完新的jdk记得修改上一步中的第五条中的set JAVA_HOME=) ,继续运行命令hdfs namenode -format ,出现下面截图情况 Storage directory C:\hadoop-2.8.5\data\namenode has been successfully formatted.,代表格式化成功。
2、启动hadoop环境
切换命令窗口到C:\hadoop-2.8.5\sbin目录下 ,运行start-all.cmd命令,启动环境
启动完以后会瞬间启动四个命令窗口(注:如果启动不成功,报java.lang.UnsatisfiedLinkError: org.apache.hadoop.io.nativeio.NativeIO$Windows.createDirectoryWithMode0(Ljava/lang/String;I)错误,则有可能是jdk版本不够的问题,需要更高版本的jdk'支持,修改完高版本的jdk环境变量后,同样不要忘了上一步中的第五条中的set JAVA_HOME=),如下图所示,这表示这环境正在启动
启动完成后,在最开始自己启动的cmd窗口中,继续输入命令jps,检查是否完全启动。如下图所示,代表成功启动环境,至此hadoop在window下的伪分布模式搭建完成。
五、HDFS应用
1、通过http://127.0.0.1:8088/即可查看集群所有节点状态: