大数据(3b)HIVE入门补充

本文详细介绍了Hive的配置,包括默认仓库位置、日志设置,以及解决MapReduce执行时的用户权限和内存问题。此外,还讨论了Hive的三种执行方式、中文注释乱码的解决方案,并提供了开启Hive网络服务及IDEA连接的方法。内容涵盖了Hive的基本操作和常见问题处理。

                                😄
本文续:https://yellow520.blog.youkuaiyun.com/article/details/111563044

1、HIVE配置

cd $HIVE_HOME/conf
主要配置文件简述
hive-default.xml基本配置
hive-env.shHIVE环境,如:客户端内存、辅助jar的路径…
hive-log4j2.properties日志相关

1.1、建库不指定LOCATION时的默认位置

vim hive-default.xml
<property>
    <name>hive.metastore.warehouse.dir</name>
    <value>/user/hive/warehouse</value>
    <description>location of default database for the warehouse</description>
</property>

1.2、日志相关

mv hive-log4j2.properties.template hive-log4j2.properties
vim hive-log4j2.properties

HIVE日志默认存储路径(临时目录+用户名:/tmp/root

property.hive.log.dir = ${sys:java.io.tmpdir}/${sys:user.name}

HIVE日志默认文件名

property.hive.log.file = hive.log

HIVE日志默认等级

property.hive.perflogger.log.level = INFO

2、HIVE执行MapReduce曾遇报错

2.1、用户问题

虽然能进入HIVE,但在插入数据时,才真正执行MapReduce,此时遇到报错

终端界面提示:
FAILED: Execution Error, return code 2 from org.apache.hadoop.hive.ql.exec.mr.MapRedTask

再查YARN历史:
Error: Could not find or load main class org.apache.hadoop.mapreduce.v2.app.MRAppMaster

解决方案:https://yellow520.blog.youkuaiyun.com/article/details/115724120

2.2、内存问题

还有个报错是Container [pid=6982,containerID=container_1609054009886_0001_01_000005] is running 537283072B beyond the 'VIRTUAL' memory limit. Current usage: 103.6 MB of 1 GB physical memory used; 2.6 GB of 2.1 GB virtual memory used. Killing container

大概是说:container因内存使用超出限制而被杀掉;于是加入下面配置

vi $HADOOP_HOME/etc/hadoop/yarn-site.xml
<!-- 不 检查物理内存 -->
<property>
    <name>yarn.nodemanager.pmem-check-enabled</name>
    <value>false</value>
</property>
<!-- 不 检查虚拟内存 -->
 <property>
    <name>yarn.nodemanager.vmem-check-enabled</name>
    <value>false</value>
</property>
vi $HADOOP_HOME/etc/hadoop/mapred-site.xml
<!-- Map内存,单位MB-->
<property>
    <name>mapreduce.map.memory.mb</name>
    <value>512</value>
</property>
<!-- Reduce内存,单位MB -->
<property>
    <name>mapreduce.reduce.memory.mb</name>
    <value>1024</value>
</property>
<!-- Map下Java程序最大内存 -->
<property>
    <name>mapreduce.map.java.opts</name>
    <value>-Xmx384m</value>
</property>
<!-- Reduce下Java程序最大内存 -->
<property>
    <name>mapreduce.reduce.java.opts</name>
    <value>-Xmx768m</value>
</property>

3、HIVE的三种执行方式

执行方式说明示例
hive交互界面hive
hive -e命令行hive --database '库名' -e 'SHOW TABLES'
hive -f文件模式hive -f ./hive-script.sql

4、解决HIVE中文注释乱码

加上useUnicode=true&characterEncoding=UTF-8,注意&&amp;

vim $HIVE_HOME/conf/hive-site.xml
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>
jdbc:mysql://hadoop100:3306/metastore?useSSL=false&amp;useUnicode=true&amp;characterEncoding=UTF-8
</value>
</property>

修改mysql元数据字符集为utf-8

mysql -uroot -p123456 -Dmetastore
ALTER TABLE DBS MODIFY COLUMN `DESC` VARCHAR(4000) CHARACTER SET utf8;
ALTER TABLE COLUMNS_V2 MODIFY COLUMN `COMMENT` VARCHAR(256) CHARACTER SET utf8;
ALTER TABLE TABLE_PARAMS MODIFY COLUMN PARAM_VALUE VARCHAR(4000) CHARACTER SET utf8;
ALTER TABLE PARTITION_PARAMS MODIFY COLUMN PARAM_VALUE VARCHAR(4000) CHARACTER SET utf8;
ALTER TABLE PARTITION_KEYS MODIFY COLUMN PKEY_COMMENT VARCHAR(4000) CHARACTER SET utf8;
ALTER TABLE INDEX_PARAMS MODIFY COLUMN PARAM_VALUE VARCHAR(4000) CHARACTER SET utf8;

5、HIVE开启网络服务并使用IDEA连接

https://blog.youkuaiyun.com/Yellow_python/article/details/115944692

6、入门DDL和DML

-- 建库
CREATE DATABASE IF NOT EXISTS hjw_temp;
-- 切换库
USE hjw_temp;
-- 建表
CREATE TABLE student (s_id INT,s_name STRING)
ROW FORMAT DELIMITED FIELDS TERMINATED BY ',';
-- 写数据
INSERT INTO TABLE student VALUES(1,'a1'),(2,'b3');
-- 查询
SELECT * FROM student;

建库默认路径:/user/hive/warehouse/

去浏览器查看HDFS9870

在MySQL查看

用Hadoop命令查看

-- 强制删库(若数据库不为空)
DROP DATABASE hjw_temp CASCADE;

强制删库后

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小基基o_O

您的鼓励是我创作的巨大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值