1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/apache-hawq

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md
Процесс CI Статус
Travis CI Build https://travis-ci.org/apache/hawq.svg?branch=master
Apache Release Audit Tool (RAT) Rat Status
Coverity Static Analysis Coverity Scan Build

Website | Wiki | Documentation | Developer Mailing List | User Mailing List | Q&A Collections | Open Defect

Apache HAWQ

Apache HAWQ — это движок запросов SQL, который работает на Hadoop и сочетает в себе ключевые технологические преимущества MPP базы данных с масштабируемостью и удобством Hadoop. HAWQ читает данные из и записывает данные в HDFS. HAWQ обеспечивает лучшую в отрасли производительность и линейную масштабируемость. Он предоставляет пользователям инструменты для уверенного и успешного взаимодействия с наборами данных петабайтного диапазона. HAWQ предоставляет пользователям полный, совместимый со стандартами интерфейс SQL. Более конкретно, HAWQ имеет следующие функции:

  • Развёртывание на месте или в облаке.
  • Надежное соответствие ANSI SQL: SQL-92, SQL-99, SQL-2003, расширение OLAP.
  • Чрезвычайно высокая производительность, во много раз быстрее, чем у других движков SQL на Hadoop.
  • Мировой класс параллельного оптимизатора.
  • Полная возможность транзакций и гарантия согласованности: ACID.
  • Динамический механизм потока данных через высокоскоростное межсоединение на основе UDP.
  • Эластичный механизм выполнения на основе виртуального сегмента и локализации данных.
  • Поддержка многоуровневого секционирования и секционированных таблиц на основе списка/диапазона.
  • Поддержка нескольких методов сжатия: snappy, gzip, zlib.
  • Многоязычная поддержка пользовательских функций: Python, Perl, Java, C/C++, R.
  • Расширенные возможности машинного обучения и интеллектуального анализа данных через MADLib.
  • Динамическое расширение узлов: за секунды.
  • Самый продвинутый трехуровневый менеджер ресурсов: интеграция с YARN и иерархическими очередями ресурсов.
  • Простой доступ ко всем данным HDFS и данным внешних систем (например, HBase).
  • Hadoop Native: от хранения (HDFS), управления ресурсами (YARN) до развёртывания (Ambari).
  • Аутентификация и детализированное управление доступом: Kerberos, SSL и ролевое управление доступом.
  • Продвинутая библиотека доступа C/C++ к HDFS и YARN: libhdfs3 & libYARN.
  • Поддерживает большинство сторонних инструментов: Tableau, SAS и др.
  • Стандартное подключение: JDBC/ODBC.

Сборка и настройка HAWQ на Mac

Шаг 1. Настройка HDFS

Установите HomeBrew, следуя инструкциям здесь.

brew install hadoop

Шаг 1.1. Настройте параметры HDFS

  • ${HADOOP_HOME}/etc/hadoop/slaves

    Например, /usr/local/Cellar/hadoop/2.8.1/libexec/etc/hadoop/slaves.

    localhost
  • ${HADOOP_HOME}/etc/hadoop/core-site.xml

    Например, /usr/local/Cellar/hadoop/2.8.1/libexec/etc/hadoop/core-site.xml.

    <?xml version="1.0" encoding="UTF-8"?>
    <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
    <configuration>
        <property>
            <name>fs.defaultFS</name>
            <value>hdfs://localhost:8020</value>
        </property>
    </configuration>
  • ${HADOOP_HOME}/etc/hadoop/hdfs-site.xml

    Например, /usr/local/Cellar/hadoop/2.8.1/libexec/etc/hadoop/hdfs-site.xml.

Внимание: замените переменные ${HADOOP_DATA_DIRECTORY} и ${USER_NAME} своими конкретными значениями.

```xml
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
    <property>
        <name>dfs.namenode.name.dir</name>
        <value>file://${HADOOP_DATA_DIRECTORY}/name</value> **Настройку HDFS и hawq**

Укажите путь к каталогу namenode файловой системы DFS.

Укажите путь к каталогу namenode файловой системы DFS. dfs.datanode.data.dir file://${HADOOP_DATA_DIRECTORY}/data Укажите путь к каталогу datanode файловой системы DFS. dfs.replication 1


### Шаг 1.2. Настройка среды HDFS

```bash
touch ~/.bashrc
touch ~/.bash_profile

echo "if [ -f ~/.bashrc ]; then
source ~/.bashrc
fi" >> ~/.bash_profile

echo "export HADOOP_HOME=/usr/local/Cellar/hadoop/2.8.1/libexec" >> ~/.bashrc
echo "export PATH=$PATH:${HADOOP_HOME}/bin:${HADOOP_HOME}/sbin" >> ~/.bashrc

source ~/.bashrc

Шаг 1.3. Настройка беспарольного SSH

ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 0600 ~/.ssh/authorized_keys

Теперь вы можете выполнить команду ssh localhost без пароля. Если вы столкнулись с ошибкой «Порт 22: подключение отклонено», включите «Удаленный вход» в «Системных настройках» > «Общий доступ» на вашем компьютере Mac.

