安装配置hive仓库

本文详细介绍了在CentOS环境下搭建Hive数据仓库的过程,包括安装配置Hadoop、MySQL,以及Hive的安装与配置步骤。重点讲解了如何使用MySQL作为Hive的元数据存储,并提供了Hive命令行的基本操作示例。

hive 是基于Hadoop的数据仓库,所以在安装hive之前需要先安装配置好hadoop环境,同时需要开启hadoop的hdfs模块和yarn模块(yarn模块用于资源调度)。本文需要使用MySQL存放hive的元数据,所以请先在本机上安装配置MySQL

说在前面
  • 工作环境:VMware® Workstation 12 Pro 12.5.6 build-5528349
  • linux版本:CentOS-7-x86_64-Minimal-1611.iso
  • JDK版本:jdk-8u65-linux-x64.tar.gz
  • Hadoop版本:hadoop-2.7.6.tar.gz
  • MySQL版本:mysql-5.6.41-linux-glibc2.12-x86_64.tar.gz
  • Hive版本:apache-hive-2.3.3-bin.tar.gz
一. 安装hive
//解压 apache-hive-2.3.3-bin.tar.gz
$> tar -xzvf apache-hive-2.3.3-bin.tar.gz -C /soft

//为解压出的文件 apache-hive-2.3.3-bin 创建符号链接
$> ln -s apache-hive-2.3.3-bin hive

  • 在 /etc/profile 文件下配置环境变量
$> sudo nano /etc/profile

//导入配置
export HIVE_HOME=/soft/hive
export PATH=$PATH:$HIVE_HOME/bin
  • 验证hive是否配置成功:出现版本号
$> hive --version

image

二. 配置hive

使用mysql存放hive的元数据

  • 将mysql的驱动程序复制到 /soft/hive/lib 目录下

  • 将 /soft/hive/conf/hive-default.xml.template 文件复制为 hive-site.xml,并进行如下配置:

$> cp /soft/hive/conf/hive-default.xml.template /soft/hive/conf/hive-site.xml 

//配置如下属性
<property>
    <name>javax.jdo.option.ConnectionDriverName</name>
    <value>com.mysql.jdbc.Driver</value>
    <description>Driver class name for a JDBC metastore</description>
  </property>
  <property>
    <name>javax.jdo.option.ConnectionURL</name>
    <value>jdbc:mysql://localhost:3306/hive</value>
    <description>
      JDBC connect string for a JDBC metastore.
      To use SSL to encrypt/authenticate the connection, provide database-specific SSL flag in the connection URL.
      For example, jdbc:postgresql://myhost/db?ssl=true for postgres database.
    </description>
  </property>
  <property>
    <name>javax.jdo.option.ConnectionUserName</name>
    <value>root</value>
    <description>Username to use against metastore database</description>
  </property>
  <property>
    <name>javax.jdo.option.ConnectionPassword</name>
    <value>root</value>
    <description>password to use against metastore database</description>
  </property>
  
   <property>
    <name>hive.exec.local.scratchdir</name>
    <value>/home/centosmin0/hive</value>
    <description>Local scratch space for Hive jobs</description>
  </property>
   <property>
    <name>hive.downloaded.resources.dir</name>
    <value>/home/centosmin0/hive/downloads</value>
    <description>Temporary local directory for added resources in the remote file system.</description>
  </property>
  <property>
    <name>hive.querylog.location</name>
    <value>/home/centosmin0/hive/querylog</value>
    <description>Location of Hive run time structured log file</description>
  </property>
  <property>
    <name>hive.server2.logging.operation.log.location</name>
    <value>/home/centosmin0/hive/server2_logs</value>
    <description>Top level directory where operation logs are stored if logging functionality is enabled</description>
  </property>
  <property>
    <name>hive.metastore.schema.verification</name>
    <value>false</value>
    <description>
      Enforce metastore schema version consistency.
      True: Verify that version information stored in is compatible with one from Hive jars.  Also disable automatic
            schema migration attempt. Users are required to manually migrate schema after Hive upgrade which ensures
            proper metastore schema migration. (Default)
      False: Warn if the version information stored in metastore doesn't match with one from in Hive jars.
    </description>
  </property>
  
  <property>
    <name>hive.server2.enable.doAs</name>
    <value>false</value>
    <description>
      Setting this property to true will have HiveServer2 execute
      Hive operations as the user making the calls to it.
    </description>
  </property>
  • 在mysql中创建存放hive元数据的数据库 hive
mysql> create database hive;
  • 初始化hive的元数据到mysql中
$> cd /soft/hive/bin
$> schematool -dbType mysql -initSchema

注意:在这个步骤很有可能初始化失败,报:权限异常

image

解决办法:为 127.0.0.1 添加权限:grant all privileges on . to ‘root’@‘127.0.0.1’ identified by ‘root’;

image

元数据初始化成功

image

image

  • 通过hdfs命令查看:默认会有 /user/hive/warehouse 目录

image

image

image

三. hive的基本命令行操作

hive的命令和mysql基本相同

$hive>hive --version				//版本
$hive>hive --help			        //帮助

$hive>create database mydb2 ;		        //创建数据库 mydb2
$hive>show databases ;
$hive>use mydb2 ;
$hive>create table mydb2.t(id int,name string,age int);
$hive>drop table t ;
$hive>drop table mydb2.t ;
$hive>select * from mydb2.t ;		//查看指定库的表
$hive>exit ;						//退出

