2014-03-18 4 views
1

Есть ли у кого-нибудь опыт работы с DeepDive? Он включает в себя установку Java, Python 2.x, PostgreSQL и SBT, а затем пакет DeepDive. Я не очень хорошо знаком с PostgreSQL, но я собираюсь изучить их одновременно.Установка Deepdive, ошибка PostgreSQL

Я работаю над Ubuntu 12.04 и PostgreSQL 9.1. Я сделал суперпользователь для PostgreSQL, используя команду в оболочке createuser tom. Стоит отметить, что мое имя пользователя Ubuntu также tom. Затем я изменил пароль для томом с нижеследующим:

$su - postgres 
$psql 
--> ALTER USER tom WITH password 'pa$$w0RD'; 

DeepDive поставляется с скриптом, который дает мне следующую ошибку (я не включая все другой текст, который не включает в себя ошибку).

[info] LogisticRegressionApp: 
[info] - should work *** FAILED *** 
[info] org.postgresql.util.PSQLException: FATAL: password authentication failed for user "tom" 
[info] at org.postgresql.core.v3.ConnectionFactoryImpl.doAuthentication(ConnectionFactoryImpl.java:398) 
[info] at org.postgresql.core.v3.ConnectionFactoryImpl.openConnectionImpl(ConnectionFactoryImpl.java:173) 
[info] at org.postgresql.core.ConnectionFactory.openConnection(ConnectionFactory.java:64) 
[info] at org.postgresql.jdbc2.AbstractJdbc2Connection.<init>(AbstractJdbc2Connection.java:136) 
[info] at org.postgresql.jdbc3.AbstractJdbc3Connection.<init>(AbstractJdbc3Connection.java:29) 
[info] at org.postgresql.jdbc3g.AbstractJdbc3gConnection.<init>(AbstractJdbc3gConnection.java:21) 
[info] at org.postgresql.jdbc4.AbstractJdbc4Connection.<init>(AbstractJdbc4Connection.java:31) 
[info] at org.postgresql.jdbc4.Jdbc4Connection.<init>(Jdbc4Connection.java:24) 
[info] at org.postgresql.Driver.makeConnection(Driver.java:393) 
[info] at org.postgresql.Driver.connect(Driver.java:267) 
[info] ... 

Тогда в конце:

[info] Tests: succeeded 68, failed 2, canceled 0, ignored 0, pending 3 
[info] *** 2 TESTS FAILED *** 
[error] Failed tests: 
[error]  org.deepdive.test.integration.LogisticRegressionApp 
[error]  org.deepdive.test.unit.InferenceManagerSpec 
[error] Error during tests: 
[error]  org.deepdive.test.unit.PostgresInferenceDataStoreSpec 
[error]  org.deepdive.test.unit.PostgresExtractionDataStoreSpec 
[error] (test:test) sbt.TestsFailedException: Tests unsuccessful 
[error] Total time: 10 s, completed Mar 17, 2014 8:51:47 PM 

Если кто-то может мне точку в каком-то направлении, я ценю это.

ОК, я исправил часть проблемы, но это привело к другой проблеме. Вот что я сделал. test.sh содержит следующие строки:

export PGUSER=${PGUSER:-`whoami`} 
export PGPASSWORD=${PGPASSWORD:-} 

, который я изменил

export PGUSER=tom 
export PGPASSWORD=pa$$w0rd 

Теперь тест продолжается дальше, и попадает в точку, где она печатает следующее:

