hadoop - 使用 SQOOP 将数据从 HDFS 复制到配置单元
问题描述
我想将数据从表中复制HDFS
出来hive
。我尝试了下面的代码,但它没有抛出任何错误,并且数据也没有复制到提到的配置单元表中。下面是我的代码:
sqoop import --connect jdbc:mysql://localhost/sampleOne \
--username root \
--password root \
--external-table-dir "/WithFields" \
--hive-import \
--hive-table "sampleone.customers"
sampleone
hive 中的数据库在哪里,并且是 hive中customers
新创建的表,并且--external-table-dir
是我要在 hive 表中加载数据的 HDFS 路径。在上面的代码中我还缺少什么?
解决方案
如果数据在 中HDFS
,则不需要Sqoop
填充Hive
表。执行此操作的步骤如下:
这是HDFS中的数据
# hadoop fs -ls /example_hive/country
/example_hive/country/country1.csv
# hadoop fs -cat /example_hive/country/*
1,USA
2,Canada
3,USA
4,Brazil
5,Brazil
6,USA
7,Canada
这是 Hive 表创建 DDL
CREATE TABLE sampleone.customers
(
id int,
country string
)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\n';
验证 Hive 表是否为空
hive (sampleone)> select * from sampleone.customers;
<no rows>
加载 Hive 表
hive (sampleone)> LOAD DATA INPATH '/example_hive/country' INTO TABLE sampleone.customers;
验证 Hive 表是否有数据
hive (sampleone)> select * from sampleone.customers;
1 USA
2 Canada
3 USA
4 Brazil
5 Brazil
6 USA
7 Canada
注意:这种方法会将数据从/example_hive/country
位置移动HDFS
到支持表的Hive
仓库目录(将再次打开HDFS
)。
推荐阅读
- javascript - 无法使宽度子类型与精确类型一起使用
- githooks - 如何在不阻塞提交的情况下使用 husky 和 lint-staged 运行“stylelint --fix”
- python - MacOS:“pip install MySQL-python”返回错误:“_mysql.c:44:10: fatal error: 'my_config.h' file not found”
- azure - 如何查看最近发送的消息到服务总线队列中?
- stm32 - stm32 NVIC_EnableIRQ() 裸机等效?
- vb.net - VB.NET TcpListener 表单不显示
- ios - React Native 无法读取 null 的属性“原型”
- javascript - 基于数组编辑对象中的多个值
- javascript - 如何在 Laravel 中将数据从 html 表保存到数据库
- javascript - 绑定复选框并使用 vuex store 和 vuejs 将所选项目添加到数组中