一、伪分布( Pseudo-Distributed )与分布式( Fully-Distributed )的区别
我们知道, hadoop 是运行在一个网络集群中的软件。在这个集群中,有 master 节点(一个逻辑上的节点包括二台物理节点),也有 node 节点(包括多台 namenode 节点和 datanode 节点)。也就是说,一个分布式 hadoop 程序的测试与运行,必须有多台主机的参与。那么,这就为编写软件带来了极大的不便。在这样的状况下, hadoop 推出了伪分布的概念。
简单的讲,伪分布便是在一台主机上运行 hadoop 程序。其中的各个节点功能,均由 java 进程完成。在伪分布的环境下,实际上还是一台主机在进行代码执行和计算功能。
二、伪分布的配置
在完成单机版配置的情况下,进行以下配置:
1 )配置 conf/core-site.xml 文件:
<property>
<name>fs.default.name</name>
<value>hdfs://localhost:9000</value>
</property>
</configuration>
配置
hadoop
文件系统(
File System
)的
URL
路径,同时指定默认的端口
9000
2
)配置
conf/hdfs-site.xml
文件:
dfs.tem.dir
/home/tangli/hadoop/tem
dfs.name.dir
/home/tangli/hadoop/name
dfs.data.dir
/home/tangli/hadoop/data
dfs.replication
1
前三项分别配置伪分布运行下的缓冲文件目录地址, namenode 文件目录地址, datanode 文件目录地址,其值自定义设定。最后一项配置数据备份数量,可以任设,建议 1 ~ 3 。
注: 0.23.0 版本以后的配置文件都在 share/hadoop/common/templates/conf 目录之下。
3 )配置 conf/mapred-site.xml 文件:
mapred.job.tracker
localhost:9001
配置 JobTraker 地址(端口)
三、格式化 HDFS (很重要):
进入 hadoop 所在目录,运行命令:
$ sudo bin/hadoop namenode -format
四、启动 hadoop 监护程序,即启动伪分布下的 hadoop :
$ bin/start-all.sh
在启动监护程序之后,执行命令 $ jps ,会至少显示以下 5 项内容:
NameNode 、 SecondaryNameNode 、 JobTracker 、 TaskTracker 、 DataNode 、 Jps
常见错误是缺少 NameNode 或者是 DataNode 。若缺少,请检查 conf/hdfs-site.xml 文件是否配置正确,若错误,修改后重新格式化 HDFS 。或者是权限错误,检查 namenode 文件目录地址, datanode 文件目录地址,若该目录图标上有小锁,表示当前用户无目录权限,请重新赋予正确权限。
五、停止 hadoop 监护程序
$ bin/stop-all.sh