如何部署Oracle Linux 10.x Apache Hive CLI和Beeline CLI?
- By : Will
- Category : Apache-Hadoop
1 基础知识
1.1 软件简介
– Apache Hive数据仓库软件支持对分布式存储中的大型数据库进行读取、写入和管理
– Apache Hive支持使用SQL语法进行查询
– Apache Hive构建与Apache Hadoop之上
1.2 软件的功能
– Apache Hive支持通过SQL轻松访问数据,从而实现数据仓库任务,例如提取、转换、加载(ETL)、报告和数据分析
– Apache Hive支持对各种数据格式施加结构化的机制
– Apache Hive支持直接存储在Apache HDFS或其他数据存储系统(如Apache HBase)中的文件夹
– Apache Hive支持通过Apache Tez、Apache Spark或MapReduce实现查询
– Apache Hive支持HPL-SQL的过程语言
– Apache Hive支持通过Hive LLAP、Apache YARN和Apache Slider实现亚秒级查询检查
需要注意的是,
– Apache Hive支持标准的SQL功能,包括许多SQL:2003、SQL:2011和SQL:2016中新增的分析功能。
– Apache Hive的SQL支持用户自定义函数 (UDF)、用户自定义聚合 (UDAF) 和用户自定义表函数 (UDTF) 进行扩展。
– Apache Hive数据存储并没有唯一的“Hive格式”
– Apache Hive内置了对逗号分隔值/制表符分隔值(CSV/TSV)文本文件、Apache Parquet、 Apache ORC以及其他格式的连接器。
– Apache Hive支持通过添加连接器来扩展Hive对其他格式的支持
– Apache Hive并非为在线事务处理(OLTP)工作负载而设计,它最适合用于传统的数据仓库任务。
– Apache Hive的设计旨在最大限度地提高可扩展性(横向扩展)、性能、可扩展性、容错性以及与其输入格式的松耦合性。
1.3 软件的组成
– Hive HCatalog是Hadoop的表和存储管理层,它使用户能够使用不同的数据处理工具(包括Pig和MapReduce)更轻松地在网格上读取和写入数据。
– Hive WebHCat提供了一项服务,可用于运行Hadoop MapReduce(或YARN)、Pig和Hive作业。您还可以使用 HTTP(REST风格)接口执行Hive元数据操作。
1.4 安装要求
– Apache Hive 1.2及更高版本需要Java 1.7或更高版本
– Apache Hive 0.14至1.1版本可与Java 1.6兼容,但建议使用1.7
– Apache Hive强烈建议用户开始升级到Java 1.8(参见HIVE-8607)
– Apache Hive首选Hadoop 2.x,另外1.x(Hive 2.0.0 及更高版本不再支持)
– Apache Hive 0.13及更早版本也支持 Hadoop 0.20.x 和 0.23.x
– Apache Hive通常用于生产环境的Linux和Windows系统。
– Apache Hive对于Mac系统则常用于开发环境。
2 最佳实践
2.1 系统环境配置
2.1.1 系统信息
IP Address = any
OS = Oracle Linux 9.x x86_64
Host Name = any.cmdschool.org
2.1.2 系统信息
yum install -y update
2.1.3 安装常用工具
yum install -y vim wget tree
2.2 软件环境配置
2.2.1 安装JDK
请参阅以下方法安装jdk-8u121-linux-x64,
https://www.cmdschool.org/archives/397
安装完成后,请使用如下命令检查JDK的安装,
java -version
命令显示如下,
java version "1.8.0_121" Java(TM) SE Runtime Environment (build 1.8.0_121-b13) Java HotSpot(TM) 64-Bit Server VM (build 25.121-b13, mixed mode)
2.2.2 安装rsync
yum install -y rsync
2.3 部署Apache Hive软件包
2.3.1 下载二进制安装包
cd ~ wget https://archive.apache.org/dist/hive/hive-1.1.0/apache-hive-1.1.0-bin.tar.gz
以上只是演示,如果下载异常或者需要其他版本,请参阅如下链接,
https://archive.apache.org/dist/hive/
2.3.2 解压安装包
cd ~ tar -xf apache-hive-1.1.0-bin.tar.gz
2.3.2 部署软件包
cd ~ mv apache-hive-1.1.0-bin /usr/
2.4 配置Apache Hive软件包
2.4.1 配置运行用户
groupadd hive useradd -r -g hive -d /var/lib/hive -s /sbin/nologin hive
2.4.2 配置环境变量
vim /etc/profile.d/hive.sh
加入如下配置,
export HIVE_HOME=/usr/apache-hive-1.1.0-bin
export HIVE_PREFIX=${HIVE_HOME}
export PATH=${HIVE_HOME}/bin:$PATH
export HIVE_CONF_DIR=/etc/hive
export HIVE_LOG_DIR=/var/log/hive
export HIVE_PID_DIR=/var/run/hive
#export HIVE_MASTER=localhost:${HIVE_HOME}
export HIVE_IDENT_STRING=$USER
export HIVE_NICENESS=0
根据配置的需求,你需要执行如下命令完成所需的目录设置,
mkdir -p /var/log/hive /var/run/hive chown hive:hive /var/log/hive /var/run/hive ln -s /usr/apache-hive-1.1.0-bin/conf /etc/hive
2.4.3 导入环境变量
source /etc/profile.d/hive.sh
2.4.4 配置hive运行环境
su - hdfs hdfs dfs -mkdir -p /user/hive/warehouse hdfs dfs -mkdir -p /tmp/hive hdfs dfs -chown -R hive:hive /user/hive hdfs dfs -chown -R hive:hive /tmp/hive hdfs dfs -chmod -R 777 /user/hive hdfs dfs -chmod -R 777 /tmp/hive
2.4.5 修改配置文件
cp /etc/hive/hive-default.xml.template /etc/hive/hive-site.xml vim /etc/hive/hive-site.xml
修改如下配置,
<property>
<name>system:java.io.tmpdir</name>
<value>/tmp</value>
</property>
<property>
<name>hive.exec.scratchdir</name>
<value>/tmp/hive</value>
<description>HDFS root scratch dir for Hive jobs which gets created with write all (733) permission. For each connecting user, an HDFS scratch dir: ${hive.exec.scratchdir}/<username> is created, with ${hive.scratch.dir.permission}.</description>
</property>
<property>
<name>hive.metastore.warehouse.dir</name>
<value>/user/hive/warehouse</value>
<description>location of default database for the warehouse</description>
</property>
2.5 测试Apache Hive软件包
2.5.1 测试hive命令行
hive
正常可见如下输出,
Logging initialized using configuration in jar:file:/usr/apache-hive-1.1.0-bin/lib/hive-common-1.1.0.jar!/hive-log4j.properties SLF4J: Class path contains multiple SLF4J bindings. SLF4J: Found binding in [jar:file:/usr/hadoop-2.6.0/share/hadoop/common/lib/slf4j-log4j12-1.7.5.jar!/org/slf4j/impl/StaticLoggerBinder.class] SLF4J: Found binding in [jar:file:/usr/apache-hive-1.1.0-bin/lib/hive-jdbc-1.1.0-standalone.jar!/org/slf4j/impl/StaticLoggerBinder.class] SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation. SLF4J: Actual binding is of type [org.slf4j.impl.Log4jLoggerFactory] hive>
如果遇到如下错误,
[ERROR] Terminal initialization failed; falling back to unsupported
java.lang.IncompatibleClassChangeError: Found class jline.Terminal, but interface was expected
at jline.TerminalFactory.create(TerminalFactory.java:101)
at jline.TerminalFactory.get(TerminalFactory.java:158)
at jline.console.ConsoleReader.(ConsoleReader.java:229)
at jline.console.ConsoleReader.(ConsoleReader.java:221)
at jline.console.ConsoleReader.(ConsoleReader.java:209)
at org.apache.hadoop.hive.cli.CliDriver.getConsoleReader(CliDriver.java:773)
at org.apache.hadoop.hive.cli.CliDriver.executeDriver(CliDriver.java:715)
at org.apache.hadoop.hive.cli.CliDriver.run(CliDriver.java:675)
at org.apache.hadoop.hive.cli.CliDriver.main(CliDriver.java:615)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.apache.hadoop.util.RunJar.run(RunJar.java:221)
at org.apache.hadoop.util.RunJar.main(RunJar.java:136)
Exception in thread "main" java.lang.IncompatibleClassChangeError: Found class jline.Terminal, but interface was expected
at jline.console.ConsoleReader.(ConsoleReader.java:230)
at jline.console.ConsoleReader.(ConsoleReader.java:221)
at jline.console.ConsoleReader.(ConsoleReader.java:209)
at org.apache.hadoop.hive.cli.CliDriver.getConsoleReader(CliDriver.java:773)
at org.apache.hadoop.hive.cli.CliDriver.executeDriver(CliDriver.java:715)
at org.apache.hadoop.hive.cli.CliDriver.run(CliDriver.java:675)
at org.apache.hadoop.hive.cli.CliDriver.main(CliDriver.java:615)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.apache.hadoop.util.RunJar.run(RunJar.java:221)
at org.apache.hadoop.util.RunJar.main(RunJar.java:136)
可参考如下命令处理,
ls /usr/hadoop-2.6.0/share/hadoop/yarn/lib/jline-*.jar cp $(ls /usr/hadoop-2.6.0/share/hadoop/yarn/lib/jline-*.jar) $(ls /usr/hadoop-2.6.0/share/hadoop/yarn/lib/jline-*.jar).default rm -f /usr/hadoop-2.6.0/share/hadoop/yarn/lib/jline-*.jar cp /usr/apache-hive-1.1.0-bin/lib/jline-*.jar /usr/hadoop-2.6.0/share/hadoop/yarn/lib/
2.5.2 测试beeline命令行
beeline
正常可见如下输出,
Beeline version 1.1.0 by Apache Hive beeline>
参阅文档
===============
首页
————
https://hive.apache.org/
软件的介绍
———-
https://cwiki.apache.org/confluence/display/Hive/Home
软件包下载
——————
https://archive.apache.org/dist/hive/
软件安装
—————–
https://cwiki.apache.org/confluence/display/Hive/AdminManual+Installation#AdminManualInstallation-InstallingfromaTarball
https://cwiki.apache.org/confluence/display/Hive/AdminManual+Installation
https://cwiki.apache.org/confluence/display/Hive/GettingStarted
配置软件包
——————
https://cwiki.apache.org/confluence/display/Hive/AdminManual+Configuration
没有评论