start-all.sh究竟做了什么?

   当搭建好了hadoop环境,我们迫不及待的就开始执行start-all.sh脚本,那么这个脚本具体做什么呢

 

1:hadoop-config.sh  //想使用自己的配置的,需要在这里设置了
2:start-dfs.sh           //start dfs daemons
3:start-mapred.sh    //start mapred daemons

 

    好吧,看来干活的都是小弟,而且分工明确。

 

    首先来看start-dfs.sh

 

1:hadoop-daemon.sh    //start namenode
2:hadoop-daemons.sh  //start datanode
3:hadoop-daemons.sh  //masters start secondarynamenode

 

   这个分工也很明确,我们来细看里面的

   hadoop-daemon.s

 

主要是生成namenode的日志文件,然后将具体的操作请求转发给    

 org.apache.hadoop.hdfs.server.namenode.NameNode 这个类。

 

   hadoop-daemons.sh

 

1:启动datanade时 调用 slaves.sh  同时将本地的hadoop_home传递过去(所以说slaves和master的hadoop路径要一致了)

2: 启动seconddarynamenode 时将具体的请求转发给
org.apache.hadoop.hdfs.server.namenode.SecondaryNameNode 这个类
 

 

   再来看下slaves.sh做了什么

 

1:读取slaves文件里ip配置
2:ssh 每个slave机器
3:到HADOOP_HOME目录下
4:执行hadoop-daemon.sh脚本
5:传递的启动参数为start datanode
6:使用的conf文件为slave机器HADOOP_HOME下的。

 

    再看slaves机器上的执行情况,其实是把请求转交给

 

org.apache.hadoop.hdfs.server.datanode.DataNode

     这个类来处理了。

 

    好现在来看 start-mapred.sh

 

 

1:hadoop-config.sh      //mapreduce的配置相关
2:hadoop-daemon.sh   //start jobtracker
3:hadoop-daemons.sh  //start tasktracker

   再看对mapred的处理,其实是把请求转给以下2个类。

 

org.apache.hadoop.mapred.JobTracker  //master机器上

org.apache.hadoop.mapred.TaskTracker  //slaves机器上。

 

其实hadoop的启动脚本注释都很明确了,我这里只是理清一下过程,所以这里总结下就是;

 

 org.apache.hadoop.hdfs.server.namenode.NameNode 
 org.apache.hadoop.mapred.JobTracker
 org.apache.hadoop.hdfs.server.namenode.SecondaryNameNode 

这3个主要运行在master机器上

org.apache.hadoop.hdfs.server.datanode.DataNode

org.apache.hadoop.mapred.TaskTracker 
这2个主要是运行在slaves机器上,由ssh连接过去然后在相对应的目录下执行脚本。

 

 

 

你可能感兴趣的:(apache,mapreduce,hadoop,脚本,ssh)