hadoop集群启动脚本分析
2011-08-05 13:35
525 查看
最近从事日志分析系统工作,日志分析在hadoop上运行, 工作之余, 学习下hadoop,将所学点滴做个记录, 以作备忘。
hadoop版本:hadoop-0.20.2
1. $HDOOP_HOME/bin目录下主要有以下脚本:
2. hadoop启动顺序
3. start-all.sh:
$HADOOP_HOME/bin/start-all.sh 脚本通过调用start-dfs.sh和start-mapred.sh来
启动hdfs和mapred
start-all.sh代码:
4. start-dfs.sh:
$HADOOP_HOME/bin/start-dfs.sh 顺序启动namenode,datanode,secondarynamenode
start-dfs.sh代码:
启动namenode是直接在本地执行的,所以启动hdfs集群必须在namenode机器上运行start-dfs.sh脚本
启动datanode是通过ssh来进行的,所以dfs集群从namenode到datanode ssh调用必须通过认证, 即不需要输入密码确认
hadoop-daemons.sh代码:
hadoop-daemons.sh最终通过slave.sh脚本来实现datanode的启动
slaves.sh 代码:
从ssh $HADOOP_SSH_OPTS $slave $"${@// /\\ }"可以看出, 确实是通过ssh调用了相应的命令
另外, 如果集群中的ssh服务端口号改变了(默认是22),需要在$HADOOP_SSH_OPTS中设置端口号, 或者
其他的一些参数
5. start-mapred.sh:
$HADOOP_HOME/bin/start-mapred.sh顺序启动jobtrack和tasktrack
同hdfs的namenode一样, jobtrack也是在本地启动的,也就是start-mapred.sh脚本必须在jobtrack机器上运行
tasktracker 与datanode一样, 通过ssh来启动
6. stop-all.sh:
停止过程正好是启动的反过程, stop-mapred.sh和stop-dfs.sh也必须在jobtrack和
namenode机器上执行(完)
hadoop版本:hadoop-0.20.2
1. $HDOOP_HOME/bin目录下主要有以下脚本:
脚本名 | 描述 |
hadoop-config.sh | 初始化脚本,主要用来设定: HADOOP_HOME HADOOP_CONF_DIR HADOOP_SLAVES |
start-all.sh | 启动hdfs和mapred |
start-dfs.sh | 启动hdfs |
start-mapred.sh | 启动mapred |
hadoop-daemon.sh | 用来启动namenode和jobtrack |
hadoop-daemons.sh | 用来启动datanode和tasktrack |
slaves.sh | 被hadoop-daemons.sh调用,通过ssh来 启动集群中datanode和tastrack |
3. start-all.sh:
$HADOOP_HOME/bin/start-all.sh 脚本通过调用start-dfs.sh和start-mapred.sh来
启动hdfs和mapred
start-all.sh代码:
# start dfs daemons "$bin"/start-dfs.sh --config $HADOOP_CONF_DIR # start mapred daemons "$bin"/start-mapred.sh --config $HADOOP_CONF_DIR
4. start-dfs.sh:
$HADOOP_HOME/bin/start-dfs.sh 顺序启动namenode,datanode,secondarynamenode
start-dfs.sh代码:
"$bin"/hadoop-daemon.sh --config $HADOOP_CONF_DIR start namenode $nameStartOpt "$bin"/hadoop-daemons.sh --config $HADOOP_CONF_DIR start datanode $dataStartOpt "$bin"/hadoop-daemons.sh --config $HADOOP_CONF_DIR --hosts masters start secondarynamenode
启动namenode是直接在本地执行的,所以启动hdfs集群必须在namenode机器上运行start-dfs.sh脚本
启动datanode是通过ssh来进行的,所以dfs集群从namenode到datanode ssh调用必须通过认证, 即不需要输入密码确认
hadoop-daemons.sh代码:
exec "$bin/slaves.sh" --config $HADOOP_CONF_DIR cd "$HADOOP_HOME" \; "$bin/hadoop-daemon.sh" --config $HADOOP_CONF_DIR "$@"
hadoop-daemons.sh最终通过slave.sh脚本来实现datanode的启动
slaves.sh 代码:
for slave in `cat "$HOSTLIST"|sed "s/#.*$//;/^$/d"`; do ssh $HADOOP_SSH_OPTS $slave $"${@// /\\ }" \ 2>&1 | sed "s/^/$slave: /" & if [ "$HADOOP_SLAVE_SLEEP" != "" ]; then sleep $HADOOP_SLAVE_SLEEP fi done
从ssh $HADOOP_SSH_OPTS $slave $"${@// /\\ }"可以看出, 确实是通过ssh调用了相应的命令
另外, 如果集群中的ssh服务端口号改变了(默认是22),需要在$HADOOP_SSH_OPTS中设置端口号, 或者
其他的一些参数
5. start-mapred.sh:
$HADOOP_HOME/bin/start-mapred.sh顺序启动jobtrack和tasktrack
"$bin"/hadoop-daemon.sh --config $HADOOP_CONF_DIR start jobtracker "$bin"/hadoop-daemons.sh --config $HADOOP_CONF_DIR start tasktracker
同hdfs的namenode一样, jobtrack也是在本地启动的,也就是start-mapred.sh脚本必须在jobtrack机器上运行
tasktracker 与datanode一样, 通过ssh来启动
6. stop-all.sh:
"$bin"/stop-mapred.sh --config $HADOOP_CONF_DIR "$bin"/stop-dfs.sh --config $HADOOP_CONF_DIR
停止过程正好是启动的反过程, stop-mapred.sh和stop-dfs.sh也必须在jobtrack和
namenode机器上执行(完)
相关文章推荐
- Hadoop日志分析系统启动脚本
- hadoop集群启动脚本——解决启动hadoop集群时,效率低问题
- Hadoop 1.x 启动脚本分析
- hadoop集群启动脚本——解决启动hadoop集群时,效率低问题
- hadoop集群启动脚本——解决启动hadoop集群时,效率低问题
- hadoop启动和关闭脚本分析
- 【甘道夫】Hadoop2.2.0集群启动和停止Shell脚本
- 启动Hadoop集群和HBase集群脚本
- hadoop集群启动脚本——解决启动hadoop集群时,效率低问题
- hadoop集群启动脚本——解决启动hadoop集群时,效率低问题
- Hadoop 启动脚本分析
- hadoop集群启动脚本——解决启动hadoop集群时,效率低问题
- 第一章 Hadoop启动Shell启动脚本分析--基于hadoop-0.20.2-cdh3u1
- hadoop集群一键自动启动和自动关闭shell脚本 原创 2017年07月23日 17:58:45
- Hadoop 2.0+YARN启动脚本分析与实战经验
- 第一章 Hadoop启动Shell启动脚本分析--基于hadoop-0.20.2-cdh3u1
- hadoop集群启动脚本——解决启动hadoop集群时,效率低问题
- 第一章 Hadoop启动Shell启动脚本分析--基于hadoop-0.20.2-cdh3u1
- hadoop集群启动脚本——解决启动hadoop集群时,效率低问题
- 【甘道夫】Hadoop2.2.0集群启动和停止Shell脚本