发布日期:2015-12-07 09:29 来源: 标签: 云计算与大数据 Hadoop教程 启动Hadoop集群模式 海量数据
本章我们主要学习启动Hadoop集群的支持模式有哪些?并且掌握常用的单机模式与伪分布式模式操作方法,下面我们就做一下具体讲解,希望大家多多支持中国站长网络学院。
运行Hadoop集群的准备工作 
解压所下载的Hadoop发行版。编辑 conf/hadoop-env.sh文件,至少需要将JAVA_HOME设置为Java安装根路径。 
尝试如下命令: 
$ bin/hadoop 
将会显示hadoop 脚本的使用文档。 
现在你可以用以下三种支持的模式中的一种启动Hadoop集群: 
 • 单机模式 
 • 伪分布式模式 
 • 完全分布式模式

单机模式操作方法
默认情况下,Hadoop 被配置成以非分布式模式运行的一个独立Java 进程。这对调试非常有帮助。 
下面的实例将已解压的 conf 目录拷贝作为输入,查找并显示匹配给定正则表达式的条目。输出写入到指定的output目录。 
$ mkdir input  
$ cp conf/*.xml input  
$ bin/hadoop jar hadoop-examples-0.20.203.0.jar grep input output 'dfs[a-z.]+' 
$ cat output/* 
注:语法不理解没关系看下面进一步说明 
显示结果 
 1     dfsadmin  

伪分布式模式的操作方法 
Hadoop 可以在单节点上以所谓的伪分布式模式运行,此时每一个 Hadoop 守护进程都作为一个独立的Java进程运行。 
配置 
注:以前的版本是hadoop-site.xml,可hadoop在0.20 版本,配置文件由以前的 
hadoop-site.xml文件变成三个配置文件core-site.xml,hdfs- site.xml,mapred-site.xml. 
内在的原因是因为hadoop代码量越来越宠大,拆解成三个大的分支进行独立开发,配置文件 
也独立了  
conf/core-site.xml: 
<configuration> 
   <property> 
     <name>fs.default.name</name> 
     <value>hdfs://localhost:9000</value> 
   </property> 
</configuration> 
conf/hdfs-site.xml: 
<configuration> 
    <property> 
       <name>dfs.replication</name> 
       <value>1</value> 
    </property> 
</configuration> 
conf/mapred-site.xml: 
<configuration> 
   <property> 
       <name>mapred.job.tracker</name> 
       <value>localhost:9001</value> 
   </property> 
</configuration>
免密码ssh设置 
现在确认能否不输入口令就用ssh登录localhost: 
$ ssh localhost 
如果不输入口令就无法用ssh登陆localhost,执行下面的命令: 
$ ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa 
$ cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys 
执行 
首先使用 hadoop命令对  Hadoop File System (HDFS)  进行格式化。 
首先,请求  namenode  对  DFS  文件系统进行格式化。在安装过程中完成了这个步骤,但是了解是否需 
要生成干净的文件系统是有用的。 
[hadoop@TEST085 hadoop-0.20.203.0]$ bin/hadoop namenode –format 
 注:在确认请求之后,文件系统进行格式化并返回一些信息: 
11/07/12 17:47:12 INFO namenode.NameNode: STARTUP_MSG: 
/************************************************************ 
STARTUP_MSG: Starting NameNode 
STARTUP_MSG:       host = TEST085/202.102.110.206 
STARTUP_MSG:       args = [-format] 
STARTUP_MSG:       version = 0.20.203.0 
STARTUP_MSG:       build = 
http://svn.apache.org/repos/asf/hadoop/common/branches/branch-0.20-security-203 -r 
1099333; compiled by 'oom' on Wed May   4 07:57:50 PDT 2011 
************************************************************/ 
11/07/12 17:47:12 INFO util.GSet: VM type      = 32-bit 
11/07/12 17:47:12 INFO util.GSet: 2% max memory = 19.33375 MB 
11/07/12 17:47:12 INFO util.GSet: capacity    = 2^22 = 4194304 entries 
11/07/12 17:47:12 INFO util.GSet: recommended=4194304, actual=4194304 
11/07/12 17:47:13 INFO namenode.FSNamesystem: fsOwner=hadoop 
11/07/12 17:47:13 INFO namenode.FSNamesystem: supergroup=supergroup 
11/07/12 17:47:13 INFO namenode.FSNamesystem: isPermissionEnabled=true 
11/07/12 17:47:13 INFO namenode.FSNamesystem: dfs.block.invalidate.limit=100 
11/07/12 17:47:13 INFO namenode.FSNamesystem: isAccessTokenEnabled=false 
accessKeyUpdateInterval=0 min(s), accessTokenLifetime=0 min(s) 
11/07/12 17:47:13 INFO namenode.NameNode: Caching file names occuring more than 
10 times 
11/07/12 17:47:13 INFO common.Storage: Image file of size 112 saved in 0 seconds. 
11/07/12 17:47:13 INFO common.Storage: Storage directory 
/tmp/hadoop-hadoop/dfs/name has been successfully formatted. 
11/07/12 17:47:13 INFO namenode.NameNode: SHUTDOWN_MSG: 
/************************************************************ 
 SHUTDOWN_MSG: Shutting down NameNode at TEST085/202.102.110.206 
************************************************************/ 
接下来,启动Hadoop守护进程。
启动 Hadoop 守护进程: 
[hadoop@TEST085 hadoop-0.20.203.0]$ bin/start-all.sh 
注:1)Hadoop守护进程的日志写入到 ${HADOOP_LOG_DIR} 目录 (默认是 
${HADOOP_HOME}/logs) 
2)启动hadoop,但ssh  端口不是默认的22 怎么样?好在它可以配置。在 
conf/hadoop-env.sh里改下。如: 
export HADOOP_SSH_OPTS="-p 1234" 
浏览 NameNode 和JobTracker 的网络接口,它们的地址默认为: 
• NameNode - http://localhost:50070/ 
• JobTracker - http://localhost:50030/ 
将输入文件拷贝到分布式文件系统: 
$ bin/hadoop fs -put conf input 
运行发行版提供的示例程序: 
$ bin/hadoop jar hadoop-examples-0.20.203.0.jar grep input output 'dfs[a-z.]+' 
查看输出文件: 
将输出文件从分布式文件系统拷贝到本地文件系统查看: 
$ bin/hadoop fs -get output output 
$ cat output/* 
或者 
在分布式文件系统上查看输出文件: 
$ bin/hadoop fs -cat output/* 
完成全部操作后,停止守护进程: 
$ bin/stop-all.sh 
Hadoop在这个伪分布式配置中启动5个守护进程:namenode、secondarynamenode、datanode、jobtracker 和  tasktracker。在启动每个守护进程时,会看到一些相关信息(指出存储日志的位置)。每个守护进程都在后台运行。图1说明完成启动之后伪分布式配置 
的架构。
图1.伪分布式Hadoop配置 


相关评论

专题信息
    Hadoop是Apache开源组织的一个分布式计算开源框架,在很多大型网站上都已经得到了应用,如亚马逊、Facebook和Yahoo等等。Hadoop框架中最核心的设计就是:MapReduce和HDFS。MapReduce的思想是由Google的一篇论文所提及而被广为流传的,简单的一句话解释MapReduce就是“任务的分解与结果的汇总”。HDFS是Hadoop分布式文件系统(Hadoop Distributed File System)的缩写,为分布式计算存储提供了底层支持。本教程对Hadoop做了详解的介绍与讲解,教程中的实例能让大家更快的学习Hadoop,望大家多多支持中国站长网络学院。