1.下载
1.1下载Hadoop3.1.3
官网地址:https://archive.apache.org/dist/hadoop/common/hadoop-3.1.3/
选择hadoop-3.1.3.tar.gz
1.2下载工具集winutils
由于Hadoop不直接支持Windows系统,因此需要使用工具集winutils进行支持。
下载网址:https://github.com/s911415/apache-hadoop-3.1.3-winutils
进入下载页面后,如下图所示,点击“Code”按钮,然后在弹出的菜单中点击“Download ZIP”即可下载得到压缩文件apache-hadoop-3.1.3-winutils-master.zip,再将该压缩文件进行解压缩。
2.安装
把Hadoop3.1.3安装文件hadoop-3.1.3.tar.gz解压缩到“C:\”(或者其他目录),使用winutils中的bin目录整个替换Hadoop中的bin目录。
在“C:\ hadoop-3.1.3”目录下新建tmp目录,再在tmp目录下新建两个子目录,分别是datanode和namenode。
2.1 设置环境变量
设置Path环境变量,点击“我的电脑”->“高级系统设置”->“环境变量”,然后,在系统变量中新增一个名称为“HADOOP_HOME”的变量,设置其值为“C:\hadoop-3.1.3”(如图所示)。
然后,再在用户变量Path中加入如下信息:
%HADOOP_HOME%\bin
2.2 修改配置文件
对“C:\ hadoop-3.1.3\etc\hadoop”下面的3个配置文件进行修改。
core-site.xml、hdfs-site.xml、hadoop-env.cmd
把core-site.xml文件的配置修改为如下:
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://localhost:9000</value>
</property>
</configuration>
hdfs-site.xml文件的配置修改为如下:
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.permissions</name>
<value>true</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>/C:/hadoop-3.1.3/tmp/namenode</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/C:/hadoop-3.1.3/tmp/datanode</value>
</property>
</configuration>
其中replication设置副本数,permissions设置访问权限;
修改hadoop-env.cmd文件,找到如下一行:
set JAVA_HOME=%JAVA_HOME%
把%JAVA_HOME%替换成JDK的绝对路径,比如:
set JAVA_HOME=C:\Java\jdk1.8.0_111
需要注意的是,如果JDK路径中包含了空格,如果直接使用如下设置后面步骤会报错:
set JAVA_HOME= C:\Program Files\Java\jdk1.8.0_111
如果采用这种带有空格的路径,后面运行“hdfs namenode -format”命令时就会报错,因为Program Files中存在空格。为了解决这个问题,可以使用下面两种方式之一进行处理:
(1)只需要用PROGRA~1
代替Program Files
,即改为C:\PROGRA~1\Java\jdk1.8.0_111
(2)或是使用双引号,即改为 “C:\Program Files”\Java\jdk1.8.0_111
2.3 运行
在Windows系统中打开一个cmd窗口,执行如下命令对Hadoop系统进行格式化:
cd c:\hadoop-3.1.3\bin
hdfs namenode -format
上述命令执行以后,如果返回类似如下的信息则表示格式化成功:
\hadoop-3.1.3\tmp\namenode has been successfully formatted.
执行如下命令启动:
cd c:\hadoop-3.1.3\sbin
start-dfs.cmd
执行该命令以后,会同时弹出另外2个cmd窗口,这2个新弹出的cmd窗口不要关闭,然后,在刚才执行start-dfs.cmd命令的cmd窗口内,继续执行JDK自带的命令jps查看Hadoop已经启动的进程:
jps
看到如下进程说明安装成功:
需要注意的是,这里在使用jps命令的时候,没有带上绝对路径,是因为已经把JDK添加到了Path环境变量中。
执行jps命令以后,如果能够看到“DataNode”和“NameNode”这两个进程,就说明Hadoop启动成功。
需要关闭Hadoop时,可以执行如下命令:
cd c:\hadoop-3.1.3\sbin
stop-dfs.cmd
3. hdfs的使用
3.1 使用WEB管理页面操作HDFS
首先启动Hadoop,然后可以在浏览器中输入“http://localhost:9870”,就可以访问Hadoop的WEB管理页面(如图所示)。
在WEB管理页面中,点击顶部右侧的菜单选项Utilities
,在弹出的子菜单中点击Browse the file system
,会出现如图所示的HDFS文件系统操作页面,在这个页面中可以创建、查看、删除目录和文件。
3.1 使用命令操作HDFS
除了在浏览器中通过WEB方式操作HDFS以外,还可以在cmd窗口中使用命令对HDFS进行操作。
首先,创建一个名称为“user”的目录,命令如下:
cd c:\hadoop-3.1.3\bin
hadoop fs -mkdir hdfs://localhost:9000/user/
hadoop fs -mkdir hdfs://localhost:9000/user/xiaoming
然后,在“C:\”下创建一个文件test.txt,里面输入一行语句“I love hadoop”,使用如下命令把该文件上传到HDFS中:
hadoop fs -put C:\test.txt hdfs://localhost:9000/user/xiaoming
使用如下命令查看HDFS中的目录和文件:
hadoop fs -ls hdfs://localhost:9000/user/xiaoming
使用如下命令把HDFS中的文件内容显示到本地屏幕上:
hadoop fs -cat hdfs://localhost:9000/user/xiaoming/test.txt
把上面的HDFS中的文件test.txt下载到本地文件系统,并重命名为test1.txt:
hadoop fs -get hdfs://localhost:9000/user/xiaoming/test.txt C:\test1.txt
使用如下命令删除HDFS中的一个文件: > hadoop fs -rm >hdfs://localhost:9000/user/xiaoming/test.txt
使用如下命令删除HDFS中的一个目录及其下面的文件:
hadoop fs -rm -r hdfs://localhost:9000/user/xiaoming