环境搭建问题一直都比较令人头疼,可能技术含量不高,但坑比较多,对于新手来说更是如此。这里,我贴出我在win10中搭建Hadoop的一些心得和遇到的一些坑,希望能给其他新手提供一些帮助,绕开这些坑,避免浪费不必要的时间。
首先在搭建Hadoop环境之前需要先安装JDK,并且配置好Java环境变量,具体如何配置,可以参照其他已有的教程,这里需要注意的是,Java环境变量中不允许有空格,如 C:\Program Files\java\xxxxx , 后续步骤中在 hadoop-env.cmd 配置 JAVA_HOME时,这种环境变量的是无法识别的,容易报 “Error JAVA_HOME is incorrectly set.”之类的错误。
1 下载安装
进入Hadoop官网下载压缩文件,如 hadoop-2.7.4.tar.gz ,解压到指定目录, 解压后文件结构如下:
注意: data目录是后续配置生成的
2 配置Hadoop环境变量
这里需要配置的环境变量是系统环境变量。主要需要配置的是HADOOP_HOME和Path。这里需要配置的都是bin目录所在的路径。
类似的,将bin所在路径添加到Path中
3 修改配置文件
这里需要修改的配置文件有:core-site.xml
hdfs-site.xml
yarn-site.xml
hadoop-env.cmd
3.1 core-site.xml
fs.defaultFS
hdfs://localhost:9000
这个文件没有特别需要注意的地方,直接覆盖就行
3.2 hdfs-site.xml
这是Hadoop分布式文件系统的配置,主要是配置 namenode和 datanode的路径
dfs.replication
1
dfs.namenode.name.dir
/distributed/hadoop/data/namenode
dfs.datanode.data.dir
/distributed/hadoop/data/datanode
下面两个value即配置了 namenode 和datanode的路径,配置成功后(执行第四步后),相关路径中会多一个data目录:
3.3 yarn-site.xml
yarn.nodemanager.resource.memory-mb
1024
yarn.nodemanager.resource.cpu-vcores
1
这里需要注意,nodemanager要求的内存最低为1G,所以value至少是1024,否则无法启动nodemanager。
ATAL org.apache.hadoop.yarn.server.nodemanager.NodeManager:
Error starting NodeManager org.apache.hadoop.yarn.exceptions.YarnRuntimeException:
org.apache.hadoop.yarn.exceptions.YarnRuntimeException:
Recieved SHUTDOWN signal from Resourcemanager ,Registration of NodeManager failed,
Message from ResourceManager:
NodeManager from hadoop doesn't satisfy minimum allocations,
Sending SHUTDOWN signal to the NodeManager
3.4 hadoop-env.cmd
@rem The java implementation to use. Required.
@rem set JAVA_HOME=%JAVA_HOME%
set JAVA_HOME=%JAVA_HOME%
@rem The jsvc implementation to use. Jsvc is required to run secure datanodes.
@rem set JSVC_HOME=%JSVC_HOME%
4 格式化HDFS系统
CMD切换到Hadoop的bin目录下,执行命令:
hdfs namenode -format
格式化后,如果没有报什么错误,基本上算是搭建成功了,这个时候Hadoop安装盘会多出两个目录
两个目录下的文件分别为
5 启动Hadoop
切换到Hadoop下sbin目录,执行start-all 命令,启动Hadoop,这时会启动namenode,、datanode、resourcemanager、nodemanager。执行jps命令,可以看到如下启动进程
通过浏览器进入管理界面
http://localhost:8088
http://localhost:50070
到这一步,Hadoop就算是搭建成功了
6 简单测试
6.1 首先创建一个输入目录如 user/data/input
这个时候一定要注意不要创建output目录,否则后面将会报 output目录已存在的错误,因为Hadoop会自动生成这个目录。
6.2 上传文件到input目录中
执行命令
hdfs dfs -put /test /user/data/input
这里是将test文件传到了上一步创建的目录下,下面我们可以看看这个文件:
hdfs dfs -cat /user/data/input/test
6.3 执行wordcount
hadoop jar /distributed/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.4.jar wordcount /user/data/input /user/data/output
6.4 进入web管理界面
可以通过localhost:50070进入管理界面
点击最右边的utilities —> Browse the file system进入, 输入文件路径
可以看到有两个文件,最终的结果就存在part-r-00000中
搭建成功