首页 电脑 电脑学堂 查看内容

hadoop集群启动脚本分析

2013-5-7 10:55 557 0

摘要: hadoop版本:hadoop-0.20.2 1. $HDOOP_HOME/bin目录下主要有以下脚本: 脚本名 描述 hadoop-config.sh 初始化脚本,主要...
关键词: hadoop start sh config mapred daemons datanode namenode CONF bin

hadoop版本:hadoop-0.20.2 1. $HDOOP_HOME/bin目录下主要有以下脚本: 脚本名 描述 hadoop-config.sh 初始化脚本,主要用来设定:HADOOP_HOMEHADOOP_CONF_DIRHADOOP_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 2. hadoop启动顺序 3. start-all.sh:$HADOOP_HOME/bin/start-all.sh 脚本通过调用start-dfs.sh和start-mapred.sh来启动hdfs和mapredstart-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,secondarynamenodestart-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机器上执行(完)
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系 [邮箱地址] 删除

路过

雷人

握手

鲜花

鸡蛋

最新评论

返回顶部