У меня есть экземпляр 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(RecoverableZooKeeper.java:154) at org.apache.hadoop.hbase.zookeeper.ZKUtil.watchAndCheckExists(ZKUtil.java:226)at org.apache.hadoop.hbase.zookeeper.ZooKeeperNodeTracker.start(ZooKeeperNodeTracker.java:82) at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.setupZookeeperTrackers(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 веб-интерфейс, показывающий, что таблицы фактически создаются, но команды для создания никогда не возвращают ответ, они просто зависают.
С помощью которого пользователь выполняет команду ssh ip-10.x.x.x? Введите «который» в терминале и ответьте здесь. –
Выполняется пользователем, называемым seqware. Это то, что я получаю, когда я печатаю то, что '[seqware @ master ~] $, которое Использование:/usr/bin/which [options] [-] имя_программы [...] Опции: --version, - [vV] Версия для печати и выход успешно завершены. --help, распечатайте эту справку и сходите успешно. . . . ' Это не sudoer, но у меня такая же проблема для экземпляра, который запускает мастер hadoop. – Amre
Итак, где ваша проблема сейчас? Только ошибка ssh или ошибка соединения Zookeeper? Потому что, я думаю, ssh не требуется для подключения к серверу zookeeper. –