2013-05-06 3 views
2

Это происходит в псевдораспределенном и распределенном режиме. Когда я пытаюсь запустить HBase, сначала начинаются все 3 службы - мастер, регион и начало кворума. Однако в течение минуты мастер останавливается. В журналах, это след -Мастер HBase останавливается с ошибкой «Connetion Refused»

2013-05-06 20:10:25,525 INFO org.apache.hadoop.ipc.Client: Retrying connect to server: <master/master_ip>:9000. Already tried 0 time(s). 
2013-05-06 20:10:26,528 INFO org.apache.hadoop.ipc.Client: Retrying connect to server: <master/master_ip>:9000. Already tried 1 time(s). 
2013-05-06 20:10:27,530 INFO org.apache.hadoop.ipc.Client: Retrying connect to server: <master/master_ip>:9000. Already tried 2 time(s). 
2013-05-06 20:10:28,533 INFO org.apache.hadoop.ipc.Client: Retrying connect to server: <master/master_ip>:9000. Already tried 3 time(s). 
2013-05-06 20:10:29,535 INFO org.apache.hadoop.ipc.Client: Retrying connect to server: <master/master_ip>:9000. Already tried 4 time(s). 
2013-05-06 20:10:30,538 INFO org.apache.hadoop.ipc.Client: Retrying connect to server: <master/master_ip>:9000. Already tried 5 time(s). 
2013-05-06 20:10:31,540 INFO org.apache.hadoop.ipc.Client: Retrying connect to server: <master/master_ip>:9000. Already tried 6 time(s). 
2013-05-06 20:10:32,543 INFO org.apache.hadoop.ipc.Client: Retrying connect to server: <master/master_ip>:9000. Already tried 7 time(s). 
2013-05-06 20:10:33,544 INFO org.apache.hadoop.ipc.Client: Retrying connect to server: <master/master_ip>:9000. Already tried 8 time(s). 
2013-05-06 20:10:34,547 INFO org.apache.hadoop.ipc.Client: Retrying connect to server: <master/master_ip>:9000. Already tried 9 time(s). 
2013-05-06 20:10:34,550 FATAL org.apache.hadoop.hbase.master.HMaster: Unhandled exception. Starting shutdown. 
java.net.ConnectException: Call to <master/master_ip>:9000 failed on connection exception: java.net.ConnectException: Connection refused 
     at org.apache.hadoop.ipc.Client.wrapException(Client.java:1179) 
     at org.apache.hadoop.ipc.Client.call(Client.java:1155) 
     at org.apache.hadoop.ipc.RPC$Invoker.invoke(RPC.java:226) 
     at $Proxy9.getProtocolVersion(Unknown Source) 
     at org.apache.hadoop.ipc.RPC.getProxy(RPC.java:398) 
     at org.apache.hadoop.ipc.RPC.getProxy(RPC.java:384) 
     at org.apache.hadoop.hdfs.DFSClient.createRPCNamenode(DFSClient.java:132) 
     at org.apache.hadoop.hdfs.DFSClient.<init>(DFSClient.java:259) 
     at org.apache.hadoop.hdfs.DFSClient.<init>(DFSClient.java:220) 
     at org.apache.hadoop.hdfs.DistributedFileSystem.initialize(DistributedFileSystem.java:89) 
     at org.apache.hadoop.fs.FileSystem.createFileSystem(FileSystem.java:1611) 
     at org.apache.hadoop.fs.FileSystem.access$300(FileSystem.java:68) 
     at org.apache.hadoop.fs.FileSystem$Cache.getInternal(FileSystem.java:1645) 
     at org.apache.hadoop.fs.FileSystem$Cache.get(FileSystem.java:1627) 
     at org.apache.hadoop.fs.FileSystem.get(FileSystem.java:254) 
     at org.apache.hadoop.fs.Path.getFileSystem(Path.java:183) 
     at org.apache.hadoop.hbase.util.FSUtils.getRootDir(FSUtils.java:363) 
     at org.apache.hadoop.hbase.master.MasterFileSystem.<init>(MasterFileSystem.java:86) 
     at org.apache.hadoop.hbase.master.HMaster.finishInitialization(HMaster.java:368) 
     at org.apache.hadoop.hbase.master.HMaster.run(HMaster.java:301) 
Caused by: java.net.ConnectException: Connection refused 
     at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method) 
     at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:592) 
     at org.apache.hadoop.net.SocketIOWithTimeout.connect(SocketIOWithTimeout.java:206) 
     at org.apache.hadoop.net.NetUtils.connect(NetUtils.java:519) 
     at org.apache.hadoop.net.NetUtils.connect(NetUtils.java:484) 
     at org.apache.hadoop.ipc.Client$Connection.setupConnection(Client.java:468) 
     at org.apache.hadoop.ipc.Client$Connection.setupIOstreams(Client.java:575) 
     at org.apache.hadoop.ipc.Client$Connection.access$2300(Client.java:212) 
     at org.apache.hadoop.ipc.Client.getConnection(Client.java:1292) 
     at org.apache.hadoop.ipc.Client.call(Client.java:1121) 
     ... 18 more 

