从零配置hive+案例练习+常见问题解决方法

前期准备

上传hive包(已上传资源包)
解压到/opt/module/下

tar -zxvf apache-hive-3.1.2-bin.tar.gz -C /opt/module/

修改解压后的名字

mv apache-hive-3.1.2-bin/ hive

在这里插入图片描述

配置

进入到/opt/module/hive/conf

cd /opt/module/hive/conf

在这里插入图片描述
修改标注的文件名

mv hive-env.sh.template hive-env.sh

在这里插入图片描述

 vi hive-env.sh

添加以下这两个配置(Hadoop路径和hive路径,自己灵活改动)
在这里插入图片描述
配置好启动HDFS

start-dfs.sh

先查看HDFS文件系统现有目录

hadoop fs -lsr /

在这里插入图片描述

在HDFS上创建/tmp和/user/hive/warehouse两个目录并修改他们的同组权限可写

hadoop fs -mkdir -p /user/hive/warehouse
hadoop fs -mkdir /tmp

在这里插入图片描述
修改权限

hadoop fs -chmod 777 /user/hive/warehouse

在这里插入图片描述

hadoop fs -chmod 777 /tmp

在这里插入图片描述
启动hive

cd /opt/module/hive
bin/hive

启动不成功,这里有个坑,下面是问题描述和解决办法

在Hadoop3.2.2中安装hive3.1.2时,会出现版本不兼容的情况,报错如下:
Exception in thread “main” java.lang.NoSuchMethodError: com.google.common.base.Preconditions.checkArgument(ZLjava/lang/String;Ljava/lang/Object;)V
at org.apache.hadoop.conf.Configuration.set(Configuration.java:1380)

at org.apache.hadoop.util.RunJar.main(RunJar.java:236)

原因:
hadoop和hive的两个guava.jar版本不一致
两个位置分别位于下面两个目录:

  • /opt/module/hive/lib
  • /opt/module/hadoop-3.2.2/share/hadoop/common/lib

解决办法:
删除低版本的那个,将高版本的复制到低版本目录下
这种情况是Hadoop3.2.2中的guava-27.0-jre.jar版本高于Hive中的19.0版本了,只需删除hive中的19.0版本的guava.jar,让后吧Hadoop中guaca-27.0-jre.jar复制过来即可。

cp guava-27.0-jre.jar /opt/module/hive/lib/

在这里插入图片描述

使用过程,还有一个坑,下面是问题描述和解决办法

show databases;

执行以上命令发现出错了
在这里插入图片描述
下面解决:

cd /opt/module/hive
rm -rf metastore_db

在这里插入图片描述

bin/schematool -initSche
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
以下是一个使用Hive和Kettle的示例案例: 假设有一个电子商务网站,需要进行用户行为分析。该网站有一个日志文件,其中包含了用户在网站上的各种操作,例如点击商品、添加到购物车、下单等。 1. 创建Hive表 首先,需要在Hive中创建一个表来存储日志文件数据。假设日志文件以文本格式存储,每行记录包含以下字段:时间戳、用户ID、操作类型、商品ID。 使用以下命令在Hive中创建表: ``` CREATE TABLE user_behavior( timestamp BIGINT, user_id STRING, action_type STRING, item_id STRING ) ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t'; ``` 2. 使用Kettle将数据导入Hive表 接下来,使用Kettle将日志文件数据导入Hive表中。Kettle是一个ETL工具,可以从不同的数据源中提取数据,并将数据转换为所需的格式,最终将数据加载到目标数据库中。 在Kettle中,可以使用Hadoop文件输入步骤读取日志文件数据,使用转换步骤将数据转换为Hive表中的格式,最后使用Hive输出步骤将数据加载到Hive表中。 3. 进行用户行为分析 完成数据导入后,可以使用Hive进行用户行为分析。例如,可以使用以下语句计算每个商品的点击量: ``` SELECT item_id, COUNT(*) as click_count FROM user_behavior WHERE action_type = 'click' GROUP BY item_id ORDER BY click_count DESC; ``` 可以使用类似的方式进行其他分析,例如计算添加到购物车的商品数量、计算下单的用户数量等等。 总之,使用Hive和Kettle可以方便地进行大规模数据处理和分析,适用于各种场景,例如电子商务网站的用户行为分析、金融机构的风险管理、医疗机构的患者数据分析等等。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值