在VirtualBox VM之外无法访问Accumulo概览控制台

在VirtualBox VM之外无法访问Accumulo概览控制台,virtualbox,accumulo,Virtualbox,Accumulo,我正在Ubuntu 12.04 VirtualBox虚拟机中运行Accumulo 1.5。我已经将accumulo-site.xml instance.zookeeper.host文件设置为VM的IP地址,我可以连接到accumulo并从远程客户端计算机运行查询。在客户机上,我还可以使用浏览器查看hadoop名称节点、浏览文件系统等。但除了直接从Accumulo VM连接到Accumulo概览页面(端口50095)之外,我无法从其他任何位置连接到Accumulo概览页面。虚拟机和客户端之间没有防

我正在Ubuntu 12.04 VirtualBox虚拟机中运行Accumulo 1.5。我已经将accumulo-site.xml instance.zookeeper.host文件设置为VM的IP地址,我可以连接到accumulo并从远程客户端计算机运行查询。在客户机上,我还可以使用浏览器查看hadoop名称节点、浏览文件系统等。但除了直接从Accumulo VM连接到Accumulo概览页面(端口50095)之外,我无法从其他任何位置连接到Accumulo概览页面。虚拟机和客户端之间没有防火墙,除了无法访问Accumulo概览页面外,其他一切似乎都正常工作

是否需要更改配置设置以允许外部访问Accumulo概览控制台


谢谢

检查监视器是否绑定到正确的接口,而不是“本地主机”环回接口。您可能必须使用正确接口的IP/主机名编辑Accumulo配置目录中的监视器文件。

我可以通过手动应用此修补程序使Accumulo监视器绑定到所有网络接口:

conf/accumulo env.sh
中添加:

# Should the monitor bind to all network interfaces -- default: false
export ACCUMULO_MONITOR_BIND_ALL="true"
# ACCUMULO-1985 provide a way to use the scripts and still bind to all network interfaces
export ACCUMULO_MONITOR_BIND_ALL=${ACCUMULO_MONITOR_BIND_ALL:-"false"}
bin/config.sh
中添加:

# Should the monitor bind to all network interfaces -- default: false
export ACCUMULO_MONITOR_BIND_ALL="true"
# ACCUMULO-1985 provide a way to use the scripts and still bind to all network interfaces
export ACCUMULO_MONITOR_BIND_ALL=${ACCUMULO_MONITOR_BIND_ALL:-"false"}
并修改
bin/start server.sh
以匹配:

