Можно ли установить Билайн для запуска запросов Hive без установки Hive?

Я нахожусь на машине Mac OSX, и я хотел бы выполнять запросы к базе данных Hadoop на машине CentOS 6.6. Я могу войти в систему с CentOS и выполнять там запросы куста. Но мне нужно иметь возможность запускать запросы с моего компьютера для устранения проблем с подключением.

Есть ли способ установить Beeline (более новая версия Hive CLI) или Hive на OSX без установки / настройки Hadoop? Информация, которую я видел, говорит о том, что вам нужно сначала установить Hadoop, что кажется излишним, просто чтобы проверить, прослушивает ли удаленная база данных соединения.


person jcollum    schedule 02.09.2016    source источник


Ответы (2)


$ brew install hive работал достаточно хорошо. Думаю, я оставлю этот вопрос, так как я не смог найти ответ в Интернете. Но 141 мегабайт дискового пространства.

person jcollum    schedule 02.09.2016

Билайн / улей устанавливать не обязательно. Все, что вам нужно сделать, это собрать соответствующие jar-файлы из вашей системы, скопировать их и поместить в одну папку.

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

В исходной системе соберите соответствующие jar-файлы в одну папку. Наилучший способ, который я нашел для определения конкретных задействованных jar-файлов, - это использовать параметр jvm: -verbose:class

То есть вы должны иметь возможность выполнить команду java, которая будет реплицировать типичный вызов команды beeline в исходной системе.

Затем скопируйте эти файлы в одну папку в целевой системе. cd в эту папку, чтобы упростить -classpath ссылку позже.

Я использую дистрибутив HDP 2.5 Hortonworks. Для меня работает следующий вызов в целевой системе: java -Xmx1024m -classpath apache-log4j-extras-1.2.17.jar:avatica-1.8.0.2.5.0.0-1245.jar:calcite-core-1.2.0.2.5.0.0-1245.jar:calcite-linq4j-1.2.0.2.5.0.0-1245.jar:commons-cli-1.2.jar:commons-codec-1.4.jar:commons-collections-3.2.2.jar:commons-configuration-1.6.jar:commons-lang-2.6.jar:commons-logging-1.1.3.jar:curator-client-2.6.0.jar:curator-framework-2.6.0.jar:derby-10.10.2.0.jar:guava-14.0.1.jar:hadoop-annotations-2.7.3.2.5.0.0-1245.jar:hadoop-auth-2.7.3.2.5.0.0-1245.jar:hadoop-common-2.7.3.2.5.0.0-1245.jar:hadoop-mapreduce-client-core-2.7.3.2.5.0.0-1245.jar:hive-beeline-1.2.1000.2.5.0.0-1245.jar:hive-exec-1.2.1000.2.5.0.0-1245.jar:hive-jdbc-1.2.1000.2.5.0.0-1245.jar:hive-jdbc-1.2.1000.2.5.0.0-1245-standalone.jar:jce.jar:jline-2.12.jar:jsse.jar:log4j-1.2.16.jar:rt.jar:slf4j-log4j12-1.7.10.jar:sunec.jar:sunjce_provider.jar:super-csv-2.2.0.jar:xercesImpl-2.9.1.jar -Dhdp.version=2.5.0.0-1245 -Djava.net.preferIPv4Stack=true -Dhdp.version=2.5.0.0-1245 -Dhadoop.log.dir=/home/userid -Dhadoop.log.file=hadoop.log -Dhadoop.home.dir=/home/userid -Dhadoop.id.str=userid -Dhadoop.root.logger=INFO,console -Djava.library.path=:/home/userid -Dhadoop.policy.file=hadoop-policy.xml -Djava.net.preferIPv4Stack=true -Djava.util.logging.config.file=/home/userid/parquet-logging.properties -Dlog4j.configuration=beeline-log4j.properties -Dhadoop.security.logger=INFO,NullAppender org.apache.hadoop.util.RunJar /home/userid/hive-beeline-1.2.1000.2.5.0.0-1245.jar org.apache.hive.beeline.BeeLine -n userid -p pass -u "jdbc:hive2://knox.company.com:8000/;ssl=true;transportMode=http;httpPath=gateway/tdcprd/hive"

Некоторые параметры, вероятно, не нужны, но я сохранил их, потому что именно так это делается в исходной системе. Вы должны использовать java-вызов исходной системы в качестве эталонного шаблона.

person paolov    schedule 27.05.2017