[ 
https://issues.apache.org/jira/browse/HBASE-8565?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13747703#comment-13747703
 ] 

Jerry He commented on HBASE-8565:
---------------------------------

Hi, Stack
Thank you for the comment.

bq. On the second issue, test for presence of the process before waiting on it?

We could do a check on the local master pid. 
But to make it work even if the master is not local anymore, instead of waiting 
for local master pid,
can we borrow the idea of using master node on ZK to wait for:
{code}
    zmaster=`$bin/hbase org.apache.hadoop.hbase.util.HBaseConfTool 
zookeeper.znode.master`
    if [ "$zmaster" == "null" ]; then zmaster="master"; fi
    zmaster=$zparent/$zmaster
    echo -n "Waiting for Master ZNode ${zmaster} to expire"
    while ! "$bin"/hbase zkcli stat $zmaster 2>&1 | grep "Node does not exist"; 
do
      echo -n "."
      sleep 1
    done
{code}
                
> stop-hbase.sh clean up: backup master
> -------------------------------------
>
>                 Key: HBASE-8565
>                 URL: https://issues.apache.org/jira/browse/HBASE-8565
>             Project: HBase
>          Issue Type: Bug
>          Components: master, scripts
>    Affects Versions: 0.94.7, 0.95.0
>            Reporter: Jerry He
>            Assignee: Jerry He
>            Priority: Minor
>             Fix For: 0.98.0, 0.94.12, 0.96.0
>
>         Attachments: HBASE-8565-v1-0.94.patch, HBASE-8565-v1-trunk.patch
>
>
> In stop-hbase.sh:
> {code}
>   # TODO: store backup masters in ZooKeeper and have the primary send them a 
> shutdown message
>   # stop any backup masters
>   "$bin"/hbase-daemons.sh --config "${HBASE_CONF_DIR}" \
>     --hosts "${HBASE_BACKUP_MASTERS}" stop master-backup
> {code}
> After HBASE-5213, stop-hbase.sh -> hbase master stop will bring down the 
> backup master too via the cluster status znode.
> We should not need the above code anymore.
> Another issue happens when the current master died and the backup master 
> became the active master.
> {code}
> nohup nice -n ${HBASE_NICENESS:-0} "$HBASE_HOME"/bin/hbase \
>    --config "${HBASE_CONF_DIR}" \
>    master stop "$@" > "$logout" 2>&1 < /dev/null &
> waitForProcessEnd `cat $pid` 'stop-master-command'
> {code}
> We can still issue 'hbase-stop.sh' from the old master.
> stop-hbase.sh -> hbase master stop -> look for active master -> request 
> shutdown
> This process still works.
> But the waitForProcessEnd statement will not work since the local master pid 
> is not relevant anymore.
> What is the best way in the this case?

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to