Presto не удалось создать инжектор с коннектором локального файла

Я использую presto-server-0.149 в macOS 10.11. Просто для тестирования я запускаю один узел, и все в порядке. Когда я добавляю etc/catalog/localfile.properties с:

connector.name=localfile
presto-logs.http-request-log-location=/var/log/apache2/access_log

Я получаю следующую ошибку:

2016-07-04T12:02:45.435-0700    INFO    main    io.airlift.bootstrap.LifeCycleManager   Life cycle starting...
2016-07-04T12:02:45.435-0700    INFO    main    io.airlift.bootstrap.LifeCycleManager   Life cycle startup complete. System ready.
2016-07-04T12:02:45.436-0700    INFO    main    com.facebook.presto.metadata.CatalogManager -- Added catalog jmx using connector jmx --
2016-07-04T12:02:45.436-0700    INFO    main    com.facebook.presto.metadata.CatalogManager -- Loading catalog etc/catalog/localfile.properties --
2016-07-04T12:02:45.797-0700    INFO    main    Bootstrap   PROPERTY                               DEFAULT                   RUNTIME                   DESCRIPTION
2016-07-04T12:02:45.797-0700    INFO    main    Bootstrap   presto-logs.http-request-log.pattern   null                      null                      If log location is a directory this glob is used to match the file names in the directory
2016-07-04T12:02:45.797-0700    INFO    main    Bootstrap   presto-logs.http-request-log.location  var/log/http-request.log  var/log/http-request.log  Directory or file where http request logs are written
2016-07-04T12:02:45.797-0700    INFO    main    Bootstrap   
2016-07-04T12:02:45.797-0700    WARN    main    Bootstrap   UNUSED PROPERTIES
2016-07-04T12:02:45.797-0700    WARN    main    Bootstrap   presto-logs.http-request-log-location=/var/log/apache2/access_log
2016-07-04T12:02:45.797-0700    WARN    main    Bootstrap   
2016-07-04T12:02:45.989-0700    ERROR   main    com.facebook.presto.server.PrestoServer Unable to create injector, see the following errors:

1) Configuration property 'presto-logs.http-request-log-location=/var/log/apache2/access_log' was not used
  at io.airlift.bootstrap.Bootstrap.lambda$initialize$2(Bootstrap.java:235)

1 error
com.google.inject.CreationException: Unable to create injector, see the following errors:

1) Configuration property 'presto-logs.http-request-log-location=/var/log/apache2/access_log' was not used
  at io.airlift.bootstrap.Bootstrap.lambda$initialize$2(Bootstrap.java:235)

1 error
    at com.google.inject.internal.Errors.throwCreationExceptionIfErrorsExist(Errors.java:466)
    at com.google.inject.internal.InternalInjectorCreator.initializeStatically(InternalInjectorCreator.java:155)
    at com.google.inject.internal.InternalInjectorCreator.build(InternalInjectorCreator.java:107)
    at com.google.inject.Guice.createInjector(Guice.java:96)
    at io.airlift.bootstrap.Bootstrap.initialize(Bootstrap.java:242)
    at com.facebook.presto.localfile.LocalFileConnectorFactory.create(LocalFileConnectorFactory.java:64)
    at com.facebook.presto.connector.ConnectorManager.createConnector(ConnectorManager.java:315)
    at com.facebook.presto.connector.ConnectorManager.addCatalogConnector(ConnectorManager.java:169)
    at com.facebook.presto.connector.ConnectorManager.createConnection(ConnectorManager.java:162)
    at com.facebook.presto.connector.ConnectorManager.createConnection(ConnectorManager.java:148)
    at com.facebook.presto.metadata.CatalogManager.loadCatalog(CatalogManager.java:99)
    at com.facebook.presto.metadata.CatalogManager.loadCatalogs(CatalogManager.java:77)
    at com.facebook.presto.server.PrestoServer.run(PrestoServer.java:115)
    at com.facebook.presto.server.PrestoServer.main(PrestoServer.java:63)

ОБНОВЛЕНИЕ

Основываясь на ответе Дейна Сандстрема ниже, я смог исправить свою проблему. Оказалось, что документация fb для локального коннектора файлов неверна. А поскольку мне нужно было что-то кормить Presto для тестирования коннектора локальных файлов, я изменил путь к файлу конфигурации на собственный журнал запросов Presto:

presto-logs.http-request-log.location=/var/presto/data/var/log/http-request.log

person Laurent    schedule 04.07.2016    source источник


Ответы (1)


У вас есть опечатка в свойстве конфигурации. Должен быть:

presto-logs.http-request-log.location=/var/log/apache2/access_log

Кроме того, этот соединитель может обрабатывать только формат журнала http, созданный самим Presto, поэтому вам потребуется перенастроить сервер Apache2 для вывода в том же формате.

person Dain Sundstrom    schedule 04.07.2016
comment
Спасибо, Дейн. Это означает, что в документах тоже есть опечатка, потому что я вырезал и вставил все это прямо из них по адресу prestodb.io/docs/current/connector/localfile.html. Может быть, вы можете сообщить им об этом? Где мне узнать, какой формат использует PrestoDB. Я не могу найти нигде, где описано это требование. - person Laurent; 05.07.2016
comment
Also, this connector can only process the http log format created by Presto itself. Может быть, это только я, но разве название Local File Connector не вводит в заблуждение? Возможно, Log File Connector прояснил бы, что это не универсальный соединитель. - person Insac; 21.11.2016