Hadoop configure cluter запрашивает на основе параметра flag/env

Заранее извиняюсь, если это окажется глупым вопросом, я новичок в среде hadoop.

У меня есть два кластера hadoop: my-prod-cluster и my-bcp-cluster . Оба доступны по одной сети.

Есть ли способ настроить мои кластеры таким образом, чтобы, когда я нахожусь в режиме BCP, все мои запросы к my-prod-cluster направляется к my-bcp-cluster (на основе некоторого параметра конфигурации или переменной среды)

Итак, когда flag= prod
переводит
и извлекает данные в / my-prod-cluster / mydir


когда флаг = bcp
hadoop fs -ls /my-prod-cluster/mydir переводится на hadoop fs -ls /my-bcp-cluster/mydir
и получает данные из / my-bcp-cluster / mydir



Я использую [mapr][1] хаддоп (предоставленный HP) версии 6.1, если это имеет значение.

1 ответ

Вы можете легко создать сценарий-оболочку, который добавляет адрес NameNode к каждому запросу.

Например, полностью квалифицированная команда будет выглядеть так

      hdfs dfs -ls hdfs://my-prod-cluster.domain.com/path/to/mydir

Итак, проведя рефакторинг, вы могли бы получить такой скрипт, как

      #!/bin/sh
if [ $1 -eq "prod" ]; then
  NAMENODE=hdfs://my-prod-cluster.domain.com
fi
# TODO: error handling and more clusters

PATH=$2
hdfs dfs -ls "${NAMENODE}${PATH}"

Затем выполните что-то вроде my-hdfs-ls prod /mydir


Если вам нужно что-то более сложное, например, билеты Kerberos и тому подобное, то создание отдельного HADOOP_CONF_DIRпеременная с уникальным core-siteа также hdfs-siteРекомендуется использовать XML для каждого кластера.

Другие вопросы по тегам