Advertisement

2024年大数据最全CDH 之 hive 数据迁移_cdh数据互导,2024年最新程序员工作2年月薪12K

阅读量:
img
img
img

涵盖适合初学者的基础知识库的同时也提供了针对3年以上经验者的专业级课程内容全面覆盖了超过95%的核心大数据知识点并实现了真正的体系化

因为文件数量较多,在此仅作为参考提供了一部分目录截图,并对其中的大厂面经进行了详细分类整理:包括学习笔记文档、教学材料(源码讲义)、实践项目库(大纲路线)、讲解视频(后续也会不断更新和完善这一资源库)。

需要这份系统化资料的朋友,可以戳这里获取

复制代码
    将导下来的 tables.sql 和 test.db 库文件上传至目标服务器,导入 sql 文件(前提是源服务器和目的服务器的hive版本要一致,否则需要做相关转换)
    
    
    3.查看 hive 版本并导入 tables.sql

在开始操作之前,请先创建数据库。
hive> show databases;
请查看当前存在的数据库列表:
default
耗时1.399秒, 成功检索出1条记录
hive> create database test;
执行以下SQL语句时出现错误:
FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. MetaException(message:Got exception: org.apache.hadoop.security.AccessControlException Permission denied: user=root, access=WRITE, inode=“/user”:huser:hdfs:hadoop:drwxr-xr-x
这个错误提示表明您没有权限进行此操作。
操作完成

复制代码
            报错的原因是:Hive没有足够的权限来在HDFS上创建数据库目录。默认情况下,Hive使用当前用户的身份来执行操作,因此需要确保当前用户(在这种情况下为“root”)具有在HDFS上创建目录的权限,或者进入 hdfs 用户进行操作
    
    
    (1)用如下命令创建数据库:

检查hive是否拥有 /user 目录的权限
[hdfs@hadoop105 ~] hive /hiveDb [hive@hadoop105 hiveDb] hdfs dfs -ls /
drwxr-xr-x - hdfs hadoop 0 2023-05-26 17:52 /user
[hive@hadoop105 hiveDb] #下面介绍如何创建数据库 [hive@hadoop105 hiveDb] su - hdfs
Last login: Fri May 26 17:49:25 CST 2023 on pts/1
[hive@hadoop105 hiveDb] #在hive交互模式下运行 create database test; [hive@hadoop105 hiveDb] hive -i create_test.dql
CREATE DATABASE test SUCCESSFULLY;
[hive@hadoop105 hiveDb] [hive@hadoop105 hiveDb] #或者直接在hive中运行以下命令创建数据库
[hive@hadoop105 hiveDb]$ hive -e "create database test;"
CREATE DATABASE test SUCCESSFULLY;

复制代码
    (2)导入 tables.sql

tables.sql 文件删除 LOCATION 到下一条 create 命令直接的内容

LOCATION
'hdfs://hadoop40/user/hive/warehouse//

#可通过以下正则表达式实现批量删除操作:(用于执行从LOCATION字段开始到下一个CREATE字段之前的全部内容的删除操作;需要注意的是,在修改最后一个LOCATION字段时需手动执行清理操作)

启动HDFS服务:

[root@hadoop105 ~]# su - hdfs
[hdfs@hadoop105 ~]$ hive
[hive@hadoop105 ~]> switch to test database;
[hive@hadoop105 ~]> source /path/to/destination/tables.sql

#出现错误:
配置文件路径已指定为jar file: /opt/cloudera/parcels/CDH-6.3.2-1.cdh6.3.2.p0.1605554/jars/hive-common-2.1.1-cdh6.3.2.jar!/hive-log4j2.properties进行日志配置时失败
操作设置为Async=false
#失败原因:
导出的SQL文件中create()语句前后未添加分号导致执行失败
create(



);
create();
create()
#解决方法:
可以通过以下正则表达式批量修改:(其中,g/CREATE.*/-1表示从匹配CREATE的行开始至前一行结束;s//;/g表示在行末添加分号,适用于多个CREATE情况下的首行结尾可能多了一个分号需手动删除) :g/CREATE.*/-1s//;/g

复制代码
![img]()
![img]()
    
    **网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。** **[需要这份系统化资料的朋友,可以戳这里获取]()** **一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**
    
    45628)** **一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**

全部评论 (0)

还没有任何评论哟~