这篇文章主要介绍了windows上如何配置hadoop,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。
1.1 程序文件
上篇文章已经编译了hadoop,并拿到一个targz的包,后来发现这个压缩包只是hadoop-common\hadoop-dist\target\hadoop-3.0.0-SNAPSHOT的压缩版本而已,编译好的全部文件就是这个文件夹,所以把这个目录拷贝到你想要的目录,下面称这个程序目录为 %HADOOP_PERFIX% (这个环境变量下面要配置,所以这里先用上)。
1.2 配置文件
下面的配置文件均位于 %HADOOP_PERFIX%\etc 目录,所以只标志文件名
1.2.1 hadoop-env.cmd
在这个文件夹里设置几个环境变量(这里需要改的就是 HADOOP_PERFIX,改成自己本机的目录)
set HADOOP_PREFIX=**你的程序目录** set HADOOP_CONF_DIR=%HADOOP_PREFIX%\etc\hadoop set YARN_CONF_DIR=%HADOOP_CONF_DIR% set PATH=%PATH%;%HADOOP_PREFIX%\bin
1.2.2 core-site.xml
这个文件默认只有configuratiion节,因为我们部署的是单机节点,直接把wiki上的复制过来就行了。
<configuration> <property> <name>fs.default.name</name> <value>hdfs://0.0.0.0:19000</value> </property> </configuration>
1.2.3 hdfs-site.xml
同上直接复制到对应文件里。
<configuration> <property> <name>dfs.replication</name> <value>1</value> </property> </configuration>
1.2.4 slaves
用记事本打开这个文件,看一下里面是不是有一行
localhost
1.2.5 mapred-site.xml
这是对 mapReduce nextGen,也就是 YARN 的配置。我们既然学习,自然要学习最新的 ^_^ 。直接复制到文件中即可(如果没有文件,则直接创建)
<configuration> <property> <name>mapreduce.job.user.name</name> <value>%USERNAME%</value> </property> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> <property> <name>yarn.apps.stagingDir</name> <value>/user/%USERNAME%/staging</value> </property> <property> <name>mapreduce.jobtracker.address</name> <value>local</value> </property> </configuration>
1.2.6 yarn-site.xml
同上,是yarn的配置文件,如果没有,则创建。
<configuration> <property> <name>yarn.server.resourcemanager.address</name> <value>0.0.0.0:8020</value> </property> <property> <name>yarn.server.resourcemanager.application.expiry.interval</name> <value>60000</value> </property> <property> <name>yarn.server.nodemanager.address</name> <value>0.0.0.0:45454</value> </property> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> <property> <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name> <value>org.apache.hadoop.mapred.ShuffleHandler</value> </property> <property> <name>yarn.server.nodemanager.remote-app-log-dir</name> <value>/app-logs</value> </property> <property> <name>yarn.nodemanager.log-dirs</name> <value>/dep/logs/userlogs</value> </property> <property> <name>yarn.server.mapreduce-appmanager.attempt-listener.bindAddress</name> <value>0.0.0.0</value> </property> <property> <name>yarn.server.mapreduce-appmanager.client-service.bindAddress</name> <value>0.0.0.0</value> </property> <property> <name>yarn.log-aggregation-enable</name> <value>true</value> </property> <property> <name>yarn.log-aggregation.retain-seconds</name> <value>-1</value> </property> <property> <name>yarn.application.classpath</name> <value>%HADOOP_CONF_DIR%,%HADOOP_COMMON_HOME%/share/hadoop/common/*,%HADOOP_COMMON_HOME%/share/hadoop/common/lib/*,%HADOOP_HDFS_HOME%/share/hadoop/hdfs/*,%HADOOP_HDFS_HOME%/share/hadoop/hdfs/lib/*,%HADOOP_MAPRED_HOME%/share/hadoop/mapreduce/*,%HADOOP_MAPRED_HOME%/share/hadoop/mapreduce/lib/*,%HADOOP_YARN_HOME%/share/hadoop/yarn/*,%HADOOP_YARN_HOME%/share/hadoop/yarn/lib/*</value> </property> </configuration>
用管理员模式打开一个cmd窗口,切换到 %HADOOP_PERFIX% 目录(不用管理员模式的cmd窗口容易出现读取文件的权限问题)。
运行 etc\hadoop\hadoop-env.cmd 进行环境变量的设置。 因为cmd中的set只对本次cmd有效,所以接下来都在这同一个cmd中操作。
运行 bin\hdfs namenode -format 命令,初始化一个hdfs文件系统。默认初始化的目录为 当前盘符:\tmp 也就是我在P盘下,会自动创建一个 P:\tmp 目录。
运行 sbin\start-dfs.cmd
如果正常,会弹出两个cmd窗口千万不要关@_@
打开一个cmd,或者回到最开始的cmd也可以。 先输入hdfs 命令试一下。 如果提示不是内部或外部命令,则重新运行 etc\hadoop\hadoop-env.cmd 如果正常,则会提示一些hdfs的相关命令。 cd到一个目录,往hdfs里放个文件试一下。
cd P:\java\apache-tomcat-8.0.35\logs hdfs dfs -put localhot.2016-06-10.log /
就是把 .log 这个文件放到 hdfs的 / 下面。 如果有什么奇怪的提示,先不管。如果报错,额... 博主没遇到问题,根据错误信息自行搜索一下。不过我想首先,确保不要手贱的把刚才的两个服务的cmd关了。。 然后看一下文件是不是放到dfs中了。
hdfs dfs -ls /
好了,dfs 测试成功!
下面就是测试一下mapreduce了。
2.2.1 运行yarn
如果刚才测试dfs的时候你cd到了其他目录,现在需要先cd回到 %HADOOP_PERFIX% 然后运行
sbin\start-yarn.cmd
不出意外的话,又是两个cmd弹了出来,好了,现在yarn就在运行中了。 然后测试一下yarn,运行:
bin\yarn jar %HADOOP_PREFIX%\share\hadoop\mapreduce\hadoop-mapreduce-examples-2.5.0.jar wordcount /localhot.2016-06-10.log /out
简单分析一下这个命令,执行某jar包中的wordcount任务(这个任务是做啥的,等等下面看一下输出)。输出到hdfs的out目录下。不出意外的话,你会拿到这么一个输出。
当然,为了验证是否真的正确,我们得看一下结果。 继续在cmd中输入命令:
hdfs dfs -get /out P:\
把out目录从hdfs中复制到P盘下。 好了,现在打开P:\out 文件夹。发现一个0k的 _SUCCESS 看来只是标志任务成功的文件。还有一个 10k的part-r-00000,打开之后发现:
原来,这个任务是统计文件中各词出现的次数,另外,中文在文件里面乱码了。看来hadoop的编码问题还要解决一下,这个之后再解决吧。
感谢你能够认真阅读完这篇文章,希望小编分享的“windows上如何配置hadoop”这篇文章对大家有帮助,同时也希望大家多多支持亿速云,关注亿速云行业资讯频道,更多相关知识等着你来学习!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。