伪分布式模式即单节点集群模式,所有的守护进程都运行在同一台机器上。这种模式下增加了代码调试功能,可以查看内存、HDFS文件系统的输入/输出,以及与其他守护进程交互。以hadoop用户远程登录K-Master服务器,在单机模式安装的基础上,我们增加对core-site.xml、hdfs-site.xml、mapred-site.xml核心文件的配置步骤。
硬件环境:Centos 6.5 服务器4台(一台为Master节点,三台为Slave节点)
软件环境:Java 1.7.0_45、hadoop-1.2.1
1)配置core-site.xml
修改Hadoop核心配置文件/usr/hadoop/conf/core-site.xml,通过fs.default.name指定 NameNode 的 IP 地址和端口号,通过hadoop.tmp.dir指定hadoop数据存储的临时文件夹。
[hadoop@K-Master hadoop] vi conf/core-site.xml
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://K-Master:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/hadoop/tmp</value>
</property>
</configuration>
特别注意:如没有配置hadoop.tmp.dir参数,此时系统默认的临时目录为:/tmp/hadoo-hadoop。而这个目录在每次重启后都会被删除,必须重新执行format才行,否则会出错。
2)配置hdfs-site.xml
修改HDFS核心配置文件/usr/hadoop/conf/hdfs-site.xml,通过dfs.replication指定HDFS的备份因子为1,通过dfs.name.dir指定namenode节点的文件存储目录,通过dfs.data.dir指定datanode节点的文件存储目录。
[hadoop@K-Master hadoop] vi conf/hdfs-site.xml
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.name.dir</name>
<value>/usr/hadoop/hdfs/name</value>
</property>
<property>
<name>dfs.data.dir</name>
<value>/usr/hadoop/hdfs/data</value>
</property>
</configuration>
2)配置mapred-site.xml
修改MapReduce核心配置文件/usr/hadoop/conf/mapred-site.xml,通过mapred.job.tracker属性指定JobTracker的地址和端口。
[hadoop@K-Master hadoop] vi conf/mapred-site.xml
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>http://K-Master:9001</value>
</property>
</configuration>
格式化HDFS文件系统需要在namenode节点上通过hadoop用户执行,而且只需要执行一次,下次启动时不需要再格式化,直接启动HDFS文件管理系统和MapReduce服务即可。
[hadoop@K-Master ~]$ hadoop namenode -format
14/07/24 16:37:57 INFO namenode.NameNode: STARTUP_MSG:
/************************************************************
STARTUP_MSG: Starting NameNode
STARTUP_MSG: host = K-Master/192.168.100.147
STARTUP_MSG: args = [-format]
STARTUP_MSG: version = 1.2.1
STARTUP_MSG: build = https://svn.apache.org/repos/asf/hadoop/common/branches/branch-1.2 -r 1503152; compiled by 'mattf' on Mon Jul 22 15:23:09 PDT 2013
STARTUP_MSG: java = 1.7.0_65
********************a****************************************/
14/07/24 16:37:57 INFO util.GSet: Computing capacity for map BlocksMap
14/07/24 16:37:57 INFO util.GSet: VM type = 64-bit
14/07/24 16:37:57 INFO util.GSet: 2.0% max memory = 932184064
14/07/24 16:37:57 INFO util.GSet: capacity = 2^21 = 2097152 entries
14/07/24 16:37:57 INFO util.GSet: recommended=2097152, actual=2097152
14/07/24 16:37:58 INFO namenode.FSNamesystem: fsOwner=hadoop
14/07/24 16:37:58 INFO namenode.FSNamesystem: supergroup=supergroup
14/07/24 16:37:58 INFO namenode.FSNamesystem: isPermissionEnabled=true
14/07/24 16:37:58 INFO namenode.FSNamesystem: dfs.block.invalidate.limit=100
14/07/24 16:37:58 INFO namenode.FSNamesystem: isAccessTokenEnabled=false accessKeyUpdateInterval=0 min(s), accessTokenLifetime=0 min(s)
14/07/24 16:37:58 INFO namenode.FSEditLog: dfs.namenode.edits.toleration.length = 0
14/07/24 16:37:58 INFO namenode.NameNode: Caching file names occuring more than 10 times
14/07/24 16:37:58 INFO common.Storage: Image file /usr/hadoop/hdfs/name/current/fsimage of size 112 bytes saved in 0 seconds.
14/07/24 16:37:59 INFO namenode.FSEditLog: closing edit log: position=4, editlog=/usr/hadoop/hdfs/name/current/edits
14/07/24 16:37:59 INFO namenode.FSEditLog: close success: truncate to 4, editlog=/usr/hadoop/hdfs/name/current/edits
14/07/24 16:37:59 INFO common.Storage: Storage directory /usr/hadoop/hdfs/name has been successfully formatted.
14/07/24 16:37:59 INFO namenode.NameNode: SHUTDOWN_MSG:
/************************************************************
SHUTDOWN_MSG: Shutting down NameNode at K-Master/192.168.100.147
************************************************************/
1)通过start-dfs.sh命令启动HDFS文件管理系统,启动后通过如下日志信息可以看到在K-Master服务器上分别启动了namenode、datanode和secondarynamenode。
[hadoop@K-Master ~]$ start-dfs.sh
starting namenode, logging to /usr/hadoop/libexec/../logs/hadoop-hadoop-namenode-K-Master.out
K-Master: starting datanode, logging to /usr/hadoop/libexec/../logs/hadoop-hadoop-datanode- K-Master.out
K-Master: starting secondarynamenode, logging to /usr/hadoop/libexec/../logs/hadoop-hadoop-secondarynamenode-K-Master.out
2)在K-Master节点上查看启动进程
若打印如下日志信息,表明K-Master服务器上启动了NameNode、SecondaryNameNode2、DataNode服务进程,即K-Master服务器上HDFS文件管理系统启动成功。
[hadoop@K-Master ~]$ jps
6164 Jps
5971 NameNode
6108 SecondaryNameNode
1265 DataNode
1)通过start-mapred.sh命令启动MapReduce分布式计算服务,启动后通过以下日志信息可以看到在K-Master服务器上启动了jobtracker、tasktracker进程。
[hadoop@K-Master ~]$ start-mapred.sh
starting jobtracker, logging to /usr/hadoop/libexec/../logs/hadoop-hadoop-jobtracker-K-Master.out
K-Master: starting tasktracker, logging to /usr/hadoop/libexec/../logs/hadoop-hadoop-tasktracker- K-Master.out
2)K-Master节点上查看启动进程
若打印如下日志信息,表明K-Master服务器上新启动了JobTracker、TaskTracker服务进程,即K-Master服务器上MapReduce启动成功。
[hadoop@K-Master ~]$ jps
1342 NameNode
1726 Jps
1619 JobTracker
1480 SecondaryNameNode
1549 TaskTracker
1265 DataNode
完成上述4步,表明我们成功的完成了Hadoop伪分布式环境的部署,伪分布式模式也叫单节点集群模式,所有的守护进程都运行在同一台机器上,上述实验也证明了这一点,NameNode、SecondaryNameNode、DataNode、JobTracker、TaskTracker所有的守护进程全部运行在K-Master节点之上。
【Hadoop基础教程】1、Hadoop之服务器基础环境搭建
【Hadoop基础教程】2、Hadoop之单机模式搭建
【Hadoop基础教程】3、Hadoop之伪分布式环境搭建
【Hadoop基础教程】4、Hadoop之完全分布式环境搭建