шагов я взял, чтобы исправить это без какого-либо успеха - понижено из распределенного режима псевдо-распределенный режим. Тот же вопрос. - попробовал автономный режим - не повезло - использовал тот же пользователь (hadoop) как для hadoop, так и для hbase. Установите пароль без пароля ssh для hadoop. - та же проблема. - отредактировал файл/etc/hosts и изменил имя localhost/servername, а также 127.0.0.1 на фактический IP-адрес, ссылающийся на SO и разные источники. Еще одна проблема. - перезагрузил сервер

Вот файлы conf.

HBase-site.xml

<configuration> 
<property> 
    <name>hbase.rootdir</name> 
    <value>hdfs://<master>:9000/hbase</value> 
     <description>The directory shared by regionservers.</description> 
</property> 

<property> 
     <name>hbase.cluster.distributed</name> 
     <value>true</value> 
</property> 

<property> 
     <name>hbase.zookeeper.quorum</name> 
     <value><master></value> 
</property> 

<property> 
     <name>hbase.master</name> 
     <value><master>:60000</value> 
     <description>The host and port that the HBase master runs at.</description> 
</property> 

<property> 
     <name>dfs.replication</name> 
     <value>1</value> 
     <description>The replication count for HLog and HFile storage. Should not be greater than HDFS datanode count.</description> 
</property> 

</configuration> 

/и т.д./файл хостов

127.0.0.1 localhost.localdomain LOCALHOST :: 1 localhost6.localdomain6 localhost6 .

Что я здесь делаю неправильно?

Hadoop Версия - Hadoop 0.20.2-cdh3u5 HBase Version - Version 0.90.6-cdh3u5

ответ

5

Глядя на вас конфигурационный файл, я предполагаю, что вы используете реальное имя хоста в конфигурационных файлах. Добавьте имя хоста вместе с IP-адресом машины в файл/etc/hosts, если это так. Также убедитесь, что он совпадает с именем хоста в файле core-site.xml Hadoop. Правильное разрешение имен жизненно важно для правильного функционирования HBase.

Если у вас по-прежнему возникают проблемы, выполните указанные ниже действия: here. Я попытался подробно объяснить процедуру и, надеюсь, вы сможете ее запустить, если внимательно следовать всем шагам.

НТН

+0

Спасибо Tariq. Я думаю, что в моем случае одна проблема: я использовал полное доменное имя в одном случае (Hive) и только короткое имя хоста в другом случае (Hadoop). Я везде назвал имена серверов. Я изменил все на короткие имена хостов. Я также проверил файл hosts, но это выглядело отлично .. – Sumod

+0

Добро пожаловать в Sumod. Я вижу ... собственно правильное разрешение имен жизненно важно для правильного функционирования кластера. – Tariq

-1

Я считаю, что вы пытаетесь использовать режим псевдо-распределенной. Я получаю ту же ошибку, пока не фиксируется 3 вещи:

  1. местные/и т.д./хосты файл

$ кошки/и т.д./хосты

127.0.0.1 localhost 
255.255.255.255 broadcasthost 
::1    localhost 
fe80::1%lo0 localhost 
172.20.x.x my.hostname.com 
  1. вместо того, чтобы указывать на имя хоста, укажите на localhost в hbase-env.sh

  2. Исправить мой путь к классу A. Убедитесь, что Hadoop находится в пути к классам (через hbase-env.ш)

    экспорт JAVA_HOME = ваш путь к Java дома экспорта HADOOP_HOME = ваш путь к Hadoop домой экспорта HBASE_HOME = ваш путь к Hbase домой

    экспорт HBASE_CLASSPATH = ваш путь к HBase дома/конф: ваш путь к Hadoop дом/конф

B. При запуске моей программы, я редактировал следующий Баш скрипт из HBase: The Definitive Guide (бен/run.sh) $ Grep -v # бен/run.sh

bin=`dirname "$0"` 
bin=`cd "$bin">/dev/null; pwd` 

    echo "usage: $(basename $0) <example-name>" 
    exit 1; 
fi 

MVN="mvn" 
if [ "$MAVEN_HOME" != "" ]; then 
    MVN=${MAVEN_HOME}/bin/mvn 
fi 

CLASSPATH="${HBASE_CONF_DIR}" 

if [ -d "${bin}/../target/classes" ]; then 
    CLASSPATH=${CLASSPATH}:${bin}/../target/classes 
fi 

cpfile="${bin}/../target/cached_classpath.txt" 
if [ ! -f "${cpfile}" ]; then 
    ${MVN} -f "${bin}/../pom.xml" dependency:build-classpath -Dmdep.outputFile="${cpfile}" &> /dev/null 
fi 
CLASSPATH=`hbase classpath`:${CLASSPATH}:`cat "${cpfile}"` 

JAVA_HOME=your path to java home 
JAVA=$JAVA_HOME/bin/java 
JAVA_HEAP_MAX=-Xmx512m 

echo "Classpath is $CLASSPATH" 
"$JAVA" $JAVA_HEAP_MAX -classpath "$CLASSPATH" "[email protected]" 

Стоит отметить, что я использую Mac. Я считаю, что эти инструкции будут работать и для Linux.