Шаг 1.4. Форматирование файловой системы HDFS

hdfs namenode -format

Шаг 1.5. Запуск HDFS

# запуск/остановка HDFS
start-dfs.sh/stop-dfs.sh

# выполните несколько базовых тестов, чтобы убедиться, что HDFS работает
hdfs dfsadmin -report
hadoop fs -ls /

Если что-то пойдёт не так, проверьте журнал и просмотрите раздел часто задаваемых вопросов в вики.

Шаг 2. Настройка hawq

Шаг 2.1. Конфигурация системы

Шаг 2.1.1. Отключение Rootless System Integrity Protection

Отключите Rootless System Integrity Protection на macOS, которая новее, чем OS X El Capitan 10.11, если вы столкнётесь с некоторыми сложными проблемами LIBRARY_PATH, например HAWQ-513, из-за которых двоичный файл hawq не сможет найти свои общие зависимости библиотек. Следующие шаги:

  1. Перезагрузите компьютер Mac и удерживайте клавиши Command + R одновременно после того, как услышите сигнал запуска, это загрузит OS X в режим восстановления.
  2. Когда появится экран «Утилиты OS X», вместо этого потяните вниз меню «Утилиты» в верхней части экрана и выберите «Терминал».
  3. Введите следующую команду в терминал и нажмите клавишу возврата: csrutil disable; reboot.

Шаг 2.1.2. Настройте sysctl.conf

Для Mac OSX 10.10 / 10.11 добавьте следующее содержимое в /etc/sysctl.conf и затем sudo sysctl -p, чтобы активировать их.

Для Mac OSX 10.12+ добавьте следующее содержимое в /etc/sysctl.conf и затем cat /etc/sysctl.conf | xargs sudo sysctl, чтобы проверить.

kern.sysv.shmmax=2147483648
kern.sysv.shmmin=1
kern.sysv.shmmni=64
kern.sysv.shmseg=16
kern.sysv.shmall=524288
kern.maxfiles=65535
kern.maxfilesperproc=65536
kern.corefile=/cores/core.%N.%P

Шаг 2.2. Подготовка исходного кода и целевой папки

mkdir ~/dev
git clone git@github.com:apache/hawq ~/dev/hawq

sudo mkdir -p /opt
sudo chmod a+w /opt
sudo install -o $USER -d /usr/local/hawq

Шаг 2.3. Установка инструментальной цепочки и сторонних зависимостей

Установите инструментальную цепочку и сторонние зависимости.

Шаг 2.4. Сборка HAWQ

  • 2.4.1 Добавьте информацию об окружении hawq в ~/.bashrc и source ~/.bashrc для вступления в силу.

    ulimit -c 10000000000
    export CC=clang
    export CXX=clang++
    export DEPENDENCY_PATH=/opt/dependency/package
    source /opt/dependency-Darwin/package/env.sh
  • 2.4.2 Соберите HAWQ.

    cd ~/dev/hawq
    git checkout master
    ln -sf ../../commit-msg .git/hooks/commit-msg
    ./configure
    make -j8
    make -j8 install

Шаг 2.5. Настройка HAWQ

mkdir /tmp/magma_master
mkdir /tmp/magma_segment

Вы можете использовать стандартный /usr/local/hawq/etc/hawq-site.xml. Обратите внимание на сопоставление hawq_dfs_url с fs.defaultFS в ${HADOOP_HOME}/etc/hadoop/core-site.xml.

Шаг 2.6. Инициализация/Запуск/Остановка HAWQ

# Прежде чем инициализировать HAWQ, вам необходимо установить HDFS и убедиться, что она работает.

source /usr/local/hawq/greenplum_path.sh

# Кроме того, вам нужно настроить беспарольный ssh на системах.
# Если только устанавливаете hawq для разработки на локальном хосте, пропустите этот шаг.
# Обменяйте ключами SSH между хостами host1, host2 и host3:
#hawq ssh-exkeys -h host1 -h **host2 -h host3**

# Инициализация кластера HAWQ и запуск HAWQ по умолчанию
hawq init cluster -a

# Теперь вы можете остановить/перезапустить/запустить кластер с помощью:  
hawq stop/restart/start cluster
# Команда init автоматически вызовет команду start.
 
# Мастер HAWQ и сегменты полностью разделены.
# Таким образом, вы также можете отдельно инициализировать, запускать или останавливать мастер и сегменты.
# Например, чтобы инициализировать: hawq init master, затем hawq init segment
#              чтобы остановить: hawq stop master, затем hawq stop segment
#              для запуска: hawq start master, затем hawq start segment

Каждый раз, когда вы инициализируете hawq, вам необходимо удалить некоторые файлы. Каталог всех файлов, которые необходимо удалить, настроен в /usr/local/hawq/etc/hawq-site.xml.

    1. Имя: hawq_dfs_url Описание: URL для доступа к HDFS
    1. Имя: hawq_master_directory Описание: каталог мастера hawq
    1. Имя: hawq_segment_directory Описание: каталог сегмента hawq
    1. Имя: hawq_magma_locations_master Описание: Расположение службы HAWQ magma на мастере
    1. Имя: hawq_magma_locations_segment Описание: Расположение службы HAWQ magma на сегменте

