2013-08-12 3 views
0

У меня есть экземпляр ecaz2 amazon, в котором я запускаю инструмент, называемый seqware. Это в основном механизм запросов для геномных данных, в которых используется hbase-сервер. Я работаю на ami, который поставляется с hbase, настроенным в псевдораспределенном режиме. Однако я хотел бы использовать его в полностью распределенном режиме. Поэтому я создал кластер с двумя узлами. Один узел является ведущим, а другой - подчиненным. Я могу запускать примеры приложений в полностью распределенном режиме и все такое. Чтобы сделать seqware использующим мою полностью настроенную настройку, ей нужны 6 вещей: кворум zookeeper, клиентский порт zookeeper, мастер hbase, обработчик отслеживаемых изображений, fs и fs по умолчанию fs. Которые указаны в файле настроек. Я его настроить в файле, как так:Не разрешено разрешение ssh. HBase Hadoop

HBASE.ZOOKEEPER.QUORUM=ip-10-x.x.x 
HBASE.ZOOKEEPER.PROPERTY.CLIENTPORT=2181 
HBASE.MASTER=ip-10-x.x.x:60010 
MAPRED.JOB.TRACKER=ip-10-x.x.x:9001 
FS.DEFAULT.NAME=hdfs://ip-10-x.x.x:9000 
FS.DEFAULTFS=hdfs://ip-10-x.x.x:9000 

Однако, когда я начал использовать двигатель запроса, я получаю исключение потери связи зоопарка. Я имел открытый ключ для мастера в authorized_keys для seqware и наоборот, однако, я не мог, как SSH так

ssh ip-10.x.x.x 

или даже с помощью открытого DNS:

ssh {public DNS of instance} 

где ф -10.xxx является IP-адрес, например, я должен был сделать это, используя имя пользователя:

ssh {username}@ip-10-x.x.x 

или

ssh [email protected]{public DNS of instance} 

Я могу SSH без имени пользователя от ведущего к ведомому Hadoop экземпляра и наоборот, и у меня есть адрес IP-в файлах конфигурация без имени пользователя

I судимых добавляя имя пользователя перед адресом внутрибрюшинны в настройках , думая, что у него 99% шанс, что это не сработает, и я не был разочарован, у меня все еще было то же исключение

Что мне нужно сделать, чтобы я мог ssh из экземпляра seqware в hadoop и hbase master, не указывая имя пользователя, как между мастером и подчиненными узлами.

Это как Zookeeper настроен на мастер Hadoop:

<configuration> 
<property> 
    <name>hbase.rootdir</name> 
    <value>hdfs://ip-10-x.x.x:9000/hbase</value> 
    </property> 

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

    <property> 
    <name>hbase.zookeeper.quorum</name> 
    <value>ip-10-x.x.x</value> 
    </property> 

    <property> 
    <name>dfs.replication</name> 
    <value>2</value> 
    </property> 

    <property> 
    <name>hbase.zookeeper.property.dataDir</name> 
    <value>/home/{username}/hbase/zookeeper</value> 
    </property> 

    <property> 
    <name>hbase.zookeeper.property.clientPort</name> 
    <value>2181</value> 
    </property> 
</configuration> 

Я не могу уверенно говорить о внутренней реализации seqware, но я знаю, что он использует файл настроек, чтобы установить местоположение zookeepr и hbase master. В по умолчанию, псевдо-распределенной рабочей установки на это были значения для переменных я упоминал ранее:

HBASE.ZOOKEEPER.QUORUM=localhost 
HBASE.ZOOKEEPER.PROPERTY.CLIENTPORT=2181 
HBASE.MASTER=localhost:60000 
MAPRED.JOB.TRACKER=localhost:8021 
FS.DEFAULT.NAME=hdfs://localhost:8020 
FS.DEFAULTFS=hdfs://localhost:8020 

Это то, что выглядит файл zoo.cfg как:

# Licensed to the Apache Software Foundation (ASF) under one or more 
# contributor license agreements. See the NOTICE file distributed with 
# this work for additional information regarding copyright ownership. 
# The ASF licenses this file to You under the Apache License, Version 2.0 
# (the "License"); you may not use this file except in compliance with 
# the License. You may obtain a copy of the License at 
# 
#  http://www.apache.org/licenses/LICENSE-2.0 
# 
# Unless required by applicable law or agreed to in writing, software 
# distributed under the License is distributed on an "AS IS" BASIS, 
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 
# See the License for the specific language governing permissions and 
# limitations under the License. 