06:49:40.953 [default-dispatcher-7][$a][LocalActorRef] INFO Message [org.deepdive.calibration.CalibrationDataWriter$WriteCalibrationData] from Actor[akka://deepdive/temp/$a] to Actor[akka://deepdive/user/inferenceManager/$a#-1669803870] was not delivered. [1] dead letters encountered. This logging can be turned off or adjusted with configuration settings 'akka.log-dead-letters' and 'akka.log-dead-letters-during-shutdown'. 
06:49:40.955 [default-dispatcher-7][$a][LocalActorRef] INFO Message [akka.actor.PoisonPill$] from Actor[akka://deepdive/user/inferenceManager#-354953956] to Actor[akka://deepdive/user/inferenceManager/$a#-1669803870] was not delivered. [2] dead letters encountered. This logging can be turned off or adjusted with configuration settings 'akka.log-dead-letters' and 'akka.log-dead-letters-during-shutdown'. 
06:49:40.957 [default-dispatcher-5][inferenceManager][InferenceManager$PostgresInferenceManager] INFO Starting 
06:49:40.958 [default-dispatcher-6][factorGraphBuilder][FactorGraphBuilder$PostgresFactorGraphBuilder] INFO Starting 
06:50:06.679 [TaskManagerSpec-scheduler-1][akka://TaskManagerSpec/user/$$d][TaskManager] INFO Memory usage: 233/982MB (max: 982MB) 
06:50:06.699 [TaskManagerSpec-scheduler-1][akka://TaskManagerSpec/user/$$e][TaskManager] INFO Memory usage: 233/982MB (max: 982MB) 
06:50:06.709 [TaskManagerSpec-scheduler-1][akka://TaskManagerSpec/user/$$f][TaskManager] INFO Memory usage: 233/982MB (max: 982MB) 
06:50:06.738 [TaskManagerSpec-scheduler-1][akka://TaskManagerSpec/user/$$g][TaskManager] INFO Memory usage: 233/982MB (max: 982MB) 
06:50:06.759 [TaskManagerSpec-scheduler-1][akka://TaskManagerSpec/user/$$h][TaskManager] INFO Memory usage: 233/982MB (max: 982MB) 
06:50:06.780 [TaskManagerSpec-scheduler-1][akka://TaskManagerSpec/user/$$i][TaskManager] INFO Memory usage: 233/982MB (max: 982MB) 
06:50:06.799 [TaskManagerSpec-scheduler-1][akka://TaskManagerSpec/user/$$j][TaskManager] INFO Memory usage: 233/982MB (max: 982MB) 
06:50:07.396 [default-dispatcher-5][taskManager][TaskManager] INFO Memory usage: 233/982MB (max: 982MB) 

И это продолжается до бесконечности. Ключ, кажется, является первой строкой, о том, что сообщение не доставляется между двумя Актерами.

Как я отметил в комментариях ниже, я проверил файл postgresql.conf и раскомментировать следующую строку

listen_addresses = 'localhost' 
listen on; 

Это разрешенная один из первоначальных ошибок, но не вторая ошибка.

В пункте 2 ответа Патрика, вот параметры из файла pg_hba.conf:

# Database administrative login by Unix domain socket 
local all    postgres        peer 

# TYPE DATABASE  USER   ADDRESS     METHOD 

# "local" is for Unix domain socket connections only 
local all    all          peer 
# IPv4 local connections: 
host all    all    127.0.0.1/32   md5 
# IPv6 local connections: 
host all    all    ::1/128     md5 

не опорная часть local all all все локальные соединения?

+0

Возможно дублирование: http://stackoverflow.com/questions/2942485/psql-fatal-ident-authentication-failed-for -user-postgres – harmic

+0

Вы используете PostgreSQL на той же машине, с которой вы подключаетесь? Если это так, то это должно сработать. Можете ли вы войти в систему, используя 'psql -d (имя db) -h 127.0.0.1 -U tom -W', где имя db - это имя базы данных DeepDive? – Patrick

+0

Эта строка работает: 'psql -d deepdive_test -h 127.0.0.1 -U tom -W' –

ответ

0

Ошибка вы упоминаете может иметь несколько причин:

  1. Вы измененными postgresql.conf принимать входящие соединения TCP/IP? Проверьте параметр listen_addresses.

  2. Вы меняли pg_hba.conf? Здесь вам нужно настроить метод проверки подлинности для определения DeepDive и/или определения драйвера jdbc.

  3. И, наконец, может ли DeepDive подключиться к базе данных, к которой он подключается, с учетными данными, которые вы предоставили (или определение драйвера jdbc)?

Оба файлы конфигурации находятся в каталоге $ PGDATA, как правило, /etc/postgresql/9.3/main.

Обратите внимание: psql регистрируется при использовании сокетов unix по умолчанию (если вы не указали -h host_ip), а jdbc использует соединение TCP/IP. Попробуйте psql по TCP/IP, чтобы узнать, работает ли это. Если нет, работайте на 1, затем 2. Если это так, работайте над 2, затем 3.

+0

Упс - У меня postgresql 9.1 - исправлено это в OP. 'listen_addresses = 'localhost'' был закомментирован. Я раскололся. 'listen on;' –

+0

Это не должно иметь никакого отношения к проблемам подключения. – Patrick

+0

ОК, я пробовал шаг 1, но это не имеет значения в * новой * второй проблеме. Я никогда не касался pg_hba.conf, и я не совсем уверен, куда идти с этой частью. –

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