например:

hdfs dfs -rm -r /hawq*
rm -rf /Users/xxx/data/hawq/master/*
rm -rf /Users/xxx/data/hawq/segment/*
rm -rf /Users/xxx/data/hawq/tmp/magma_master/*
rm -rf /Users/xxx/data/hawq/tmp/magma_segment/*

Проверьте, работает ли процесс postgres или magma на вашем компьютере. Если они работают, вы должны убить их перед инициализацией hawq. Например,

ps -ef | grep postgres | grep -v grep | awk '{print $2}'| xargs kill -9
ps -ef | grep magma | grep -v grep | awk '{print $2}'| xargs kill -9

Сборка HAWQ на Centos 7

Почти так же, как на macOS, не стесняйтесь попробовать.

Сборка HAWQ на Centos 7(6.X) с использованием docker

Почти так же, как на macOS, не стесняйтесь попробовать.

Сборка, установка и тестирование (версия Apache HAWQ)


Пожалуйста, обратитесь к странице вики HAWQ: https://cwiki.apache.org/confluence/display/HAWQ/Build+and+Install

cd hawq
make feature-test

Чтобы вывод был согласованным, пожалуйста, создайте новую базу данных и используйте определённый языковой стандарт.

TEST_DB_NAME="hawq_feature_test_db"
psql -d postgres -c "create database $TEST_DB_NAME;"
export PGDATABASE=$TEST_DB_NAME
psql -c  "alter database $TEST_DB_NAME set lc_messages to 'C';"
psql -c "alter database $TEST_DB_NAME set lc_monetary to 'C';"
psql -c  "alter database $TEST_DB_NAME set lc_numeric to 'C';"
psql -c  "alter database $TEST_DB_NAME set lc_time to 'C';"
psql -c "alter database $TEST_DB_NAME set timezone_abbreviations to 'Default';"
psql -c  "alter database $TEST_DB_NAME set timezone to 'PST8PDT';"
psql -c  "alter database $TEST_DB_NAME set datestyle to 'postgres,MDY';"

Для запуска обычного теста функций, пожалуйста, используйте нижеприведённый фильтр:

  1. Нижеприведённые тесты могут выполняться только в последовательном режиме
hawq/src/test/feature/feature-test --gtest_filter=-TestHawqRegister.*:TestTPCH.TestStress:TestHdfsFault.*:TestZookeeperFault.*:TestHawqFault.*
  1. Нижеприведённые тесты можно выполнять параллельно
cd hawq/src/test/feature/
mkdir -p testresult
python ./gtest-parallel --workers=4 --output_dir=./testresult --print_test_times  ./feature-test --gtest_filter=-TestHawqRegister.*:TestTPCH.*:TestHdfsFault.*:TestZookeeperFault.*:TestHawqFault.*:TestQuitQuery.*:TestErrorTable.*:TestExternalTableGpfdist.*:TestExternalTableOptionMultibytesDelimiter.TestGpfdist:TETAuth.*

TestHawqRegister не включён TestTPCH.TestStress предназначен для стресс-теста TPCH TestHdfsFault тесты на отказ Hdfs TestZookeeperFault тесты на отказ Zookeeper TestHawqFault тесты на отказоустойчивость Hawq

Экспорт контроля


Это распространение включает в себя криптографическое программное обеспечение. Страна, в которой вы в настоящее время проживаете, может иметь ограничения на импорт, владение, использование и/или реэкспорт в другую страну программного обеспечения для шифрования. Прежде чем использовать любое программное обеспечение для шифрования, пожалуйста, проверьте законы, правила и политику вашей страны, касающиеся импорта, владения или использования и реэкспорта программного обеспечения для шифрования, чтобы узнать, является ли это Правительство США, Министерство торговли, Бюро промышленности и безопасности (BIS) классифицировало данное программное обеспечение как Экспортный контрольный номер товара (ECCN) 5D002.C.1. Эта категория включает программное обеспечение для информационной безопасности, использующее или выполняющее криптографические функции с асимметричными алгоритмами.

Форма и способ распространения этого программного обеспечения от Apache Software Foundation делают его пригодным для экспорта в соответствии с исключением License Exception ENC Technology Software Unrestricted (TSU) (см. Раздел 740.13 Правил экспортного администрирования BIS) как для объектного кода, так и для исходного кода.

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Apache HAWQ — это механизм запросов SQL, оптимизированный для работы с Hadoop, который объединяет ключевые технологические преимущества массово-параллельной обработки данных (MPP) с масштабируемостью и удобством Hadoop. Развернуть Свернуть
Apache-2.0
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/apache-hawq.git
git@api.gitlife.ru:oschina-mirror/apache-hawq.git
oschina-mirror
apache-hawq
apache-hawq
master