Запуск Hadoop рядом с Марафоном и Мезосом - PullRequest
0 голосов
/ 16 апреля 2019

У меня есть три узла с установленным докером, один мастер и два слэйва, и я хочу запустить Месос, марафон и hadoop на докере. У меня есть эти файлы для создания докера: Это окно настройки для главного узла для запуска Mesos и Marathon:

 version: '3.7'
 services:
  zookeeper:
    image: hadoop_marathon_mesos_flink_2
    command: >
         sh -c "
         echo zookeeper && /home/zookeeper-3.4.14/bin/zkServer.sh 
         restart && 
         sleep 30 && /home/mesos-1.7.2/build/bin/mesos-master.sh 
        --ip=10.32.0.1 --hostname=10.32.0.1 --roles=marathon,flink |
        /home/marathon-1.7.189-48bfd6000/bin/marathon --master 
       10.32.0.1:5050 --zk zk://10.32.0.1:2181/marathon 
       --hostname 10.32.0.1 --webui_url 10.32.0.1:8080 
       --logging_level debug"
   privileged: true
   network_mode: "bridge"
   environment:
     WEAVE_CIDR: 10.32.0.1/12
     ZOOKEEPER_SERVER_ID: 1
     ZOOKEEPER_CLIENT_PORT: 2181
     ZOOKEEPER_TICK_TIME: 2000
     ZOOKEEPER_INIT_LIMIT: 10
     ZOOKEEPER_SYNC_LIMIT: 5
     ZOOKEEPER_SERVERS: 10.32.0.1:2888:3888
     MESOS_CLUSTER: Yekta
     LIBPROCESS_IP: 10.32.0.1
     MESOS_QUORUM: 1
     MESOS_LOG_DIR: /var/log/mesos
     MESOS_WORK_DIR: /var/run/mesos
     MESOS_EXECUTOR_REGISTRATION_TIMEOUT: 5mins
     HOSTNAME: 10.32.0.1
     MESOS_NATIVE_JAVA_LIBRARY: /usr/local/lib/libmesos.so
     MESOS_DOCKER_SOCKET: /var/run/weave/weave.sock
  volumes:
   - /home/cfms11/.ssh:/root/.ssh
  expose:
   - 2181
   - 2888
   - 3888
   - 5050
   - 4040
   - 7077
   - 8080
   - 9000
   - 50070
   - 50090
 ports:
   - 2181:2181
   - 2888:2888
   - 3888:3888
   - 5050:5050
   - 4040:4040
   - 7077:7077
   - 8080:8080
   - 9000:9000
   - 50070:50070
   - 50090:50090
 networks:
  default:
   external:
    name: weave

Docker создает в подчиненных узлах:

  version: '3.7'
  services:
   slave:
    image: hadoop_marathon_mesos_flink_2
    command: sh -c "/home/mesos-1.7.2/build/bin/mesos-slave.sh 
    --master=10.32.0.1:5050 --work_dir=/var/run/mesos  
    --systemd_enable_support=false"
    privileged: true
    network_mode: "weave"
    environment:
      WEAVE_CIDR: 10.32.0.1/12
      MESOS_RESOURCES: ports(*):[11000-11999]
      LIBPROCESS_IP: 10.32.0.2
      MESOS_HOSTNAME: 10.32.0.2
      MESOS_EXECUTOR_REGISTRATION_TIMEOUT: 5mins #also in Dockerfile
      MESOS_LOG_DIR: /var/log/mesos
      MESOS_WORK_DIR: /var/run/mesos
      MESOS_LOGGING_LEVEL: INFO
    volumes:
     - /home/spark/.ssh:/root/.ssh
   expose:
    - 5051
   ports:
    - 5051:5051
   networks:
    default:
     external:
      name: weave

После запуска docker compose files, марафон и мезо запускаются без проблем. Затем я должен войти в контейнер, созданный с помощью docker compose, и запустить hasoop. Поэтому я делаю эти этапы: В каждом узле:

  sudo docker-compose ps

Копирую имя вывода вышеприведенной команды.

  sudo docker exec -it "the_name" /bin/bash

После входа в этот контейнер в главном узле я запускаю следующие команды:

  cat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys
  chmod -R 750 /root/.ssh/authorized_keys 
  chmod 700 ~/.ssh/
  chmod 600 ~/.ssh/*
  chown -R root ~/.ssh/
  chgrp -R root ~/.ssh/
  service ssh restart

Кроме того, я запускаю следующие команды в подчиненных контейнерах:

  chmod 700 ~/.ssh/
  chmod 600 ~/.ssh/*
  chown -R root ~/.ssh/
  chgrp -R root ~/.ssh/
  service ssh restart

После выполнения этих работ я могу запустить hadoop с помощью этой команды:

  /opt/hadoop/sbin/start-dfs.sh

Но это не началось. Я получаю эту ошибку:

Запуск наменодов в [compose-weave-ok-for-master-node_zookeeper_1.weave.local]

compose-weave-ok-for-master-node_zookeeper_1.weave.local: ОШИБКА: невозможно установить приоритет процесса namenode 1985

Начальные датододы

Запуск вторичных наменодов [compose-weave-ok-for-master-node_zookeeper_1.weave.local]

Я думаю, это потому, что ID Container не находится в / etc / hosts. На самом деле, / etc / hosts выглядит следующим образом:

 # created by Weave - BEGIN
 # container hostname
 10.32.0.1   compose-weave-ok-for-master-node_zookeeper_1.weave.local 
 compose-weave-ok-for-master-node_zookeeper_1

 # static names added with --add-host

 # default localhost entries
  127.0.0.1       localhost
  ::1             ip6-localhost ip6-loopback
  fe00::0         ip6-localnet
  ff00::0         ip6-mcastprefix
  ff02::1         ip6-allnodes
  ff02::2         ip6-allrouters
# created by Weave - EN

Кто-нибудь, пожалуйста, скажите мне, как я могу запустить hadoop рядом с Марафоном и Месосом?

Заранее спасибо.

1 Ответ

1 голос
/ 17 апреля 2019

Пожалуйста, будьте осторожны, чтобы иметь одинаковый путь hadoop на каждом узле.Кроме того, укажите идентификатор контейнера в файле Hosts и снова запустите Hadoop.Я думаю, что это решает проблему.

...