在Windows 10上安装Hadoop

一 安装Hadoopjava

  1. http://archive.apache.org/dist/hadoop/core/ 下载Hadoop-3.0.0,下载二进制压缩包文件:hadoop-3.0.0.tar.gz 
  2. https://github.com/steveloughran/winutils下载针对Windows环境的Hadoop修正程序winutils(Hadoop-3.0.0对应路径https://github.com/steveloughran /winutils /tree /master/hadoop-3.0.0)。若是不会用Git工具下载,能够直接下载打包文件https://github.com/steveloughran/winutils/archive/master.zip,而后解压。
  3. 确保本身的计算机上已经正确安装了JDK 1.8以上的Java开发和运行环境。(能够经过在命令行方式下运行java –version命令进行验证)
  4. 将hadoop-3.0.0.tar.gz解压至C:\Hadoop子目录(能够根据本身喜爱更改Hadoop安装目录)
  5. 新增环境变量HADOOP_HOME(做为系统变量),并将其值设为“C:\Hadoop”。(设置方法:进入“控制面板\系统和安全\系统”,而后点击“高级系统设置”,而后点击“环境变量(N)..”按钮)
  6. 观察JAVA_HOME变量设置是否正确。(本人计算机上的JAVA_HOME被设置为C:\Program Files\Java\jdk1.8.0_192)
  7. 将“C:\Hadoop\bin”和“C:\Hadoop\sbin”路径添加到Path环境变量。
  8. 将以下内容粘贴到C:\Hadoop\etc\hadoop\core-site.xml文件:

<configuration>node

<property>git

<name>fs.defaultFS</name>github

<value>hdfs://localhost:9000</value>apache

</property>安全

</configuration>jvm

  1. 将以下内容粘贴到C:\Hadoop\etc\hadoop\mapred-site.xml文件:

<configuration>分布式

<property>工具

<name>mapreduce.framework.name</name>oop

<value>yarn</value>

</property>

</configuration>

  1. 在C:\Hadoop路径下建立“data”子目录;

在C:\Hadoop\data路径下建立“namenode”子目录;

在C:\Hadoop\data路径下建立“datanode”子目录。

  1. 将以下内容粘贴到C:\Hadoop\etc\hadoop\hdfs-site.xml文件:

<configuration>

   <property>

       <name>dfs.replication</name>

       <value>1</value>

   </property>

   <property>

       <name>dfs.namenode.name.dir</name>

       <value>C:\hadoop\data\namenode</value>

   </property>

   <property>

       <name>dfs.datanode.data.dir</name>

       <value>C:\hadoop\data\datanode</value>

   </property>

</configuration>

  1. 将以下内容粘贴到C:\Hadoop\etc\hadoop\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>

  1. 编辑文件C:\Hadoop\etc\hadoop\hadoop-env.cmd,将语句:

“set JAVA_HOME=%JAVA_HOME%”

修改成“set JAVA_HOME=C:\PROGRA~1\Java\jdk1.8.0_192”。

(注意:此处有坑。若是将hadoop-env.cmd中的JAVA_HOME设置为“C:\Program Files\Java\jdk1.8.0_192”,将会出错,由于路径中不能含有空格。)

  1. C:\Hadoop\bin目录下的内容删除。
  2. 将第2步下载的“winutils-master.zip”解压,而后将解压文件中“..\winutils-master\hadoop-3.0.0\bin”目录下的内容拷贝到“C:\Hadoop\bin”目录。

二 检验Hadoop是否按照成功

通过前面15步,Hadoop安装结束。

运行以下命令测试Hadoop是否能够正常运行:

  1. 运行命令“hdfs namenode –format”,先对HDFS分布式文件系统进行格式化。
  2. 进入“C:\Hadoop\sbin”目录运行命令“start-dfs”。若是一切正常,将会启动一个“hdfs namenode”进程和一个“hdfs datanode”进程,构成了只有1个主节点和1个从节点的“HDFS分布式文件系统集群”。能够经过“http://localhost:9870”监控HDFS系统。(用jps命令能够查看全部jvm相关的进程)
  3. HDFS分布式文件系正常启动以后,能够用“hadoop fs”或“hdfs dfs”命令在分布式文件系统中实现“浏览目录”、“建立子目录”、“删除子目录”、“建立文件”、“拷贝文件”、“移动子目录或文件”、“查看文件内容”、“删除文件”、“上传本地文件”等操做。

hadoop fs ls /

显示根目录下的全部文件和目录

hadoop fs –mkdir /test

建立子目录/test,建立多级目录 加上 p

hadoop fs -rm /test1.txt

删除文件

hadoop fs -rm -r /test

删除子目录(要加-r参数)

hadoop fs -put C:\tmp\test.txt \test

将本地文件上传到HDFS分布式文件系统

hadoop fs -cat \test\test.txt

查看文件内容

hadoop fs -cp URI [URI …] <dest>

cp 复制系统内文件

hadoop fs -get[-ignorecrc] [-crc] <src> <localdst>

下载文件到本地

hadoop fs -mv URI [URI …] <dest>

将文件从源路径移动到目标路径

hadoop fs -du URI [URI …]

显示文件大小

  1. http://localhost:9870工具中在“utilities”菜单下有一个“Browse the File System”工具,能够浏览、操做HDFS分布式文件系统。
  2. 进入“C:\Hadoop\sbin”目录运行命令“stop-dfs”,关闭HDFS分布式文件系统。

三 运行MapReduce任务

注意:如下操做必须以管理员身份执行。

  1. 进入“C:\Hadoop\sbin”目录运行命令“start-all”。若是一切正常,将会启动一个“hdfs namenode”进程、一个“hdfs datanode”进程、一个“yarn resourcemanager”进程,一个“yarn nodemanager”进程。
  2. 用“hadoop fs –mkdir /input”命令在HDFS中建立“/input”子目录。
  3. 用“hadoop fs –put c:\source\input_file.txt /input”命令把本地文件系统中的“c:\source\input_file.txt”文件上传到HDFS的“/input”子目录。input_file.txt文件将做为WordCount MapReduce任务的输入文件。
  4. 用命令“yarn jar c:\source\mrtest.jar WordCount /input /output”命令启动MapReduce任务。任务执行成功后到“/output”目录下查找执行结果文件。