maxClientCnxns=50 
# The number of milliseconds of each tick 
tickTime=2000 
# The number of ticks that the initial 
# synchronization phase can take 
initLimit=10 
# The number of ticks that can pass between 
# sending a request and getting an acknowledgement 
syncLimit=5 
# the directory where the snapshot is stored. 
dataDir=/var/lib/zookeeper 
# the port at which the clients will connect 
clientPort=2181 

Zookeeper StackTrace:

[[email protected] target]$ java -classpath seqware-distribution-0.13.6.8-qe-full.jar

com.github.seqware.queryengine.system.ReferenceCreator hg_19 keyValue_ref.out 
[SeqWare Query Engine] 0 [main] ERROR org.apache.hadoop.hbase.zookeeper.RecoverableZooKeeper - ZooKeeper exists failed after 3 retries 
[SeqWare Query Engine] 1 [main] ERROR org.apache.hadoop.hbase.zookeeper.ZooKeeperWatcher - hconnection Received unexpected KeeperException, re-throwing exception org.apache.zookeeper.KeeperException$ConnectionLossException: KeeperErrorCode = ConnectionLoss for /hbase/master at 
org.apache.zookeeper.KeeperException.create(KeeperException.java:99) at 
org.apache.zookeeper.KeeperException.create(KeeperException.java:51) at 
org.apache.zookeeper.ZooKeeper.exists(ZooKeeper.java:1021) 
at org.apache.hadoop.hbase.zookeeper.RecoverableZooKeeper.exists(RecoverableZooKeep‌​er.java:154) at    org.apache.hadoop.hbase.zookeeper.ZKUtil.watchAndCheckExists(ZKUtil.java:226)at   org.apache.hadoop.hbase.zookeeper.ZooKeeperNodeTracker.start(ZooKeeperNodeTracke‌​r.java:82) at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.setu‌​pZookeeperTrackers(HConnectionManager.java:580) 

08/13/2013 По-видимому, переменные, которые необходимо установить для удаленной установки hbase, не были теми, которые я редактировал, на основе констант seqware.Java-файл, они являются QE переменными: https://github.com/SeqWare/seqware/blob/develop/seqware-queryengine/src/main/java/com/github/seqware/queryengine/Constants.java

Я редактировал их таким образом:

# SEQWARE QUERY ENGINE AND GENERAL HADOOP SETTINGS 
# 
HBASE.ZOOKEEPER.QUORUM=localhost 
HBASE.ZOOKEEPER.PROPERTY.CLIENTPORT=2181 
HBASE.MASTER=localhost:60000 
MAPRED.JOB.TRACKER=localhost:8021 
FS.DEFAULT.NAME=hdfs://localhost:8020 
FS.DEFAULTFS=hdfs://localhost:8020 
FS.HDFS.IMPL=org.apache.hadoop.hdfs.DistributedFileSystem 
# 
# SEQWARE QUERY ENGINE SETTINGS 
# 
QE_NAMESPACE=SeqWareQE 
QE_DEVELOPMENT_DEPENDENCY=file:/home/seqware/jars/seqware-distribution-0.13.6.5-qe-full.jar 
QE_PERSIST=true 
QE_HBASE_REMOTE_TESTING=true 
QE_HBASE_PROPERTIES=HBOOT 
QE_HBOOT_HBASE_ZOOKEEPER_QUORUM=ip-10-x.x.x.ec2.internal 
QE_HBOOT_HBASE_ZOOKEEPER_PROPERTY_CLIENTPORT=2181 
QE_HBOOT_HBASE_MASTER=ip-10-x.x.x.ec2.internal:60010 
QE_HBOOT_MAPRED_JOB_TRACKER=ip-10-x.x.x.ec2.internal:9001 
QE_HBOOT_FS_DEFAULT_NAME=hdfs://ip-10-x.x.x.ec2.internal:9000 
QE_HBOOT_FS_DEFAULTFS=hdfs://ip-10-x.x.x.ec2.internal:9000 
QE_HBOOT_FS_HDFS_IMPL=org.apache.hadoop.hdfs.DistributedFileSystem 

