Hive安装

说明hive有两种方式共享元数据
1)mysql
2)derby:缺点(多个地方安装hive后,每一个hive是拥有一套自己的元数据,大家的库、表就不统一)
这里就介绍mysql的方式共享元数据

说明:hive是一个客户端,底层存储的数据是hdfs,所以,我们只需要在一台机器上安装hive即可

一、 Mysql数据安装

使用yum源进行安装。不推荐使用rpm包的方式进行安装。

1.1 下载并安装MySQL官方的 Yum Repository

1)下载了安装用的Yum Repository

wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm

2)yum安装

yum -y install mysql57-community-release-el7-10.noarch.rpm

3)卸载yum源,防止自动更新

yum -y remove mysql57-community-release-el7-10.noarch

1.2 MySQL数据库设置

1)首先启动MySQL
systemctl start mysqld.service

2)查看MySQL运行状态
systemctl status mysqld.service

3)MySQL正常运行,进入MySQL还得先找出此时root用户的密码,通过如下命令可以在日志文件中找出密码:
grep “password” /var/log/mysqld.log

4)进入数据库
mysql -uroot -p

5)修改密码
ALTER USER ‘root’@‘localhost’ IDENTIFIED BY ‘new password’;

若密码设置不成功,原因mysql对密码有要求,可以通过如下命令设置:
mysql> set global validate_password_policy=0;
mysql> set global validate_password_length=1;

6)开启mysql远程连接
grant all privileges on . to ‘root’@’%’ identified by ‘root’ with grant option;
flush privileges;

7)开机自启动
centos7的,没弄

二、安装hive

2.1 安装

从 http://archive.cloudera.com/cdh5/cdh/5/ 下载对应软件;
解压hive-1.1.0-cdh5.14.0
tar -zxvf hive-1.1.0-cdh5.14.0.tar.gz -C /opt/module/

2.1.1 修改hive-env.sh

添加我们的hadoop的环境变量
cd /opt/module/hive-1.1.0-cdh5.14.0/conf
cp hive-env.sh.template hive-env.sh
vim hive-env.sh

HADOOP_HOME=/opt/module/hadoop-2.6.0-cdh5.14.0
# Hive Configuration Directory can be controlled by:
export HIVE_CONF_DIR=/opt/module/hive-1.1.0-cdh5.14.0/conf

2.1.2 修改hive-site.xml

cd /opt/module/hive-1.1.0-cdh5.14.0/conf
vim hive-site.xml

<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
	<property>
         <name>javax.jdo.option.ConnectionURL</name>
         <value>jdbc:mysql://node03.hadoop.com:3306/hive?useSSL=false</value>
    </property>

    <property>
         <name>javax.jdo.option.ConnectionDriverName</name>
         <value>com.mysql.jdbc.Driver</value>
    </property>
    <property>
         <name>javax.jdo.option.ConnectionUserName</name>
         <value>root</value>
    </property>
    <property>
         <name>javax.jdo.option.ConnectionPassword</name>
          <value>root</value>
    </property>
    <property>
         <name>hive.cli.print.current.db</name>
          <value>true</value>
    </property>
    <property>
          <name>hive.cli.print.header</name>
          <value>true</value>
    </property>
    <property>
          <name>hive.server2.thrift.bind.host</name>
          <value>node01.hadoop.com</value>
    </property>
<!--
    <property>
          <name>hive.metastore.uris</name>
          <value>thrift://node03.hadoop.com:9083</value>
    </property>
-->
</configuration>

2.1.2 配置查询显示字段名

当我们使用hive cli的方式查询时,没有显示字段名,不好看,可以配置hive-site.xml,如下:

<!-- 显示表的列名 -->
<property>
     <name>hive.cli.print.header</name>
     <value>true</value>
</property>
    
<!-- 显示数据库名称 -->
<property>
     <name>hive.cli.print.current.db</name>
     <value>true</value>
</property>
<!-- 屏蔽字段名带表名 -->
<property>
     <name>hive.resultset.use.unique.column.names</name>
     <value>false</value>
</property>

2.2 报错处理

问题1:

You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide

解决办法:在配置的数据库后面添加一个?useSSL=false

<property>
     <name>javax.jdo.option.ConnectionURL</name>
     <value>jdbc:mysql://node01.hadoop.com:3306/hive?useSSL=false</value>
</property>

问题2:

FAILED: SemanticException org.apache.hadoop.hive.ql.metadata.HiveException: java.lang.RuntimeException: Unable to instantiate org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient
hive (default)> exit;

原因:元数据没法初始化,需要启动thrift服务端:bin/hive --service metastore &

1、hive的metastore : 通过hive metastore能访问hive的元数据,hive的元数据使用Data Nucleus持久化,因此mysql等数据库可以和hive结合,存储元数据。
2、配置metastore服务器或者数据库:两种方式内嵌的derby数据和远程方式
3、远程metastore服务端和客户端之间使用Thrift协议通信。执行hive --service metastore 启动Thrift服务端,如不,直接执行SQL语句就会报错

