Hive本地模式搭建

                                 (基于Hadoop2.8.5的本地模式Hive安装)

本安装依赖Haddop2.8安装

一、下载Hive与MySQL jdbc 连接驱动

apache-hive-2.3.6-bin.tar.gz 官方网站

mysql-connector-java-5.1.47.tar.gz oracle官网

二、解压安装Hive

1、使用Hadoop用户进行下面操作

2、解压缩

mkdir -p  /home/hadoop/hive/

tar -vzxf apache-hive-2.3.6-bin.tar.gz -C /home/hadoop/hive/

3、配置结点环境变量

cat ~/.bash_profile

添加如下:

export HIVE_HOME=/home/hadoop/hive/apache-hive-2.3.6-bin
export PATH=$PATH:$HIVE_HOME/bin

source ~/.bash_profile

 

4、hadoop下创建hive所用文件夹

1)创建hive所需文件目录

hadoop fs -mkdir -p /home/hadoop/hive/tmp

hadoop fs -mkdir -p /home/hadoop/hive/data

mkdir -p /home/hadoop/hive/log

mkdir -p /home/hadoop/hive/download

hadoop fs -chmod g+w /home/hadoop/hive/tmp

hadoop fs -chmod g+w /home/hadoop/hive/data

2)检查是否创建成功

hadoop fs -ls /home/hadoop/hive/

[hadoop@centoshadoop1 ~]$ hadoop fs -ls /home/hadoop/hive/

Found 2 items

drwxrwxr-x   - hadoop supergroup          0 2020-03-20 10:27 /home/hadoop/hive/data

drwxrwxr-x   - hadoop supergroup          0 2020-03-20 10:27 /home/hadoop/hive/tmp

 

3)后面进入hive可能会爆出权限问题

hadoop fs -chmod -R 777 /home/hadoop/hive/tmp

hadoop fs -chmod -R 777 /home/hadoop/hive/data

5、将MySQL驱动copy至hive lib下面

cp mysql-connector-java-5.1.47.jar /home/hadoop/hive/apache-hive-2.3.6-bin/lib/

6、MySQL创建hive所需database、user

create database hive_db;

create user hive  IDENTIFIED by 'hive';     创建hive账号与hive密码

grant all privileges on *.* to hive@'%' identified by 'hive' WITH GRANT OPTION;

flush privileges;

 

退出 root 重新登录,使用hive登录检查本地登录是否正常,输入密码后,正常登录,并使用show databases命令查看数据库赋权是否正常。

mysql -u hive -p

输入密码hive

执行 use hive_db; show tables; 都没问题

执行show databases;  

ERROR 1227 (42000): Access denied; you need (at least one of) the SHOW DATABASES privilege(s) for this operation

待解决:

三、修改配置文件

cd /home/hadoop/hive/apache-hive-2.3.6-bin/conf

cp hive-env.sh.template hive-env.sh

cp hive-default.xml.template hive-site.xml

cp hive-exec-log4j2.properties.template hive-exec-log4j2.properties

cp hive-log4j2.properties.template hive-log4j2.properties

 

1、修改hive-env.sh

添加如下:

export JAVA_HOME=/home/hadoop/java/jdk1.8.0_192
# 指定hadoop安装路径

export HADOOP_HOME=/home/hadoop/hadoop-ha/hadoop/hadoop-2.8.5

# 指定hive的配置文件路径

export HIVE_CONF_DIR=/home/hadoop/hive/apache-hive-2.3.6-bin/conf

#指定hive运行的类库目录

export HIVE_AUX_JARS_PATH=/home/hadoop/hive/apache-hive-2.3.6-bin/lib

 

2 ,修改hive-site.xml

最主要的就是配置数据库,存储元数据,可以配置本地或远程的数据库,内嵌的一般不用,主要修改以下数据库连接参数。还有需要配置目录的需要手动创建目录,并修改属组,在hive-site.xml文件中

"system:java.io.tmpdir/ {system:java.io.tmpdir}/system:java.io.tmpdir/{system:user.name}"值需要修改成本地路径目录。HDFS中的目录即使配置了会自动生成,也可以使用默认值

 <!--Hive在HDFS中的缓存目录 -->

   <property>

        <name>hive.exec.scratchdir</name>

        <value>/home/hadoop/hive/tmp</value>

   </property>

   <!-- Hive在本地的存储目录-->

   <property>

        <name>hive.exec.local.scratchdir</name>

        <value>/home/hadoop/hive/tmp</value>

   </property>

   <!--从远程文件系统中添加资源的本地临时目录 -->

   <property>

        <name>hive.downloaded.resources.dir</name>

        <value>/home/hadoop/hive/download</value>

   </property>

   <!-- warehouse目录,即hive在HDFS上的存储目录,可使用默认值 -->

   <property>

       <name>hive.metastore.warehouse.dir</name>

       <value>/home/hadoop/hive/data</value>

   </property>

   <!-- Hive运行时的结构化日志目录-->

   <property>

       <name>hive.querylog.location</name>

       <value>/home/hadoop/hive/log</value>

   </property>

   <!-- 日志功能开启时,存储操作日志的最高级目录-->

   <property>

       <name>hive.server2.logging.operation.log.location</name>

       <value>/home/hadoop/hive/tmp</value>

   </property>

<!-- 配置 MySQL 数据库连接信息 -->

 

   <property>

        <name>javax.jdo.option.ConnectionURL</name> <value>jdbc:mysql://ip:3306/hive_db?createDatabaseIfNotExist=true&characterEncoding=UTF-8&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>hive</value>

   </property>

   <property>

       <name>javax.jdo.option.ConnectionPassword</name>

       <value>hive</value>

   </property>

</configuration>

 

3,修改日志文件hive-exec-log4j2.properties

#手动创建目录,其属组需要修改成hive的安装用户

mkdir -p  /home/hadoop/hive/exec-hiveLog4j2/

property.hive.log.dir = /home/hadoop/hive/exec-hiveLog4j2/

,4,修改日志文件: hive-log4j2.properties

#手动创建目录,其属组需要修改成hive的安装用户

property.hive.log.dir = /home/hadoop/hive/hiveLog4j2/

5,初始化Hive,初始化Hive在MySQL中的元数据信息 

schematool -dbType mysql -initSchema

初始化成功输出下面的日志信息:

Starting metastore schema initialization to 2.3.0

Initialization script hive-schema-2.3.0.mysql.sql

Initialization script completed schemaTool

Completed

需要注意的是,若需要程序初始化,则重新初始化之前需要删除元数据库hive_db中的所有表,否则初始化失败.

6,登录hive,进入Hive CLI命令行模式,该命令会启动Hive的CLI服务,因此也可以使用命令hive --service cli代替,同样会进入Hive的命令行模式,登录成功后如下

[hadoop@centoshadoop1 conf]$ hive

hive> show databases;

show databases

OK

default

Time taken: 22.084 seconds, Fetched: 1 row(s)

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值