Hadoop可以在不同的配置模式下运行,主要包括本地模式(Local Mode)、伪分布式模式(Pseudo-Distributed Mode)和完全分布式模式(Fully Distributed Mode)
本地模式(Local Mode)
在本地模式下,Hadoop的所有守护进程(如NameNode、DataNode、ResourceManager等)都在单个Java进程中运行,通常用于开发和测试。这种模式不需要特别的Hadoop集群,使用本地文件系统而不是HDFS。。
伪分布式模式(Pseudo-Distributed Mode)
在伪分布式模式下,Hadoop的各个守护进程在同一台机器上运行,但是作为独立的Java进程存在,使用HDFS作为文件系统。
NameNode和DataNode等守护进程在单个机器上独立运行,并且使用HDFS存储数据。
完全分布式模式(Fully Distributed Mode)
Hadoop的各个守护进程分布在多台机器上,每个机器承担集群中的特定角色,如一台
是Hadoop在生产环境中的运行方式,可以利用多台机器的资源来处理大规模数据。
需要详细配置每个守护进程的网络设置,包括每台机器的角色和它们的通信方式。此外,需要确保所有机器间的网络连接良好,并对HDFS、YARN等组件进行适当的配置。
Wordcount实验
本次实验使用伪分布式,即本地创建文件,传入hdfs,如果需要本地模式,则需要修改core-site.xml配置文件,设置fs.defaultFS属性为本地文件系统的路径:file:///
<configuration>
<property>
<name>fs.defaultFS</name>
<value>file:///</value>
</property>
</configuration>
开始伪分布式wordcount:
- 先找到本地的hadoop-mapreduce-examples-3.2.1.jar
我的在 usr/local/hadoop/share/hadoop/mapreduce目录下
在hadoop下创建一个wcinput文件夹,以后的测试txt放这里
将整个wcinput文件夹上传到HDFS中,并且保留其目录结构,使用如下命令:
hdfs dfs -put /usr/local/hadoop/wcinput /wcinput
发现成功上传:
开始执行使用 hadoop jar 命令运行 wordcount 例子程序。输入文件是 /usr/local/hadoop/wcinput/word.txt,并且已经上传到 HDFS 的 /wcinput 目录下,执行以下命令:
bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.2.1.jar wordcount /wcinput /wcoutput
这里,/wcinput 是 HDFS 上输入文件的目录,/wcoutput 是存放输出结果的目录。确保 /wcoutput 目录在执行作业前不存在,因为 Hadoop 不允许将作业写入已存在的目录。
使用 hdfs dfs -ls /wcoutput 命令来查看输出目录的内容。
然后,使用 hdfs dfs -cat /wcoutput/part-r-00000 来查看 wordcount 的结果。