Я не получаю больше exceptiona зоопарка, но команда для создания рабочего пространства просто висит в течение нескольких минут пока я не остановлю его.

Я нашел это в своем журнале zookepper, я не уверен, означает ли это, что zookeeper разбился или он потерял связь с клиентами, которые он заявляет. Я не знаю, почему он принимает подключение сокета из портов 36997,36998, 37000 и 37034, и я даже не получил разрешения на них на группе безопасности ec2:

2013-08-13 16:44:55,560 INFO org.apache.zookeeper.server.ZooKeeperServer: Established session 0x1407890cb630000 with negotiated timeout 180000 for client /10.x.x.x:36997 
2013-08-13 16:44:57,633 INFO org.apache.zookeeper.server.NIOServerCnxnFactory: Accepted socket connection from /10.x.x.x:36998 
2013-08-13 16:44:57,662 INFO org.apache.zookeeper.server.ZooKeeperServer: Client attempting to establish new session at /10.x.x.x:36998 
2013-08-13 16:44:57,666 INFO org.apache.zookeeper.server.ZooKeeperServer: Established session 0x1407890cb630001 with negotiated timeout 180000 for client /10.x.x.x:36998 
2013-08-13 16:44:57,917 INFO org.apache.zookeeper.server.PrepRequestProcessor: Got user-level KeeperException when processing sessionid:0x1407890cb630001 type:create cxid:0x8 zxid:0x219 txntype:-1 reqpath:n/a Error Path:/hbase/online-snapshot/acquired Error:KeeperErrorCode = NodeExists for /hbase/online-snapshot/acquired 
2013-08-13 16:44:58,450 INFO org.apache.zookeeper.server.PrepRequestProcessor: Got user-level KeeperException when processing sessionid:0x1407890cb630000 type:create cxid:0xb zxid:0x21a txntype:-1 reqpath:n/a Error Path:/hbase/master Error:KeeperErrorCode = NodeExists for /hbase/master 
2013-08-13 16:45:00,927 INFO org.apache.zookeeper.server.NIOServerCnxnFactory: Accepted socket connection from /10.x.x.x:37000 
2013-08-13 16:45:00,928 INFO org.apache.zookeeper.server.ZooKeeperServer: Client attempting to establish new session at /10.x.x.x:37000 
2013-08-13 16:45:00,930 INFO org.apache.zookeeper.server.ZooKeeperServer: Established session 0x1407890cb630002 with negotiated timeout 180000 for client /10.x.x.x:37000 
2013-08-13 16:45:02,165 INFO org.apache.zookeeper.server.PrepRequestProcessor: Got user-level KeeperException when processing sessionid:0x1407890cb630000 type:create cxid:0x24 zxid:0x221 txntype:-1 reqpath:n/a Error Path:/hbase/online-snapshot/acquired Error:KeeperErrorCode = NodeExists for /hbase/online-snapshot/acquired 
2013-08-13 16:45:14,172 INFO org.apache.zookeeper.server.NIOServerCnxnFactory: Accepted socket connection from /10.x.x.x:37034 
2013-08-13 16:45:14,173 INFO org.apache.zookeeper.server.ZooKeeperServer: Client attempting to establish new session at /10.x.x.x:37034 
2013-08-13 16:45:14,178 INFO org.apache.zookeeper.server.ZooKeeperServer: Established session 0x1407890cb630003 with negotiated timeout 180000 for client /10.x.x.x:37034 
2013-08-13 16:47:51,000 INFO org.apache.zookeeper.server.ZooKeeperServer: Expiring session 0x1407800784a0003, timeout of 180000ms exceeded 
2013-08-13 16:47:51,001 INFO org.apache.zookeeper.server.ZooKeeperServer: Expiring session 0x1407800784a0001, timeout of 180000ms exceeded 
2013-08-13 16:47:51,001 INFO org.apache.zookeeper.server.ZooKeeperServer: Expiring session 0x1407800784a0000, timeout of 180000ms exceeded 
2013-08-13 16:47:51,001 INFO org.apache.zookeeper.server.ZooKeeperServer: Expiring session 0x1407800784a0002, timeout of 180000ms exceeded 
2013-08-13 16:47:51,001 INFO org.apache.zookeeper.server.PrepRequestProcessor: Processed session termination for sessionid: 0x1407800784a0003 
2013-08-13 16:47:51,001 INFO org.apache.zookeeper.server.PrepRequestProcessor: Processed session termination for sessionid: 0x1407800784a0001 
2013-08-13 16:47:51,001 INFO org.apache.zookeeper.server.PrepRequestProcessor: Processed session termination for sessionid: 0x1407800784a0000 
2013-08-13 16:47:51,002 INFO org.apache.zookeeper.server.PrepRequestProcessor: Processed session termination for sessionid: 0x1407800784a0002 

