一文彻底了解Hadoop的来龙去脉( 三 )

2.mapred-site.xml
<configuration><property><name>mapreduce.framework.name</name><value>yarn</value></property> </configuration> 3.hdfs-site.xml(先创建路径data/snn、data/namenode、data/datanode)
<configuration><!-- 这个参数设置为1,因为是单机版hadoop --><property><name>dfs.replication</name><value>1</value></property><property><name>dfs.permissions</name><value>false</value></property><property><name>dfs.namenode.name.dir</name><value>/D:/1_Program_File/hadoop-3.0.2/data/namenode</value></property><property><name>fs.checkpoint.dir</name><value>/D:/1_Program_File/hadoop-3.0.2/data/snn</value></property><property><name>fs.checkpoint.edits.dir</name><value>/D:/1_Program_File/hadoop-3.0.2/data/snn</value></property><property><name>dfs.datanode.data.dir</name><value>/D:/1_Program_File/hadoop-3.0.2/data/datanode</value></property> </configuration> 4.yarn-site.xml
<configuration> <!-- Site specific YARN configuration properties --><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>七、修改D:/hadoop-3.0.3/etc/hadoop/hadoop-env.cmd配置,找到"set JAVA_HOME=%JAVA_HOME%"替换为"set JAVA_HOME="D:Program Files"Javajdk1.8.0_25"
八、winutils中对应的hadoop版本中的bin替换自己hadoop安装目录下的bin
找到对应的版本下的bin替换hadoop中的bin,配置完成!
九、启动服务
1.cmd中,D:hadoop-3.0.3bin> hdfs namenode -format
执行后,data下的namenode和datanode下会有current等文件,我当时安装的是hadoop3.1.1,用的winutils中的hadoop3.0.0,datanode总是没有启动没有数据,换成hadoop3.0.3,使用wintuils的hadoop3.0.0后,就可以了 。
2.D:hadoop-3.0.3sbin启动start-all.cmd服务,会看到
Hadoop Namenode
Hadoop datanode
YARN Resourc Manager

一文彻底了解Hadoop的来龙去脉

文章插图
 
如果报错:
2019-08-03 11:54:23,239 ERROR namenode.NameNode: Failed to start namenode.java.lang.UnsatisfiedLinkError: org.apache.hadoop.io.nativeio.NativeIO$windows.access0(Ljava/lang/String;I)Z at org.apache.hadoop.io.nativeio.NativeIO$Windows.access0(Native Method)at org.apache.hadoop.io.nativeio.NativeIO$Windows.access(NativeIO.java:606) at org.apache.hadoop.fs.FileUtil.canWrite(FileUtil.java:971) at org.apache.hadoop.hdfs.server.common.Storage$StorageDirectory.analyzeStorage(Storage.java:614) at org.apache.hadoop.hdfs.server.common.Storage$StorageDirectory.analyzeStorage(Storage.java:574)1、系统环境变量配置HADOOP_HOME,并且添加进path 变量里;
2、HADOOP_HOMEbin 里是否有hadoop.dll 和 winutils.exe 这两个文件
3、C: windowsSystem32 里是否有hadoop.dll 文件,记得重启电脑噢!!!
如果出现其他错误比如version %1等,请确认winutils的是32位还是64位版本,是否与你电脑匹配 。
十、HDFS应用
1、通过http://127.0.0.1:8088/即可查看集群所有节点状态:
一文彻底了解Hadoop的来龙去脉

文章插图
 
2、访问http://localhost:9870/即可查看文件管理页面:
a.进入文件系统
一文彻底了解Hadoop的来龙去脉

文章插图
 
b.创建目录
一文彻底了解Hadoop的来龙去脉

文章插图
 
c.上传成功
一文彻底了解Hadoop的来龙去脉

文章插图
 
注:在之前的版本中文件管理的端口是50070,在3.0.0中替换为了9870端口
d.使用hadoop命令进行文件操作
mkdir命令创建目录:hadoop fs -mkdir hdfs://ip:9000/user
put命令上传文件:hadoop fs -put D:/a.txt hdfs://ip:9000/user/
ls命令查看指定目录文件列表:hadoop fs -ls hdfs://ip:9000/user/
4、第一个程序
值得注意的是,配置的时候,需要给Hadoop权限才能正确执行 。最简单的办法就是讲hadoop以及其目录下所有文件都归在一个组中 。
chown -R hadoop:hadoop hadoop文件夹
就可以了 。
配置完成之后,我们我们还需要什么?
1.需要在HDFS中保存有文件 。
2.需要一个程序jar包,我们前面说过,JobTracker接收jar包就会分解job为mapTask和reduceTask 。mapTask会读取HDFS中的文件来执行 。


推荐阅读