😄
本文续:https://yellow520.blog.youkuaiyun.com/article/details/111563044
帅气的目录
1、HIVE配置
cd $HIVE_HOME/conf
| 主要配置文件 | 简述 |
|---|---|
hive-default.xml | 基本配置 |
hive-env.sh | HIVE环境,如:客户端内存、辅助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,注意&和&
vim $HIVE_HOME/conf/hive-site.xml
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>
jdbc:mysql://hadoop100:3306/metastore?useSSL=false&useUnicode=true&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/
去浏览器查看HDFS
9870
在MySQL查看
用Hadoop命令查看
-- 强制删库(若数据库不为空)
DROP DATABASE hjw_temp CASCADE;
强制删库后
本文详细介绍了Hive的配置,包括默认仓库位置、日志设置,以及解决MapReduce执行时的用户权限和内存问题。此外,还讨论了Hive的三种执行方式、中文注释乱码的解决方案,并提供了开启Hive网络服务及IDEA连接的方法。内容涵盖了Hive的基本操作和常见问题处理。




905

被折叠的 条评论
为什么被折叠?



