欢迎来到代码驿站!

PostgreSQL

当前位置:首页 > 数据库 > PostgreSQL

sqoop读取postgresql数据库表格导入到hdfs中的实现

时间:2021-03-19 09:44:03|栏目:PostgreSQL|点击:

最近再学习spark streaming做实时计算这方面内容,过程中需要从后台数据库导出数据到hdfs中,经过调研发现需要使用sqoop进行操作,本次操作环境是Linux下。

首先确保环境安装了Hadoop和sqoop,安装只需要下载 ,解压 以及配置环境变量,这里不多说了,网上教程很多。

一、配置sqoop以及验证是否成功

切换到配置文件下:cd $SQOOP_HOME/conf

创建配置环境文件: cp sqoop-env-template.sh sqoop-env.sh

修改配置文件:conf/vi sqoop-env.sh:修改内容如下

配置完成后,执行命令sqoop-version ,检查是否成功,如图显示sqoop 1.4.7即成功。

二、添加postgresql驱动jar包

因为这里使用sqoop读取postgresql的数据,所以需要将数据库驱动包放到$SQOOP_HOME/lib 下即可 。

三、导入pg数据库中表到hdfs中

1、首先要启动Hadoop集群,不然会报错

执行语句 $HADOOP_HOME/sbin/./start-all.sh

2、执行sqoop语句进行数据导入到hdfs

sqoop import \
  --connect jdbc:postgresql:localhost:5432/test(数据库的名称)
  --username postgres (填自己的数据库用户名)
  --password 888888 (填自己数据库的密码)
  --table company (自己创建表的名称)
  --m 1 (mapreduce的个数)

执行结果如图:

3、检查hdfs上是否成功存储到表数据

$HADOOP_HOME/bin hdfs dfs -cat /sqoop/part-m-00000(数据目录改成自己的)

结果如图所示:

显示使用sqoop 将 postgreql上的表格数据成功导入到hdfs中,这算今天也有点收获了!

补充:利用Sqoop从PostgreSQL导入数据时遇到的坑

sqoop import \
--connect "jdbc:postgresql://10.101.70.169:5432/db_name" \
--username "postgres" \
--password "123456" \
--table "test_user"\
--target-dir "/user/hive/warehouse/test.db/test_user" \
--fields-terminated-by '\t' \
--lines-terminated-by '\n' \
--hive-drop-import-delims \
--incremental lastmodified \
--merge-key id \
--check-column update_time \
--last-value "2019-03-25" \
--m 1 \
-- --schema "schema_name" \
--null-string '\\N' \
--null-non-string '\\N' 

1、-- --schema 一定要放在后面,否则可能导致无运行日志或无法导入数据到指定目录且无法重新执行(报目录已存在)

2、PostgreSQL 须设置SET standard_conforming_strings = on;,否则--null-string和--null-non-string不起作用;

3、--null-string--null-non-string放在-- --schema后面,否则执行时报Can't parse input data: '\N'

上一篇:Postgresql - 查看锁表信息的实现

栏    目:PostgreSQL

下一篇:PostgreSQL模糊匹配走索引的操作

本文标题:sqoop读取postgresql数据库表格导入到hdfs中的实现

本文地址:http://www.codeinn.net/misctech/83567.html

推荐教程

广告投放 | 联系我们 | 版权申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:914707363 | 邮箱:codeinn#126.com(#换成@)

Copyright © 2020 代码驿站 版权所有