Hive数据库操作

Hive数据库操作Hive 数据库操作 1 对数据库进行操作 1 创建数据库 createdataba 如果出现如下错误 hive gt createdataba hive FAILED ExecutionErr returncode1f apache hadoop hive ql exec DDLTask Databasedb hivealreadye 使用命令 避免要创建的数据库已经存在错误 增加 ifnotexist

Hive数据库操作

1、对数据库进行操作

(1)创建数据库
create database chengzhi; 

如果出现如下错误:

hive> create database db_hive; FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. Database db_hive already exiSts 

使用命令:(避免要创建的数据库已经存在错误,增加 if not exists 判断。)

hive (default)> create database if not exists db_hive; 
(2)切换数据库以及删除数据库
use chengzhi; drop database db_hive2; 
(3)创建表
create table st( id String, name String, score integer) row format delimited fields terminated by ','; 
(4)修改表中的机构以及表记录

修改表表名,列名,列注释,表注释,增加列,调整列顺序,属性名等操作

ALTER TABLE name RENAME TO new_name ALTER TABLE name ADD COLUMNS (col_spec[, col_spec ...]) ALTER TABLE name DROP [COLUMN] column_name ALTER TABLE name CHANGE column_name new_name new_type ALTER TABLE name REPLACE COLUMNS (col_spec[, col_spec ...]) 
(5)将表记录导入到数据表中去
load data inpath '/data/user.txt' into table student; #上传文件从本地上传 load data local inpath '/data/user.txt' into table stu; 

出现的错误:

FAILED: SemanticException org.apache.hadoop.hive.ql.metadata.HiveException: java.lang.RuntimeException: Unable to instantiate org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient 

说明数据库内容有问题:

我的原因是应为修改了名称,导致数据库出错。

查看并修改vi hive-site.xml内容。

使用Sqoop工具导入导出

1、Sqoop安装配置

(1)设置sqoop-env.sh文件,添加如下配置内容:
export HADOOP_COMMON_HOME=/usr/app/hadoop2.7.3 export HADOOP_MAPRED_HOME=/usr/app/hadoop2.7.3 export HADOOP_HIVE_HOME=/usr/app/hive2.3.7 
(2)设置系统环境变量:
export SQOOP_HOME=/usr/app/sqoop1.4.7 export PATH=$PATH:$SQOOP_HOME/bin 
(3)sqoop-site.xml保持默认配置
(4)将MySQL的包文件导入到/usr/app/sqoop1.4.7/lib下面mysql-connector-java-5.1.7-bin.jar
(6)测试是否链接数据库:
sqoop list-databases \ --connect jdbc:mysql://192.168.87.202/ \ --username root \ --password  

2、上传文件方法

(1)全量导入
sqoop import \ --connect jdbc:mysql://192.168.1.2/cqcvc \ --username root \ --password  \ --target-dir /mydata \ --table student \ --num-mappers 1 
(2)增量导入
sqoop import \ --connect jdbc:mysql://192.168.1.2/cqcvc \ --username root \ --password  \ --target-dir /mydata \ --table student \ --incremental append \ --check-column id \ --last-value 5 
(3)带where参数的数据过滤导入
sqoop import \ --connect jdbc:mysql://192.168.1.2/cqcvc \ --username root \ --password  \ --where "sex='女'" \ --target-dir /mydata1 \ --table student \ --num-mappers 1 

(4)通过query参数的数据过滤导入

 sqoop import --connect jdbc:mysql://192.168.1.2/cqcvc --username root \ --password  \ --target-dir /mydata4 \ --query 'select * from student where id>2 and $CONDITIONS' \ --num-mappers 1 

(5)数据导出export

sqoop export\ --connect jdbc:mysql://192.168.87.202/chengzhi?characterEncoding=utf8 \ --username root \ --password  \ --table money \ --export-dir /Hive_WH/chengzhi.db/money1 

课堂实例

1、先将要分析的数据表consumption.log上传到Hadoop的/data文件下。

2、在hive上新建一个

create table money( id int, name String, Time String, product String, money int, city1 String, city2 String, Telephone String) row format delimited fields terminated by ' '; 

2、从本地上传到hive上

load data local inpath '/data/user.txt' into table money; 

3、将需要查找的数据查询到然后保存到hive的数据表中去,并且以逗号作为分隔符

create table money1 row format delimited fields terminated by ',' as select name,sum(money) as sum from consumption1 group by name order by sum; 

6、在MySQL数据库中创建一个和需要导出表的表结构相同的数据表

CREATE TABLE money(name varchar(30),sum int(10)); 

5、将数据保存好后退出hive然后使用sqoop将数据导出MySQL中

sqoop export \ --connect jdbc:mysql://192.168.87.202/chengzhi?characterEncoding=utf8 \ --username root \ --password  \ --table money \ --export-dir /Hive_WH/chengzhi.db/money1 
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/208825.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月19日 上午10:41
下一篇 2026年3月19日 上午10:41


相关推荐

  • 2026年OpenClaw一键部署平台整合全攻略

    2026年OpenClaw一键部署平台整合全攻略

    2026年3月13日
    2
  • LoadRunner教程(16)-LoadRunner SLA分析「建议收藏」

    LoadRunner教程(16)-LoadRunner SLA分析「建议收藏」SLA(servicelevelagreement,服务水平协议)可在性能测试过程中,定义性能测试的目标和度量性能,在性能测试过程中LR会收集和保存性能的相关数据,在分析运行结果时,分析器分将收集的数据与SLA中定义的度量数据进行比较,并将分析结果显示在分析器中,SLA三种状态分别是:a.pass:表示SLA获得该项测试数据,并且该数据达到目标要求;b.fail:表示SLA获得该项测试数据,但…

    2022年5月20日
    39
  • 相机的介绍–新手入门级介绍

    相机的介绍–新手入门级介绍相机最大的两个类别 胶片和数码 一 单反和微单 无反 目前市面上主流的数码相机分为 单反 无反 微单 卡片机 紧凑型相机 旁轴 单反 全称叫做单镜头反光式取景照相机 singlelensre 单镜头是指摄影曝光光路和取景光路共用一个镜头 不像旁轴相机或者双反相机那样取景光路有独立镜头 代表品牌 佳能 尼康 索尼无反 也就是常说的微单 无反就是没有反光板的可换 无反相机比单反更小更轻单反 看的和拍的不一样 难度高便宜稳定

    2026年3月18日
    2
  • Mutex对象使用时发现的问题

    Mutex对象使用时发现的问题Mutex对象等待互斥对象的方法有:Mutex.WaitAll、WaitOne、Mutex.WaitAny使用Mutex对象经常出现的异常现象有:异常一、 由于出现被放弃的mutex,等待过程结束原因:获取互斥对象后没有显式的释放对应的互斥对象就结束了对应的线程解决办法:每调用一个等待方法,在结束调用时都要调用ReleaseMutex()方法进行Mutex对象释放。而每种释

    2022年6月26日
    31
  • 360集团旗下纳米漫剧流水线宣布接入Seedance 2.0

    360集团旗下纳米漫剧流水线宣布接入Seedance 2.0

    2026年3月15日
    2
  • 图解方向导数与梯度

    图解方向导数与梯度举例来说 设函数 y f x y e x2 y2y f x y e x 2 y 2 y f x y e x2 y2 其函数图形如下所示 其方向导数为 f f xi f yj e x2 y2 xi e x2 y2 yj 2xe x2 y2i 2ye x2 y2j nablaf frac partialf partialx overrig

    2026年3月18日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号