Как исправить не работающий плагин presto в AWS EMR

О

Я пытаюсь использовать плагин presto, такой как wyukawa/presto-fluentd, он работает на локальном хосте (mac os x), но не работает на Amazon EMR.

Деталь

на локальном хосте

Сначала я пробовал работать на локальном хосте (mac os x) и просто работал.

  • директория плагина

    reizist ...plugin/presto-fluentd $ pwd
    /usr/local/Cellar/presto/0.185/libexec/plugin/presto-fluentd
    reizist ...plugin/presto-fluentd $ ls -1
    fluency-1.3.0.jar
    guava-21.0.jar
    jackson-annotations-2.8.1.jar
    jackson-core-2.7.1.jar
    jackson-databind-2.7.1.jar
    jackson-dataformat-msgpack-0.8.12.jar
    jolokia-jvm-1.3.7-agent.jar
    log-0.148.jar
    msgpack-core-0.8.12.jar
    phi-accural-failure-detector-0.0.4.jar
    presto-fluentd-0.0.1.jar
    slf4j-api-1.7.22.jar
    
  • характеристики

    reizist ...libexec/etc $ pwd
    /usr/local/Cellar/presto/0.185/libexec/etc
    reizist ...libexec/etc $ ls -1
    catalog
    config.properties
    event-listener.properties
    jvm.config
    log.properties
    node.properties
    reizist ...libexec/etc $ cat event-listener.properties
    event-listener.name=presto-fluentd
    event-listener.fluentd-host=localhost
    event-listener.fluentd-port=24224
    event-listener.fluentd-tag=presto.query
    

слева: журнал presto, в центре: журнал fluentd, справа: presto-cli

на ЭМИ

Также я пробовал то же самое на EC2 на EMR, но это не сработало. Этот плагин правильно загружен, прослушиватель событий зарегистрирован, поэтому я чувствовать себя странно.

  • директория плагина

    [hadoop@ip-172-31-29-54 plugin]$ pwd
    /usr/lib/presto/plugin
    [hadoop@ip-172-31-29-54 plugin]$ ls
    accumulo   cassandra     jmx        memory   mysql           redis                    tpch
    atop       example-http  kafka      ml       postgresql      resource-group-managers
    blackhole  hive-hadoop2  localfile  mongodb  presto-fluentd  teradata-functions
    [hadoop@ip-172-31-29-54 plugin]$ ls -1 presto-fluentd/
    fluency-1.3.0.jar
    guava-21.0.jar
    jackson-annotations-2.8.1.jar
    jackson-core-2.7.1.jar
    jackson-databind-2.7.1.jar
    jackson-dataformat-msgpack-0.8.12.jar
    log-0.148.jar
    msgpack-core-0.8.12.jar
    phi-accural-failure-detector-0.0.4.jar
    presto-fluentd-0.0.1.jar
    slf4j-api-1.7.22.jar
    
  • характеристики

    [hadoop@ip-172-31-29-54 presto]$ pwd
    /etc/presto
    [hadoop@ip-172-31-29-54 presto]$ tree .
    .
    ├── conf -> /etc/alternatives/presto-conf
    ├── conf.dist
    │   ├── catalog
    │   │   ├── hive.properties
    │   │   └── mysql.properties
    │   ├── config.properties
    │   ├── jvm.config
    │   ├── log.properties
    │   ├── node.properties
    │   └── presto-env.sh
    └── event-listener.properties
    
    3 directories, 8 files
    [hadoop@ip-172-31-29-54 presto]$ cat event-listener.properties
    event-listener.name=presto-fluentd
    event-listener.fluentd-host=localhost
    event-listener.fluentd-port=24224
    event-listener.fluentd-tag=presto.query
    

Я также проверил, вставив код отладки печати, но похоже, что он не загружен. Как я должен работать с этим плагином на EMR?

Спасибо.

добавка

вот беглая конфигурация.

<source>
  @type forward
</source>

<match *.**>
  @type stdout
</match>

person reizist    schedule 18.10.2017    source источник
comment
Я заметил, что ec2 в журнале emr не выводит `loader event listener presto-fluentd`, поэтому, возможно, что-то не так в моей конфигурации. gist.github.com/reizist/b1a07d6326c48b5ecfaa9aec62182188   -  person reizist    schedule 19.10.2017
comment
согласно github.com/prestodb/presto/blob/ , event-listener.properties должен находиться в каталоге `etc/`, но на самом деле я нахожу event-listener.properties в `/etc/presto ` , это неправильно? если да, то где находится каталог... Я попытаюсь найти `event-listener.properties в /etc/presto/conf`   -  person reizist    schedule 19.10.2017


Ответы (1)


Я решил самостоятельно.

На самом деле мне нужно найти event-listener.properties на /mnt/var/lib/presto/data/etc , поэтому я сделал это:

$s3uri="s3://my-s3-bucket"

# make symbolic link
sudo mkdir /usr/lib/presto/etc
sudo ln -s /usr/lib/presto/etc /mnt/var/lib/presto/data

# download presto plugins
aws s3 sync $s3uri/jar/ /usr/lib/presto/plugin/
aws s3 sync $s3uri/properties/ /usr/lib/presto/etc/

# make sure all plugins are owned by presto user
chown -R presto:presto /usr/lib/presto/plugin
chown -R presto:presto /usr/lib/presto/etc


# restart presto
stop  presto-server
start presto-server

наконец, мой каталог выглядит следующим образом:

[hadoop@ip-172-31-21-25 presto]$ pwd
/usr/lib/presto
[hadoop@ip-172-31-21-25 presto]$ ls -alh
total 228K
drwxr-xr-x  7 root   root   4.0K Oct 19 06:52 .
dr-xr-xr-x 47 root   root   4.0K Oct 19 06:30 ..
drwxr-xr-x  3 presto presto 4.0K Oct 19 06:30 bin
drwxr-xr-x  3 presto presto 4.0K Oct 19 06:52 etc
drwxr-xr-x  2 presto presto  12K Oct 19 06:30 lib
-rw-r--r--  1 presto presto 188K Sep 22 22:54 NOTICE
drwxr-xr-x 24 presto presto 4.0K Oct 19 06:45 plugin
drwxr-xr-x  2 presto presto 4.0K Oct 19 06:30 presto-jdbc
-rw-r--r--  1 presto presto  119 Sep 22 22:54 README.txt

[hadoop@ip-172-31-21-25 etc]$ pwd
/usr/lib/presto/etc
[hadoop@ip-172-31-21-25 etc]$ ls
event-listener.properties

[hadoop@ip-172-31-21-25 plugin]$ pwd
/usr/lib/presto/plugin
[hadoop@ip-172-31-21-25 plugin]$ ls
accumulo   example-http  localfile  mysql           redis                    tpcds
atop       hive-hadoop2  memory     postgresql      resource-group-managers  tpch
blackhole  jmx           ml         presto-fluentd  sqlserver
cassandra  kafka         mongodb    presto-thrift   teradata-functions

и работает корректно.

person reizist    schedule 19.10.2017
comment
Любая помощь здесь, stackoverflow.com/questions/47286733/logging-all- предварительные запросы - person Rohit Barnwal; 15.11.2017
comment
Хорошо, в настоящее время я собираю предварительно все запросы, поэтому, возможно, я могу вам посоветовать - person reizist; 17.11.2017