Процесс CI | Статус |
---|---|
Travis CI сборка | ![]() |
RAT (Release Audit Tool) (RAT) | |
Статический анализ Coverity |
Apache HAWQ — это нативный движок запросов SQL для Hadoop, который объединяет ключевые технологические преимущества баз данных MPP с масштабируемостью и удобством использования Hadoop. HAWQ нативно читает данные из HDFS и записывает их обратно в HDFS. HAWQ обеспечивает превосходную производительность и линейную масштабируемость. Он предоставляет пользователям средства для уверенного и успешного взаимодействия с наборами данных объемом до петабайтов. HAWQ предлагает пользователям полный, соответствующий стандартам SQL интерфейс. Более конкретно, HAWQ имеет следующие характеристики:
Установите HomeBrew, следуя этой инструкции.
brew install hadoop
${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 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>
<description>Укажите путь к директории namenode</description>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file://${HADOOP_DATA_DIRECTORY}/data</value>
<description>Укажите путь к директории datanode</description>
</property>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
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
```bash
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 0600 ~/.ssh/authorized_keys
Теперь вы можете подключаться к ssh localhost
без пароля. Если возникает ошибка Port 22 connecting refused
, включите Remote login
в настройках системы Mac (System Preferences -> Sharing
).### Шаг 1.4 Форматирование файловой системы HDFS
hdfs namenode -format
# запустить/остановить HDFS
start-dfs.sh/stop-dfs.sh
# Выполните базовые тесты, чтобы убедиться в работоспособности HDFS
hdfs dfsadmin -report
hadoop fs -ls /
Если возникают проблемы, проверьте журнал и просмотрите часто задаваемые вопросы в вики.
Отключение Rootless System Integrity Protection на macOS новее чем OS X El Capitan 10.11
, если вы сталкиваетесь с проблемами LIBRARY_PATH, например, HAWQ-513, что делает бинарники Hawq неспособными находить свои зависимости из общих библиотек. Шаги ниже:
csrutil disable; reboot
sysctl.conf
Для Mac OS X 10.10 / 10.11, добавьте следующий контент в /etc/sysctl.conf
и затем выполните sudo sysctl -p
для активации.Для macOS 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
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.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
mkdir /tmp/magma_master
mkdir /tmp/magma_segment
Не забудьте отобразить hawq_dfs_url
в fs.defaultFS
в ${HADOOP_HOME}/etc/hadoop/core-site.xml
.
# Перед инициализацией 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 init cluster -a
# Теперь вы можете останавливать/перезапускать/вновь запускать кластер с помощью команд:
# hawq stop/restart/start cluster
# Команда инициализации автоматически вызывает команду запуска.
# Master 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
> - 2) Название: `hawq_master_directory`, Описание: Директория master HAWQ
> - 3) Название: `hawq_segment_directory`, Описание: Директория сегмента HAWQ
> - 4) Название: `hawq_magma_locations_master`, Описание: Расположение службы HAWQ magma на master
> - 5) Название: `hawq_magma_locations_segment`, Описание: Расположение службы HAWQ magma на сегменте
>
> Например:
>
> ```bash
> 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/*
> ```
>
> Убедитесь, что нет никаких процессов PostgreSQL или magma, работающих на вашем компьютере. Если они работают, вам следует завершить их перед инициализацией HAWQ. Например,
>
> ```bash
> 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 wiki:
https://cwiki.apache.org/confluence/display/HAWQ/Build+and+Install
```shell
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';"
Чтобы запустить обычные тесты функциональности, используйте следующий фильтр:
hawq/src/test/feature/feature-test --gtest_filter=-TestHawqRegister.*:TestTPCH.TestStress:TestHdfsFault.*:TestZookeeperFault.*:TestHawqFault.*
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# Экспорт контролируемых товаров
----------------
Эта распределённая версия включает криптографическое программное обеспечение. Страна, в которой вы сейчас проживаете, может иметь ограничения на импорт, владение, использование и/или пересылку в другую страну криптографического программного обеспечения. **ПЕРЕД** использованием любого криптографического программного обеспечения, пожалуйста, проверьте законы, регламенты и политики вашей страны относительно импорта, владения или использования, а также пересылки криптографического программного обеспечения, чтобы узнать, разрешено ли это. Для получения дополнительной информации см. <http://www.wassenaar.org/>.
Департамент торговли США, Управление промышленной безопасности (BIS), отнёсло эту программу к категории Экспортного номера контроля товаров (ECCN) 5D002.C.1, которая включает программное обеспечение для обеспечения информационной безопасности с использованием или выполнением криптографических функций с асимметричными алгоритмами. Форма и способ распространения этой программы Apache Software Foundation делают её пригодной для экспорта под исключением Лицензионного исключения ENC для технологического программного обеспечения без ограничений (TSU) (см. раздел 740.13 Управления по экспортному администрированию BIS) как для объектного кода, так и для исходного кода.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )