1. Интерфейс командной строки улья
1.1 Help
использоватьhive -H
илиhive --help
Команды могут просматривать справку для всех команд, которые отображаются следующим образом:
usage: hive
-d,--define <key=value> Variable subsitution to apply to hive
commands. e.g. -d A=B or --define A=B --定义用户自定义变量
--database <databasename> Specify the database to use -- 指定使用的数据库
-e <quoted-query-string> SQL from command line -- 执行指定的 SQL
-f <filename> SQL from files --执行 SQL 脚本
-H,--help Print help information -- 打印帮助信息
--hiveconf <property=value> Use value for given property --自定义配置
--hivevar <key=value> Variable subsitution to apply to hive --自定义变量
commands. e.g. --hivevar A=B
-i <filename> Initialization SQL file --在进入交互模式之前运行初始化脚本
-S,--silent Silent mode in interactive shell --静默模式
-v,--verbose Verbose mode (echo executed SQL to the console) --详细模式
1.2 интерактивная командная строка
Использовать напрямуюHive
команду без каких-либо параметров можно ввести в интерактивную командную строку.
1.3 Выполнение команд SQL
Не входя в интерактивную командную строку, вы можете использоватьhive -e
Выполнение SQL-команд.
hive -e 'select * from emp';
1.4 Выполнение сценария SQL
SQL Script для выполнения может быть в локальной файловой системе или на HDFS.
# 本地文件系统
hive -f /usr/file/simple.sql;
# HDFS文件系统
hive -f hdfs://hadoop001:8020/tmp/simple.sql;
вsimple.sql
Содержание следующее:
select * from emp;
1.5 Настройка переменных Hive
можно использовать--hiveconf
Установите переменные для среды выполнения Hive.
hive -e 'select * from emp' \
--hiveconf hive.exec.scratchdir=/tmp/hive_scratch \
--hiveconf mapred.reduce.tasks=4;
hive.exec.scratchdir: указывает расположение каталога в HDFS для хранения планов выполнения различных этапов сопоставления/уменьшения и промежуточных выходных результатов этих этапов.
1.6 Начало профиля
использовать-i
Сценарий инициализации можно запустить перед входом в интерактивный режим, что эквивалентно указанию файла конфигурации для запуска.
hive -i /usr/file/hive-init.conf;
вhive-init.conf
Содержание следующее:
set hive.exec.mode.local.auto = true;
Значение по умолчанию для hive.exec.mode.local.auto — false, здесь установлено значение true, что означает, что локальный режим включен.
1.7 Пользовательские переменные
--define <key=value>
и--hivevar <key=value>
Функционально эквивалентны, используются для реализации пользовательской переменной, вот пример:
Определить переменные:
hive --define n=ename --hiveconf --hivevar j=job;
Чтобы ссылаться на пользовательские переменные в запросах:
# 以下两条语句等价
hive > select ${n} from emp;
hive > select ${hivevar:n} from emp;
# 以下两条语句等价
hive > select ${j} from emp;
hive > select ${hivevar:j} from emp;
Результат выглядит следующим образом:
2. Билайн
2.1 HiveServer2
Hive имеет встроенные службы HiveServer и HiveServer2, обе из которых позволяют клиентам подключаться с использованием нескольких языков программирования, но HiveServer не может обрабатывать одновременные запросы от нескольких клиентов, поэтому создается HiveServer2.
HiveServer2 (HS2) позволяет удаленным клиентам отправлять запросы в Hive и получать результаты с использованием различных языков программирования, поддерживая одновременный доступ и аутентификацию для нескольких клиентов. HS2 — это единый процесс, состоящий из нескольких служб, включая службу Hive на основе Thrift (TCP или HTTP) и веб-сервер Jetty для пользовательского веб-интерфейса.
HiveServer2 имеет собственный CLI (Билайн), Билайн основан на SQLLine JDBC-клиента. Поскольку HiveServer2 направлен на разработку и обслуживание Hive (Hive0.15 после того, как hiveserver больше не поддерживается), поэтому Hive CLI больше не рекомендуется для использования, более официально рекомендованный Билайн.
2.1 Beeline
У Билайн доступно больше параметров, вы можете использоватьbeeline --help
Вид, полные параметры следующие:
Usage: java org.apache.hive.cli.beeline.BeeLine
-u <database url> the JDBC URL to connect to
-r reconnect to last saved connect url (in conjunction with !save)
-n <username> the username to connect as
-p <password> the password to connect as
-d <driver class> the driver class to use
-i <init file> script file for initialization
-e <query> query that should be executed
-f <exec file> script file that should be executed
-w (or) --password-file <password file> the password file to read password from
--hiveconf property=value Use value for given property
--hivevar name=value hive variable name and value
This is Hive specific settings in which variables
can be set at session level and referenced in Hive
commands or queries.
--property-file=<property-file> the file to read connection properties (url, driver, user, password) from
--color=[true/false] control whether color is used for display
--showHeader=[true/false] show column names in query results
--headerInterval=ROWS; the interval between which heades are displayed
--fastConnect=[true/false] skip building table/column list for tab-completion
--autoCommit=[true/false] enable/disable automatic transaction commit
--verbose=[true/false] show verbose error messages and debug info
--showWarnings=[true/false] display connection warnings
--showNestedErrs=[true/false] display nested errors
--numberFormat=[pattern] format numbers using DecimalFormat pattern
--force=[true/false] continue running script even after errors
--maxWidth=MAXWIDTH the maximum width of the terminal
--maxColumnWidth=MAXCOLWIDTH the maximum width to use when displaying columns
--silent=[true/false] be more silent
--autosave=[true/false] automatically save preferences
--outputformat=[table/vertical/csv2/tsv2/dsv/csv/tsv] format mode for result display
--incrementalBufferRows=NUMROWS the number of rows to buffer when printing rows on stdout,
defaults to 1000; only applicable if --incremental=true
and --outputformat=table
--truncateTable=[true/false] truncate table column when it exceeds length
--delimiterForDSV=DELIMITER specify the delimiter for delimiter-separated values output format (default: |)
--isolation=LEVEL set the transaction isolation level
--nullemptystring=[true/false] set to true to get historic behavior of printing null as empty string
--maxHistoryRows=MAXHISTORYROWS The maximum number of rows to store beeline history.
--convertBinaryArrayToString=[true/false] display binary column data as string or as byte array
--help display this message
2.3 Общие параметры
Параметры, поддерживаемые в Hive CLI, поддерживаются Beeline.Часто используемые параметры следующие. Дополнительные описания параметров см. в официальной документации.Beeline Command Options
параметр | инструкция |
---|---|
-u <database URL> | адрес базы данных |
-n <username> | имя пользователя |
-p <password> | пароль |
-d <driver class> | водитель (по желанию) |
-e <query> | Выполнение SQL-команд |
-f <file> | Выполнить SQL-скрипт |
-i (or)--init <file or files> | Запустите сценарий инициализации перед входом в интерактивный режим |
--property-file <file> | Укажите файл конфигурации |
--hiveconf property*=*value | Укажите свойства конфигурации |
--hivevar name*=*value | Определяемые пользователем атрибуты, действительные на уровне сеанса |
Пример: подключение к Hive с именем пользователя и паролем
$ beeline -u jdbc:hive2://localhost:10000 -n username -p password
3. Конфигурация улья
Вы можете настроить соответствующие атрибуты Tive через три способа соответственно следующим образом:
3.1 Профиль
Первый способ — использовать файл конфигурации, конфигурация, указанная в файле конфигурации, постоянна и эффективна. У Hive есть следующие три необязательных файла конфигурации:
-
hive-site.xml : основной файл конфигурации Hive;
-
hivemetastore-site.xml: конфигурация метаданных;
-
hiveserver2-site.xml: конфигурация HiveServer2.
Пример выглядит следующим образом, настроенным в файле hive-site.xml.hive.exec.scratchdir
:
<property>
<name>hive.exec.scratchdir</name>
<value>/tmp/mydir</value>
<description>Scratch space for Hive jobs</description>
</property>
3.2 hiveconf
Второй способ запуска при загрузке командной строки (Hive CLI/Билайн) использовать--hiveconf
Определяет конфигурацию. Конфигурация, указанная таким образом, применяется ко всему сеансу.
hive --hiveconf hive.exec.scratchdir=/tmp/mydir
3.3 set
Третий способ — использовать команду set для указания в интерактивной среде (Hive CLI/Билайн). Область действия этого параметра также находится на уровне сеанса, и конфигурация вступает в силу для всех команд после выполнения команды. set имеет как функцию настройки параметров, так и функцию просмотра параметров. следующее:
0: jdbc:hive2://hadoop001:10000> set hive.exec.scratchdir=/tmp/mydir;
No rows affected (0.025 seconds)
0: jdbc:hive2://hadoop001:10000> set hive.exec.scratchdir;
+----------------------------------+--+
| set |
+----------------------------------+--+
| hive.exec.scratchdir=/tmp/mydir |
+----------------------------------+--+
3.4 Настройка приоритета
Порядок приоритета конфигурации следующий (от низкого к высокому):
hive-site.xml
- >hivemetastore-site.xml
- > hiveserver2-site.xml
- >-- hiveconf
- > set
3.5 Параметры конфигурации
У Hive есть много необязательных параметров конфигурации, вы можете проверить официальную документацию, когда вам это нужно.AdminManual Configuration
использованная литература
Дополнительные статьи серии о больших данных см. в проекте с открытым исходным кодом GitHub.:Руководство для начинающих по большим данным