手工启动hadoop/hbase
hadoop脚本说明
hadoop #hadoop命令行工具脚本
hadoop-config.sh #配置载入及命令行参数解析脚本,被所有hadoop脚本引用,../libexec/hadoop-config.sh(优先)
hadoop-daemon.sh #以后台方式运行一个hadoop command
#Usage: hadoop-daemon.sh [--config <conf-dir>] [--hosts hostlistfile] (start|stop) <hadoop-command> <args...>
# start步骤:
# 1.载入配置及命令行参数
# 2.日志回滚
# 3.若设置了HADOOP_MASTER(host:path where hadoop code should be rsync'd from),用rsync从HADOOP_MASETR同步
# 4.调用本地hadoop命令后台运行hadoop服务,并生成pid文件
# nohup nice -n $HADOOP_NICENESS "$HADOOP_PREFIX"/bin/hadoop \
# --config $HADOOP_CONF_DIR $command "$@" > "$log" 2>&1 < /dev/null &
# echo $! > $pid
# stop步骤:根据pid文件kill进程
hadoop-daemons.sh # 在所有slave主机上运行hadoop command
# usage="Usage: hadoop-daemons.sh [--config confdir] [--hosts hostlistfile] [start|stop] command args..."
# 执行方式(调用slaves.sh脚本来逐个远程执行hadoop-daemon.sh:
# exec "$bin/slaves.sh" --config $HADOOP_CONF_DIR cd "$HADOOP_HOME" \;
# "$bin/hadoop-daemon.sh" --config $HADOOP_CONF_DIR "$@"
rcc # The Hadoop record compiler
slaves.sh # Run a shell command on all slave hosts.
# Usage: slaves.sh [--config confdir] command...(后面所有内容都会作为command执行)
start-all.sh # Start all hadoop daemons. Run this on master node.
# 简单地调用start-dfs.sh和start-mapred.sh来启动dfs和mapreduce。
start-balancer.sh # Start balancer daemon.
start-dfs.sh
# Start hadoop dfs daemons.
# Optinally upgrade or rollback dfs state.
# Run this on master node.
# Usage: start-dfs.sh [-upgrade|-rollback]
#"$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
start-jobhistoryserver.sh # Start hadoop job history daemons. Run this on node where history server need to run
start-mapred.sh # Start hadoop map reduce daemons. Run this on master node.
# "$bin"/hadoop-daemon.sh --config $HADOOP_CONF_DIR start jobtracker
# "$bin"/hadoop-daemons.sh --config $HADOOP_CONF_DIR start tasktracker
stop-all.sh # Stop all hadoop daemons. Run this on master node.
stop-balancer.sh # Stop balancer daemon.
# Run this on the machine where the balancer is running
stop-dfs.sh # Stop hadoop DFS daemons. Run this on master node.
stop-jobhistoryserver.sh # Stop hadoop job history daemon. Run this on the node where history server is running
stop-mapred.sh # Stop hadoop map reduce daemons. Run this on master node.
task-controller # 这是一个二进制的可执行文件
# Usage: task-controller user good-local-dirs command command-args
hbase脚本说明
get-active-master.rb # Prints the hostname of the machine running the active master.(hbase-jruby)
graceful_stop.sh # Move regions off a server then stop it. Optionally restart and reload.
# Turn off the balancer before running this script.
hbase # The hbase command script.
hbase-config.sh # hbase配置载入及命令行参数解析,被其它脚本引用
hbase-daemon.sh # 以后台方式运行一个hbase command
# Usage: hbase-daemon.sh [--config <conf-dir> (start|stop|restart) <hbase-command> <args...>
hbase-daemons.sh # 在所有slave主机上运行hbase command
# Usage: hbase-daemons.sh [--config <hbase-confdir>] [--hosts regionserversfile] [start|stop] command args...
hbase-jruby # hbase-jruby环境
hirb.rb # Run the java magic include and import basic HBase types that will help ease hbase hacking.
local-master-backup.sh # This is used for starting multiple masters on the same machine.
# run it from hbase-dir/ just like 'bin/hbase'
# Supports up to 10 masters (limitation = overlapping ports)
local-regionservers.sh # This is used for starting multiple regionservers on the same machine.
# run it from hbase-dir/ just like 'bin/hbase'
# Supports up to 100 regionservers (limitation = overlapping ports)
master-backup.sh # Run a shell command on all backup master hosts.
region_mover.rb # Moves regions. Will confirm region access in current location and will
# not move a new region until successful confirm of region loading in new
# location. Presumes balancer is disabled when we run (not harmful if its
# on but this script and balancer will end up fighting each other).
# Does not work for case of multiple regionservers all running on the
# one node.
# Usage: region_mover.rb [options] load|unload <hostname>
regionservers.sh # Run a shell command on all regionserver hosts.
region_status.rb # View the current status of all regions on an HBase cluster. This is
# predominantly used to determined if all the regions in META have been
# onlined yet on startup.
# To use this script, run:
# ${HBASE_HOME}/bin/hbase org.jruby.Main region_status.rb [wait] [--table <table_name>]
rolling-restart.sh # 逐个重启动hbase进程?
# Usage: rolling-restart.sh [--config <hbase-confdir>] [--rs-only] [--master-only] [--graceful]
start-hbase.sh # Start hadoop hbase daemons.Run this on master node.
stop-hbase.sh # Stop hadoop hbase daemons. Run this on master node.
zookeepers.sh
手工启动
登录到各master/slave节点,逐台启动对应的服务进程。
手工启动dfs
#在master上启动namenode ./hadoop-daemon.sh start namenode # 在各台slave上启动datenode ./hadoop-daemon.sh start datanode # 在master backup上启动secondarynamenode ./hadoop-daemon.sh start secondarynamenode # 检查dfs运行状态 ./hadoop dfsadmin -report # 也可访问dfs的web页面查看 # http://serviceIp:50070 # 重新balancer(可选) # 其实集群自己会balancer,当然也可以手动balancer,不然在繁忙时段最好避免。 ./hadoop balancer
手工启动mapreduce
# 在master上启动jobtracker ./hadoop-daemon.sh start jobtracker # 在各台slave上启动tasktracker ./hadoop-daemon.sh start tasktracker # 检查mapreduce运行状态 #http://serviceIp:50030
手工启动zookeeper
# 在各zk节点启动zookeeper ./zkServer.sh start # 检查zookeeper工作状态 ./zkServer.sh status # 刚运行时会报错:Error contacting service. It is probably not running. # 等待zk节点竞选完成后进入工作状态,Mode: leader/follower
手工启动hbase
# 在master上启动master ./hbase-daemon.sh start master # 在各台slave上启动regionsrv ./hbase-daemon.sh start regionserver # 在master主机发起启动所有backup-master ./hbase-daemons.sh start master-backup # 或者在对应backup-master主机启动 ./hbase-daemon.sh start master --backup # 查看hbase运行状态 # 也可访问hbase的web界面查看 #http://serviceIp:60010/master.jsp #http://serviceIp:60030/regionserver.jsp #http://serviceIp:60010/zk.jsp hbase shell #hbase(main):001:0> status #3 servers, 0 dead, 77.0000 average load
其它技巧
-
通过管道向 hadoop put 文件
# 普通put bin/hadoop fs -put localfile $hdfsFile bin/hadoop fs -put localfiles $hdfsDir # 通过管道put cd $HADOOP_HOME if bin/hadoop fs -test -d $hdfsFile then echo "$hdfsFile is a directory" >&2 exit 1 fi cat localfileS | bin/hadoop fs -put /dev/fd/0 $hdfsFile if [[ "0 0" == ${PIPESTATUS[*]} ]] then echo success else bin/hadoop fs -rm $hdfsFile echo failed >&2 fi