Я посмотрел на HBase веб-интерфейс, показывающий, что таблицы фактически создаются, но команды для создания никогда не возвращают ответ, они просто зависают. Hbase master web interface tables

HBase Web Interface

+0

С помощью которого пользователь выполняет команду ssh ip-10.x.x.x? Введите «который» в терминале и ответьте здесь. –

+0

Выполняется пользователем, называемым seqware. Это то, что я получаю, когда я печатаю то, что '[seqware @ master ~] $, которое Использование:/usr/bin/which [options] [-] имя_программы [...] Опции: --version, - [vV] Версия для печати и выход успешно завершены. --help, распечатайте эту справку и сходите успешно. . . . ' Это не sudoer, но у меня такая же проблема для экземпляра, который запускает мастер hadoop. – Amre

+0

Итак, где ваша проблема сейчас? Только ошибка ssh или ошибка соединения Zookeeper? Потому что, я думаю, ssh не требуется для подключения к серверу zookeeper. –

ответ

0

Попробуйте изменить,

<property> 
    <name>hbase.zookeeper.quorum</name> 
    <value>ip-10-x.x.x</value> 
</property> 

этому

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

Затем перезапустите HBase и Zookeeper

го, также предполагают, что это, как конфигурации seqware

# SEQWARE QUERY ENGINE AND GENERAL HADOOP SETTINGS 
# 
HBASE.ZOOKEEPER.QUORUM=localhost 
HBASE.ZOOKEEPER.PROPERTY.CLIENTPORT=2181 
HBASE.MASTER=localhost:60000 
MAPRED.JOB.TRACKER=localhost:8021 
FS.DEFAULT.NAME=hdfs://localhost:8020 
FS.DEFAULTFS=hdfs://localhost:8020 
FS.HDFS.IMPL=org.apache.hadoop.hdfs.DistributedFileSystem 
# 
# SEQWARE QUERY ENGINE SETTINGS 
# 
QE_NAMESPACE=SeqWareQE 
QE_DEVELOPMENT_DEPENDENCY=file:/home/seqware/jars/seqware-distribution-0.13.6.5-qe-full.jar 
QE_PERSIST=true 
QE_HBASE_REMOTE_TESTING=true 
QE_HBASE_PROPERTIES=HBOOT 
QE_HBOOT_HBASE_ZOOKEEPER_QUORUM=ip-10-x.x.x.ec2.internal 
QE_HBOOT_HBASE_ZOOKEEPER_PROPERTY_CLIENTPORT=2181 
QE_HBOOT_HBASE_MASTER=ip-10-x.x.x.ec2.internal:60010 
QE_HBOOT_MAPRED_JOB_TRACKER=ip-10-x.x.x.ec2.internal:9001 
QE_HBOOT_FS_DEFAULT_NAME=hdfs://ip-10-x.x.x.ec2.internal:9000 
QE_HBOOT_FS_DEFAULTFS=hdfs://ip-10-x.x.x.ec2.internal:9000 
QE_HBOOT_FS_HDFS_IMPL=org.apache.hadoop.hdfs.DistributedFileSystem 

Кроме того, попробуйте направляющие here и here.

Вы также упоминали о возможностях портов Zookeeper, которые не были открыты. Для тестирования кукол, я предлагаю отключить брандмауэр. Потому что раньше я видел несколько проблем, связанных с тем, что брандмауэр блокировал важные порты.

+0

Я внес изменения, но я все равно получаю ту же ошибку. – Amre

+0

Я получаю его, по-видимому, для старой настройки seqware, а теперь – Amre

+0

царапины, что последний, по-видимому, мне пришлось перезагрузить его – Amre

Смежные вопросы