Hadoop 2.7.3 启动脚本详解:关键步骤与配置
在Hadoop 2.7.3的启动脚本流程中,主要涉及到以下几个关键步骤: 1. **脚本执行入口**: 首先,脚本从`--->нűstart-all.sh`开始执行。这个可能是Hadoop集群的初始化或启动命令。 2. **定位脚本目录**: 使用`bin=`dirname"${BASH_SOURCE-$0}"`获取当前脚本的目录,然后通过`cd`命令切换到该目录并获取其路径,这将用于后续变量设置。 3. **设置默认和自定义库执行目录**: `DEFAULT_LIBEXEC_DIR`被设置为`bin`目录的上级目录`../libexec`,`HADOOP_LIBEXEC_DIR`如果未指定,则使用`DEFAULT_LIBEXEC_DIR`。这一步是为Hadoop组件提供可执行的辅助程序和配置文件的路径。 4. **加载配置**: `nű$HADOOP_LIBEXEC_DIR/hadoop-config.sh`被调用,这可能包含了一些通用的配置处理,如设置环境变量、检查配置文件等。 5. **解析脚本和目录路径**: 通过`this`、`common_bin`和`script`变量,获取当前脚本的完整路径,以便正确引用Hadoop共享目录(如`HADOOP_COMMON_DIR`、`HDFS_DIR`等)。 6. **定义Hadoop组件目录**: - `HADOOP_COMMON_DIR`表示Hadoop通用模块的安装目录。 - `HADOOP_COMMON_LIB_JARS_DIR`用于存放通用模块的jar包。 - `HADOOP_COMMON_LIB_NATIVE_DIR`存放通用模块的本地编译库。 - `HDFS_DIR`是Hadoop分布式文件系统模块的安装目录。 - `HDFS_LIB_JARS_DIR`存放HDFS相关的jar包。 - `YARN_DIR`和`YARN_LIB_JARS_DIR`与YARN(Yet Another Resource Negotiator)模块有关。 - `MAPRED_DIR`和`MAPRED_LIB_JARS_DIR`则对应MapReduce模块。 这些变量的设置确保了Hadoop各个组件的资源可以被正确地定位和加载,对于启动时的依赖查找和配置生效至关重要。通过理解这些脚本中的路径和变量,我们可以深入理解Hadoop 2.7.3的部署结构和启动过程,这对于理解和维护大型分布式计算平台非常有帮助。当遇到问题时,这些信息也可以帮助我们定位和解决问题。
--->bin=`dirname "${BASH_SOURCE-$0}"`
--->bin=`cd "$bin"; pwd`
--->DEFAULT_LIBEXEC_DIR="$bin"/../libexec
--->HADOOP_LIBEXEC_DIR=${HADOOP_LIBEXEC_DIR:-$DEFAULT_LIBEXEC_DIR}
--->运行脚本$HADOOP_LIBEXEC_DIR/hadoop-config.sh
--->this="${BASH_SOURCE-$0}"
--->common_bin=$(cd -P -- "$(dirname -- "$this")" && pwd -P)
--->script="$(basename -- "$this")"
--->this="$common_bin/$script"
--->HADOOP_COMMON_DIR=${HADOOP_COMMON_DIR:-"share/hadoop/common"}
--->HADOOP_COMMON_LIB_JARS_DIR=${HADOOP_COMMON_LIB_JARS_DIR:-"share/hadoop/common/lib"}
--->HADOOP_COMMON_LIB_NATIVE_DIR=${HADOOP_COMMON_LIB_NATIVE_DIR:-"lib/native"}
--->HDFS_DIR=${HDFS_DIR:-"share/hadoop/hdfs"}
--->HDFS_LIB_JARS_DIR=${HDFS_LIB_JARS_DIR:-"share/hadoop/hdfs/lib"}
--->YARN_DIR=${YARN_DIR:-"share/hadoop/yarn"}
--->YARN_LIB_JARS_DIR=${YARN_LIB_JARS_DIR:-"share/hadoop/yarn/lib"}
--->MAPRED_DIR=${MAPRED_DIR:-"share/hadoop/mapreduce"}
--->MAPRED_LIB_JARS_DIR=${MAPRED_LIB_JARS_DIR:-"share/hadoop/mapreduce/lib"}
--->HADOOP_DEFAULT_PREFIX=$(cd -P -- "$common_bin"/.. && pwd -P)
--->HADOOP_PREFIX=${HADOOP_PREFIX:-$HADOOP_DEFAULT_PREFIX}
--->判断是否带参数,如果有且是--config则赋值给HADOOP_CONF_DIR
--->判断是否带参数,如果有且是--loglevel则赋值给HADOOP_LOGLEVEL
--->判断${HADOOP_PREFIX}/conf/hadoop-env.sh是否存在,且设置DEFAULT_CONF_DIR
--->export HADOOP_CONF_DIR="${HADOOP_CONF_DIR:-$HADOOP_PREFIX/$DEFAULT_CONF_DIR}"
--->判断是否带参数,如果有且是--hosts则赋值给HADOOP_SLAVES
--->判断是否带参数,如果有且是--hostnames则赋值给HADOOP_SLAVE_NAMES
--->运行脚本${HADOOP_CONF_DIR}/hadoop-env.sh
--->export JAVA_HOME=${JAVA_HOME}
--->export HADOOP_CONF_DIR=${HADOOP_CONF_DIR:-"/etc/hadoop"}
--->export HADOOP_NAMENODE_OPTS="-Dhadoop.security.logger=${HADOOP_SECURITY_LOGGER:-INFO,RFAS} -Dhdfs.audit.logger=${HDFS_AUDIT_LOGGER:-INFO,NullAppender} $HADOOP_NAMENODE_OPTS"
--->export HADOOP_DATANODE_OPTS="-Dhadoop.security.logger=ERROR,RFAS $HADOOP_DATANODE_OPTS"
--->export HADOOP_SECONDARYNAMENODE_OPTS="-Dhadoop.security.logger=${HADOOP_SECURITY_LOGGER:-INFO,RFAS} -Dhdfs.audit.logger=${HDFS_AUDIT_LOGGER:-INFO,NullAppender} $HADOOP_SECONDARYNAMENODE_OPTS"
--->export HADOOP_NFS3_OPTS="$HADOOP_NFS3_OPTS"
--->export HADOOP_PORTMAP_OPTS="-Xmx512m $HADOOP_PORTMAP_OPTS"
--->export HADOOP_CLIENT_OPTS="-Xmx512m $HADOOP_CLIENT_OPTS"
--->export HADOOP_SECURE_DN_USER=${HADOOP_SECURE_DN_USER}
--->export HADOOP_SECURE_DN_LOG_DIR=${HADOOP_LOG_DIR}/${HADOOP_HDFS_USER}
--->export HADOOP_PID_DIR=${HADOOP_PID_DIR}
--->export HADOOP_SECURE_DN_PID_DIR=${HADOOP_PID_DIR}
--->export HADOOP_IDENT_STRING=$USER
--->运行命令/sbin/sysctl -n net.ipv6.bindv6only,hadoop暂不支持ipv6
--->export MALLOC_ARENA_MAX=${MALLOC_ARENA_MAX:-4}
--->判断是否设置$JAVA_HOME,如果没有则设置默认
--->设置JAVA=$JAVA_HOME/bin/java
--->判断是否设置$HADOOP_HEAPSIZE,如果没有则设置默认JAVA_HEAP_MAX=-Xmx1000m
--->初始化并赋值CLASSPATH="${HADOOP_CONF_DIR}"
--->判断是否设置$HADOOP_COMMON_HOME,如果没有则设置默认HADOOP_COMMON_HOME=$HADOOP_PREFIX
--->赋值CLASSPATH=${CLASSPATH}:$HADOOP_COMMON_HOME/$HADOOP_COMMON_DIR
--->赋值CLASSPATH=${CLASSPATH}:$HADOOP_COMMON_HOME/$HADOOP_COMMON_LIB_JARS_DIR'/*'
--->赋值CLASSPATH=${CLASSPATH}:$HADOOP_COMMON_HOME/$HADOOP_COMMON_DIR'/*'
--->判断是否设置$HADOOP_LOG_DIR,如果没有则设置默认HADOOP_LOG_DIR="$HADOOP_PREFIX/logs"
--->判断是否设置$HADOOP_LOGFILE,如果没有则设置默认HADOOP_LOGFILE='hadoop.log'
--->判断是否设置$HADOOP_POLICYFILE,如果没有则设置默认HADOOP_POLICYFILE="hadoop-policy.xml"
--->JAVA_LIBRARY_PATH=${JAVA_LIBRARY_PATH}:${HADOOP_PREFIX}/$HADOOP_COMMON_LIB_NATIVE_DIR
--->TOOL_PATH="${TOOL_PATH:-$HADOOP_PREFIX/share/hadoop/tools/lib/*}"
--->HADOOP_OPTS="$HADOOP_OPTS -Dhadoop.log.dir=$HADOOP_LOG_DIR"
--->HADOOP_OPTS="$HADOOP_OPTS -Dhadoop.log.file=$HADOOP_LOGFILE"
--->判断hadoop是否运行在windows的cygwin环境下,并设置HADOOP_OPTS="$HADOOP_OPTS -Dhadoop.home.dir
剩余6页未读,继续阅读
- 粉丝: 7
- 资源: 73
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- C++标准程序库:权威指南
- Java解惑:奇数判断误区与改进方法
- C++编程必读:20种设计模式详解与实战
- LM3S8962微控制器数据手册
- 51单片机C语言实战教程:从入门到精通
- Spring3.0权威指南:JavaEE6实战
- Win32多线程程序设计详解
- Lucene2.9.1开发全攻略:从环境配置到索引创建
- 内存虚拟硬盘技术:提升电脑速度的秘密武器
- Java操作数据库:保存与显示图片到数据库及页面
- ISO14001:2004环境管理体系要求详解
- ShopExV4.8二次开发详解
- 企业形象与产品推广一站式网站建设技术方案揭秘
- Shopex二次开发:触发器与控制器重定向技术详解
- FPGA开发实战指南:创新设计与进阶技巧
- ShopExV4.8二次开发入门:解决升级问题与功能扩展