$>hive								//hive --service cli
$>hive								//hive --service cli
<think>我们正在处理用户关于Hive安装配置的问题。根据引用内容,我们可以整合一个详细的安装配置教程。用户提供的引用中包含了多个步骤和注意事项,我们需要将这些信息结构化,并确保步骤清晰。主要步骤包括:1.环境准备:Java、Hadoop、MySQL的安装。2.下载并安装Hive。3.配置环境变量。4.配置Hive(包括元数据存储到MySQL)。5.测试Hive。注意:引用[4]中提到了一些潜在问题,我们在教程中需要加入注意事项以避免这些问题。由于用户要求使用中文回答,并且按照指定格式(行内数学表达式用$...$,独立公式用$$...$$),但本问题中可能不涉及数学公式,所以重点放在步骤描述上。另外,根据要求,我们需要在回答末尾生成相关问题。参考引用:[^1]提供了MySQL安装包的解压命令。[^2]提供了环境准备(Java、MySQL安装)和Hive下载安装的详细命令,以及环境变量配置。[^3]提供了将MySQL的JDBC驱动复制到Hive的lib目录的步骤。[^4]提供了一些问题分析,比如MySQL服务启动失败、RPM包安装失败、性能问题等,我们可以在注意事项中提及。整合步骤:1.环境准备-安装Java(引用[2])-安装Hadoop(用户可能已经安装,这里不展开,但需要确认)-安装MySQL(引用[1]和[2])2.下载并解压Hive(引用[2])3.配置环境变量(引用[2])4.配置Hive-复制MySQL的JDBC驱动到Hive的lib目录(引用[3])-修改Hive配置文件(hive-site.xml)以使用MySQL存储元数据(引用[2]和[3]没有直接给出,但这是必要步骤,需要补充)5.初始化元数据库(引用[2]提到需要初始化,但未给出命令,需要补充)6.启动Hive测试注意事项:引用[4]中提到的问题,如MySQL服务启动失败、RPM包安装失败、环境变量配置错误等,我们将在相应步骤中提示。由于引用中部分步骤不完整,我们将结合常见安装流程补充必要内容。开始构建回答:</think>### Hive数据仓库安装配置教程 #### 一、环境准备 1. **系统要求**: - Java 8或更高版本(推荐OpenJDK) - Hadoop 2.x/3.x集群(已正常启动) - MySQL 5.7+(或其他兼容数据库) 2. **安装依赖**: ```bash # 安装Java sudo apt update sudo apt install openjdk-8-jdk # 安装MySQL(以Ubuntu为例) sudo apt install mysql-server sudo systemctl start mysql # 启动服务 ``` #### 二、下载并安装Hive 1. **下载解压**: ```bash mkdir -p /usr/local/hive cd /usr/local/hive wget https://downloads.apache.org/hive/hive-3.1.3/apache-hive-3.1.3-bin.tar.gz tar -xzvf apache-hive-3.1.3-bin.tar.gz mv apache-hive-3.1.3-bin hive # 重命名目录 ``` 2. **配置环境变量**: ```bash # 编辑~/.bashrc export HIVE_HOME=/usr/local/hive/hive export PATH=$PATH:$HIVE_HOME/bin # 使配置生效 source ~/.bashrc ``` #### 三、MySQL元数据配置 1. **创建元数据库**: ```sql CREATE DATABASE metastore_db; CREATE USER 'hiveuser'@'%' IDENTIFIED BY 'hivepassword'; GRANT ALL PRIVILEGES ON metastore_db.* TO 'hiveuser'@'%'; FLUSH PRIVILEGES; ``` 2. **复制JDBC驱动**: ```bash # 将MySQL驱动放入Hive的lib目录 sudo cp mysql-connector-java-8.0.28.jar $HIVE_HOME/lib/ ``` #### 四、配置Hive参数 在 `$HIVE_HOME/conf/hive-site.xml` 中添加: ```xml <configuration> <!-- 元数据库连接 --> <property> <name>javax.jdo.option.ConnectionURL</name> <value>jdbc:mysql://localhost/metastore_db?createDatabaseIfNotExist=true</value> </property> <property> <name>javax.jdo.option.ConnectionDriverName</name> <value>com.mysql.jdbc.Driver</value> </property> <property> <name>javax.jdo.option.ConnectionUserName</name> <value>hiveuser</value> </property> <property> <name>javax.jdo.option.ConnectionPassword</name> <value>hivepassword</value> </property> <!-- HDFS存储路径 --> <property> <name>hive.metastore.warehouse.dir</name> <value>/user/hive/warehouse</value> </property> </configuration> ``` #### 五、初始化与验证 1. **初始化元数据库**: ```bash schematool -dbType mysql -initSchema ``` 2. **启动测试**: ```bash # 启动Hive CLI hive # 执行测试命令 hive> CREATE TABLE test(id INT); hive> INSERT INTO test VALUES(1); hive> SELECT * FROM test; # 应返回1 ``` #### 六、常见问题解决 1. **MySQL服务启动失败**: ```bash # 检查服务状态 sudo systemctl status mysql # 若提示"Unit not found",重新安装MySQL[^4] ``` 2. **JDBC驱动问题**: - 确认驱动文件名与配置一致 - 检查驱动版本兼容性(推荐8.x) 3. **HDFS权限问题**: ```bash hadoop fs -mkdir /tmp hadoop fs -chmod g+w /tmp hadoop fs -mkdir -p /user/hive/warehouse hadoop fs -chmod g+w /user/hive/warehouse ``` > **性能提示**:数据插入慢时可调整`hive.exec.parallel`参数[^4]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值