1つのインストールHadoop
- Hadoop-3.0.0 をhttp://archive.apache.org/dist/hadoop/core/からダウンロードし、バイナリ圧縮パッケージファイルをダウンロードします:hadoop-3.0.0.tar.gz
- https://github.com/steveloughran/winutilsのWindows環境でのHadoopの修正をwinutilsのダウンロード(Hadoopの-3.0.0対応するパスhttps://github.com/steveloughran / winutils /ツリー/master/hadoop-3.0.0)。Gitツールを使用せずにダウンロードする場合は、パッケージファイルhttps://github.com/steveloughran/winutils/archive/master.zipを直接ダウンロードして解凍します。
- JDK 1.8以上のJava開発および実行環境がコンピューターに正しくインストールされていることを確認します。(コマンドラインモードでjava –versionコマンドを実行して確認できます)
- hadoop-3.0.0.tar.gzをC:\ Hadoopサブディレクトリに解凍します(Hadoopインストールディレクトリは好みに応じて変更できます)
- 環境変数HADOOP_HOMEを(システム変数として)追加し、その値を "C:\ Hadoop"に設定します。(設定方法:「コントロールパネル\システムとセキュリティ\システム」と入力し、[システムの詳細設定]をクリックして、[環境変数(N)..]ボタンをクリックします)
- JAVA_HOME変数が正しく設定されているかどうかを確認します。(私のコンピューターのJAVA_HOMEはCに設定されています:\ Program Files \ Java \ jdk1.8.0_192)
- 「C:\ Hadoop \ bin」および「C:\ Hadoop \ sbin」パスをPath環境変数に追加します。
- 次のコンテンツをC:\ Hadoop \ etc \ hadoop \ core-site.xmlファイルに貼り付けます。
<構成> <プロパティ> <name> fs.defaultFS </ name> <値> hdfs:// localhost:9000 </値> </プロパティ> </構成> |
- 次のコンテンツをC:\ Hadoop \ etc \ hadoop \ mapred-site.xmlファイルに貼り付けます。
<構成> <プロパティ> <name> mapreduce.framework.name </ name> <値>糸</値> </プロパティ> </構成> |
- C:\ Hadoopパスの下に「data」サブディレクトリを作成します。
C:\ Hadoop \ data path;の下に「namenode」サブディレクトリを作成します。
C:\ Hadoop \ dataパスの下に「datanode」サブディレクトリを作成します。
- 以下をC:\ Hadoop \ etc \ hadoop \ hdfs-site.xmlファイルに貼り付けます。
<構成> <プロパティ> <name> dfs.replication </ name> <値> 1 </値> </プロパティ> <プロパティ> <name> dfs.namenode.name.dir </ name> <値> C:\ hadoop \ data \ namenode </ value> </プロパティ> <プロパティ> <name> dfs.datanode.data.dir </ name> <値> C:\ hadoop \ data \ datanode </ value> </プロパティ> </構成> |
- 次のコンテンツをC:\ Hadoop \ etc \ hadoop \ yarn-site.xmlファイルに貼り付けます。
<構成> <プロパティ> <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> |
- 编辑文件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”,将会出错,因为路径中不能含有空格。)
- C:\Hadoop\bin目录下的内容删除。
- 将第2步下载的“winutils-master.zip”解压,然后将解压文件中“..\winutils-master\hadoop-3.0.0\bin”目录下的内容拷贝到“C:\Hadoop\bin”目录。
二 检验Hadoop是否按照成功
经过前面15步,Hadoop安装结束。
运行如下命令测试Hadoop是否可以正常运行:
- 运行命令“hdfs namenode –format”,先对HDFS分布式文件系统进行格式化。
- 进入“C:\Hadoop\sbin”目录运行命令“start-dfs”。如果一切正常,将会启动一个“hdfs namenode”进程和一个“hdfs datanode”进程,构成了只有1个主节点和1个从节点的“HDFS分布式文件系统集群”。可以通过“http://localhost:9870”监控HDFS系统。(用jps命令可以查看所有jvm相关的进程)
- 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 …] |
显示文件大小 |
- http://localhost:9870工具中在“utilities”菜单下有一个“Browse the File System”工具,可以浏览、操作HDFS分布式文件系统。
- 进入“C:\Hadoop\sbin”目录运行命令“stop-dfs”,关闭HDFS分布式文件系统。
三 运行MapReduce任务
注意:以下操作必须以管理员身份执行。
- 进入“C:\Hadoop\sbin”目录运行命令“start-all”。如果一切正常,将会启动一个“hdfs namenode”进程、一个“hdfs datanode”进程、一个“yarn resourcemanager”进程,一个“yarn nodemanager”进程。
- 用“hadoop fs –mkdir /input”命令在HDFS中创建“/input”子目录。
- 用“hadoop fs –put c:\source\input_file.txt /input”命令把本地文件系统中的“c:\source\input_file.txt”文件上传到HDFS的“/input”子目录。input_file.txt文件将作为WordCount MapReduce任务的输入文件。
- 用命令“yarn jar c:\source\mrtest.jar WordCount /input /output”命令启动MapReduce任务。任务执行成功后到“/output”目录下查找执行结果文件。