问题3:

Exception in thread "main" org.apache.thrift.transport.TTransportException: Could not create ServerSocket on address 0.0.0.0/0.0.0.0:9083.
        at org.apache.thrift.transport.TServerSocket.<init>(TServerSocket.java:109)
        at org.apache.thrift.transport.TServerSocket.<init>(TServerSocket.java:91)
Caused by: java.net.BindException: Address already in use

原因,启动Thrift服务端重复启动,jps 查看 runJar的进程,方法kill -9 ;
重复启动bin/hive -service metastore &

### Hive 安装教程概述 Hive 是一种建立在 Hadoop 上的数据仓库工具,支持结构化数据的查询和分析。以下是基于多种资料整理而成的一份完整的 Hive 安装指南。 --- #### 1. 准备工作 在安装 Hive 之前,需要完成以下准备工作: - **Java 环境配置** Hive 需要 Java 环境的支持。可以通过以下命令安装 JDK 并设置环境变量[^2]: ```bash mkdir -p /opt/module tar -zxvf /tmp/jdk-8u391-linux-x64.tar.gz -C /opt/module/ echo "export JAVA_HOME=/opt/module/jdk1.8.0_391" >> /etc/profile echo 'export PATH=$PATH:$JAVA_HOME/bin' >> /etc/profile source /etc/profile ``` - **Hadoop 环境准备** Hive 查询依赖于 Hadoop 提供的分布式计算能力。因此,在安装 Hive 前需先部署好 Hadoop 集群或单机版环境[^3]。 - **MySQL 数据库配置(可选)** 如果希望将 Hive 的元数据存储到 MySQL 中,则需要提前安装并初始化 MySQL 数据库[^4]。可以参考以下命令进行最小化安装: ```bash sudo apt-get update sudo apt-get install mysql-server service mysql start ``` --- #### 2. Hive 下载与解压 下载最新版本的 Hive 并将其解压至目标目录。例如,对于 Hive 3.1.3 版本,操作如下[^4]: ```bash cd /usr/local sudo wget https://mirrors.tuna.tsinghua.edu.cn/apache/hive/hive-3.1.3/apache-hive-3.1.3-bin.tar.gz sudo tar -zxvf apache-hive-3.1.3-bin.tar.gz sudo mv apache-hive-3.1.3-bin hive ``` --- #### 3. 环境变量配置 为了方便调用 Hive 工具,建议修改系统的环境变量文件 `~/.bashrc` 或 `/etc/profile`,添加以下内容: ```bash export HIVE_HOME=/usr/local/hive export PATH=$PATH:$HIVE_HOME/bin source ~/.bashrc ``` --- #### 4. 配置 Hive 参数 进入 Hive 的配置目录 (`$HIVE_HOME/conf`),并将默认模板文件复制为实际使用的配置文件[^5]: ```bash cp $HIVE_HOME/conf/hive-default.xml.template $HIVE_HOME/conf/hive-site.xml ``` 随后,编辑 `hive-site.xml` 文件以指定必要的参数。例如,定义本地临时目录的位置: ```xml <property> <name>hive.exec.local.scratchdir</name> <value>/path/to/hive/local/scratchdir</value> <description>Local scratch space for Hive jobs</description> </property> ``` 如果使用 MySQL 存储元数据,还需额外配置 JDBC 连接信息。具体示例如下: ```xml <property> <name>javax.jdo.option.ConnectionURL</name> <value>jdbc:mysql://localhost:3306/metastore?createDatabaseIfNotExist=true&useSSL=false</value> </property> <property> <name>javax.jdo.option.ConnectionDriverName</name> <value>com.mysql.cj.jdbc.Driver</value> </property> <property> <name>javax.jdo.option.ConnectionUserName</name> <value>root</value> </property> <property> <name>javax.jdo.option.ConnectionPassword</name> <value>password</value> </property> ``` --- #### 5. 启动 Hive 和验证 完成以上步骤后,即可启动 Hive 并验证其功能。首先确保 Hadoop 集群已正常运行[^3]: ```bash cd /usr/local/hadoop ./sbin/start-dfs.sh ``` 接着尝试启动 Hive CLI 或 Beeline 接口: ```bash cd /usr/local/hive ./bin/hive ``` 或者通过 Beeline 方式连接: ```bash ./bin/beeline -u jdbc:hive2://localhost:10000 ``` --- #### 6. 常见问题排查 在安装过程中可能会遇到一些常见的错误提示。例如,JDBC 驱动缺失时需要手动下载对应的驱动包,并放置到 `$HIVE_HOME/lib` 目录下。 --- ### 结论 按照上述流程,能够顺利完成 Hive安装与基本配置过程。需要注意的是,生产环境中通常还需要进一步优化性能参数以及增强安全性措施。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值