Не удалось остановить кластер HAWQ

Я установил HAWQ из исходного кода. После инициализации и запуска кластера HAWQ я попытался остановить его с помощью "hawq stop cluster". Однако это не удалось.

Ошибка показывает:

[hadoop@Master ~]$ hawq stop cluster 
20161217:19:59:31:004594 hawq_stop:Master:hadoop-[INFO]:-Prepare to do 'hawq stop'
20161217:19:59:31:004594 hawq_stop:Master:hadoop-[INFO]:-You can check log in /home/hadoop/hawqAdminLogs/hawq_stop_20161217.log
20161217:19:59:31:004594 hawq_stop:Master:hadoop-[INFO]:-Stop hawq with args: ['stop', 'cluster']

Continue with HAWQ service stop Yy|Nn (default=N):

20161217:19:59:38:004594 hawq_stop:Master:hadoop-[INFO]:-No standby host configured
20161217:19:59:38:004594 hawq_stop:Master:hadoop-[INFO]:-Stop hawq cluster
Traceback (most recent call last):
  File "/home/hadoop/hawq/bin/hawq_ctl", line 1276, in <module>
    stop_hawq(opts, hawq_dict)
  File "/home/hadoop/hawq/bin/hawq_ctl", line 1043, in stop_hawq
    instance.run()
  File "/home/hadoop/hawq/bin/hawq_ctl", line 891, in run
    check_return_code(self._stopAll())
  File "/home/hadoop/hawq/bin/hawq_ctl", line 816, in _stopAll
    master_result = self._stop_master()
  File "/home/hadoop/hawq/bin/hawq_ctl", line 760, in _stop_master
    self._stop_master_checks()
  File "/home/hadoop/hawq/bin/hawq_ctl", line 712, in _stop_master_checks
    self.conn = dbconn.connect(self.dburl, utility=True)
  File "/home/hadoop/hawq/lib/python/gppylib/db/dbconn.py", line 211, in connect
    cnx  = pgdb._connect_(cstr, dbhost, dbport, dbopt, dbtty, dbuser, dbpasswd)
AttributeError: 'module' object has no attribute '_connect_'

В настоящее время я использовал альтернативный способ остановки кластера, то есть останов мастера и сегментов отдельно с помощью pg_ctl.

pg_ctl stop -D <master_data_dir>/<segment_data_dir>

Все, что связано с этой ошибкой, полезно. Спасибо!


person Kai Guo    schedule 17.12.2016    source источник


Ответы (2)


Поскольку напрямую используйте команду 'pip install pygresql', она установит последнюю версию (5.0.3) pygresql. В приведенных выше ошибках pgdb._connect_() — это подпрограмма старой версии (4.2.2), в 5.0.3 — pgdb._connect().

Решение:

pip install pygresql==4.2.2
person Kai Guo    schedule 29.12.2016

Перед остановкой кластера, если это не '-M немедленная' остановка, hawq подключится к базе данных, чтобы проверить работающие соединения.

Судя по вашему журналу, соединение с главным узлом не удалось из-за проблем с модулем Python. Похоже, модуль pygresql установлен неправильно. Пожалуйста, попробуйте переустановить его.

person Radar Lei    schedule 19.12.2016
comment
Я переустановил pygresql, но все равно не получилось. - person Kai Guo; 22.12.2016