如何部署Oracle Linux 10.x Apache Hive CLI和Beeline CLI?

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

没有评论

发表回复

Apache-Hadoop
如何解决cmak添加集群报错?

1 前言 一个问题,一篇文章,一出故事。 今天在cmak中添加集群(Add Cluster)出现如下 …

Apache-Hadoop
如何部署Oracle Linux 10.x CMAK?

1 基础知识 如何二进制部署CMAK? 2 最佳实践 2.1 软件环境 2.1.1 Kafka集群环 …

Apache-Hadoop
如何解决Apache Kafka启动异常问题?

1 前言 一个问题,一篇文章,一出故事。 今天安装Apache Kafka,不慎给了已经使用的bro …