SOURCE="${BASH_SOURCE[0]}"
while [ -h "$SOURCE" ]; do # resolve $SOURCE until the file is no longer a symlink
   bin="$( cd -P "$( dirname "$SOURCE" )" && pwd )"
   SOURCE="$(readlink "$SOURCE")"
   [[ $SOURCE != /* ]] && SOURCE="$bin/$SOURCE" # if $SOURCE was a relative symlink, we need to resolve it relative to the path where the symlink file was located
done
bin="$( cd -P "$( dirname "$SOURCE" )" && pwd )"
# Stop: Resolve Script Directory

. "$bin"/config.sh

HOST="$1"
host "$1" >/dev/null 2>/dev/null
if [ $? -ne 0 ]; then
   LOGHOST="$1"
else
   LOGHOST=$(host "$1" | head -1 | cut -d' ' -f1)
fi
ADDRESS="$1"
SERVICE="$2"
LONGNAME="$3"
if [ -z "$LONGNAME" ]; then
   LONGNAME="$2"
fi
SLAVES=$( wc -l < ${ACCUMULO_HOME}/conf/slaves )

IFCONFIG=/sbin/ifconfig
if [ ! -x $IFCONFIG ]; then
   IFCONFIG='/bin/netstat -ie'
fi

# ACCUMULO-1985 Allow monitor to bind on all interfaces
if [ ${SERVICE} == "monitor" -a ${ACCUMULO_MONITOR_BIND_ALL} == "true" ]; then
    ADDRESS="0.0.0.0"
fi

ip=$($IFCONFIG 2>/dev/null| grep inet[^6] | awk '{print $2}' | sed 's/addr://' | grep -v 0.0.0.0 | grep -v 127.0.0.1 | head -n 1)
if [ $? != 0 ]
then
   ip=$(python -c 'import socket as s; print s.gethostbyname(s.getfqdn())')
fi

if [ "$HOST" = "localhost" -o "$HOST" = "`hostname`" -o "$HOST" = "$ip" ]; then
   PID=$(ps -ef | egrep ${ACCUMULO_HOME}/.*/accumulo.*.jar | grep "Main $SERVICE" | grep -v grep | awk {'print $2'} | head -1)
else
   PID=$($SSH $HOST ps -ef | egrep ${ACCUMULO_HOME}/.*/accumulo.*.jar | grep "Main $SERVICE" | grep -v grep | awk {'print $2'} | head -1)
fi

if [ -z $PID ]; then
   echo "Starting $LONGNAME on $HOST"
   if [ "$HOST" = "localhost" -o "$HOST" = "`hostname`" -o "$HOST" = "$ip" ]; then
      #${bin}/accumulo ${SERVICE} --address $1 >${ACCUMULO_LOG_DIR}/${SERVICE}_${LOGHOST}.out 2>${ACCUMULO_LOG_DIR}/${SERVICE}_${LOGHOST}.err & 
      ${bin}/accumulo ${SERVICE} --address ${ADDRESS} >${ACCUMULO_LOG_DIR}/${SERVICE}_${LOGHOST}.out 2>${ACCUMULO_LOG_DIR}/${SERVICE}_${LOGHOST}.err & 
      MAX_FILES_OPEN=$(ulimit -n)
   else
      #$SSH $HOST "bash -c 'exec nohup ${bin}/accumulo ${SERVICE} --address $1 >${ACCUMULO_LOG_DIR}/${SERVICE}_${LOGHOST}.out 2>${ACCUMULO_LOG_DIR}/${SERVICE}_${LOGHOST}.err' &"
      $SSH $HOST "bash -c 'exec nohup ${bin}/accumulo ${SERVICE} --address ${ADDRESS} >${ACCUMULO_LOG_DIR}/${SERVICE}_${LOGHOST}.out 2>${ACCUMULO_LOG_DIR}/${SERVICE}_${LOGHOST}.err' &"
      MAX_FILES_OPEN=$($SSH $HOST "/usr/bin/env bash -c 'ulimit -n'") 
   fi

   if [ -n "$MAX_FILES_OPEN" ] && [ -n "$SLAVES" ] ; then
      if [ "$SLAVES" -gt 10 ] && [ "$MAX_FILES_OPEN" -lt 65536 ]; then
         echo "WARN : Max files open on $HOST is $MAX_FILES_OPEN, recommend 65536"
      fi
   fi
else
   echo "$HOST : $LONGNAME already running (${PID})"
fi
SOURCE=“${BASH\u SOURCE[0]}”
而[-h“$SOURCE”];解析$SOURCE,直到文件不再是符号链接
bin=“$(cd-P”$(dirname“$SOURCE”)”&&pwd)
SOURCE=“$(readlink“$SOURCE”)”
[[$SOURCE!=/*]&&SOURCE=“$bin/$SOURCE”#如果$SOURCE是相对的符号链接,我们需要相对于符号链接文件所在的路径解析它
完成
bin=“$(cd-P”$(dirname“$SOURCE”)”&&pwd)
#停止:解析脚本目录
. “$bin”/config.sh
HOST=“$1”
主机“$1”>/dev/null 2>/dev/null
如果[$?-ne 0];然后
LOGHOST=“$1”
其他的
LOGHOST=$(主机“$1”|头部-1 |切割-d'-f1)
fi
地址=“1美元”
服务=“2美元”
LONGNAME=“$3”
如果[-z“$LONGNAME”];然后
LONGNAME=“$2”
fi
从机=$(wc-l<${ACCUMULO_HOME}/conf/SLAVES)
IFCONFIG=/sbin/IFCONFIG
如果[!-x$IFCONFIG];然后
IFCONFIG='/bin/netstat-ie'
fi
#ACCUMULO-1985允许监视器在所有接口上绑定
如果[${SERVICE}==“monitor”-a${ACCUMULO\u monitor\u BIND\u ALL}==“true”];然后
地址=“0.0.0.0”
fi
ip=$($IFCONFIG 2>/dev/null | grep inet[^6]| awk'{print$2}'| sed's/addr://'| grep-v0.0.0 | grep-v127.0.0.1 | head-n1)
如果[$?!=0]
然后
ip=$(python-c“将套接字作为s导入;打印s.gethostbyname(s.getfqdn())”)
fi
如果[“$HOST”=“localhost”-o“$HOST”=“`hostname`”-o“$HOST”=“$ip”];然后
PID=$(ps-ef | egrep${ACCUMULO_HOME}/*/ACCUMULO.*.jar | grep“Main$SERVICE”| grep-v grep | awk{'print$2'}| head-1)
其他的
PID=$($SSH$HOST ps-ef | egrep${acumulo_HOME}/*/acumulo.*.jar | grep“Main$SERVICE”| grep-v grep | awk{'print$2'}head-1)
fi
如果[-z$PID];然后
echo“在$HOST上启动$LONGNAME”
如果[“$HOST”=“localhost”-o“$HOST”=“`hostname`”-o“$HOST”=“$ip”];然后
#${bin}/accumulo${SERVICE}--地址$1>${accumulo_LOG_DIR}/${SERVICE}{LOGHOST}.out 2>${accumulo_LOG_DIR}/${SERVICE}{LOGHOST}.err&
${bin}/accumulo${SERVICE}--address${address}>${accumulo_LOG_DIR}/${SERVICE}{LOGHOST}.out 2>${accumulo_LOG_DIR}/${SERVICE}{LOGHOST}.err
MAX\u FILES\u OPEN=$(ulimit-n)
其他的
#$SSH$HOST“bash-c'exec nohup${bin}/accumulo${SERVICE}--地址$1>${accumulo_LOG_DIR}/${SERVICE}{LOGHOST}.out 2>${accumulo_LOG_DIR}/${SERVICE}{LOGHOST}.err
$SSH$HOST“bash-c'exec nohup${bin}/accumulo${SERVICE}--address${address}>${accumulo_LOG_DIR}/${SERVICE}{LOGHOST}.out 2>${accumulo_LOG_DIR}/${SERVICE}{LOGHOST}.err
MAX_FILES_OPEN=$($SSH$HOST)/usr/bin/env bash-c'ulimit-n')
fi
如果[-n“$MAX_FILES_OPEN”]&&[-n“$SLAVES”];然后
如果[“$SLAVES”-gt 10]&&[“$MAX_文件打开”-lt 65536];然后
echo“警告:$HOST上打开的最大文件数为$Max_files_open,建议使用65536”
fi
fi
其他的
echo“$HOST:$LONGNAME已在运行(${PID})”
fi

能否详细说明在何处/如何添加此设置?我没有“监视器”文件,示例中的accumulo-site.xml中也没有任何内容。您可以在accumulo的conf目录中创建监视器文件。它的格式与主文件或从文件相同。如果不存在,它将返回到主文件的内容。