佳木斯湛栽影视文化发展公司

主頁(yè) > 知識(shí)庫(kù) > sqoop讀取postgresql數(shù)據(jù)庫(kù)表格導(dǎo)入到hdfs中的實(shí)現(xiàn)

sqoop讀取postgresql數(shù)據(jù)庫(kù)表格導(dǎo)入到hdfs中的實(shí)現(xiàn)

熱門(mén)標(biāo)簽:百度競(jìng)價(jià)排名 呼叫中心市場(chǎng)需求 網(wǎng)站排名優(yōu)化 鐵路電話(huà)系統(tǒng) AI電銷(xiāo) 地方門(mén)戶(hù)網(wǎng)站 Linux服務(wù)器 服務(wù)外包

最近再學(xué)習(xí)spark streaming做實(shí)時(shí)計(jì)算這方面內(nèi)容,過(guò)程中需要從后臺(tái)數(shù)據(jù)庫(kù)導(dǎo)出數(shù)據(jù)到hdfs中,經(jīng)過(guò)調(diào)研發(fā)現(xiàn)需要使用sqoop進(jìn)行操作,本次操作環(huán)境是Linux下。

首先確保環(huán)境安裝了Hadoop和sqoop,安裝只需要下載 ,解壓 以及配置環(huán)境變量,這里不多說(shuō)了,網(wǎng)上教程很多。

一、配置sqoop以及驗(yàn)證是否成功

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

創(chuàng)建配置環(huán)境文件: cp sqoop-env-template.sh sqoop-env.sh

修改配置文件:conf/vi sqoop-env.sh:修改內(nèi)容如下

配置完成后,執(zhí)行命令sqoop-version ,檢查是否成功,如圖顯示sqoop 1.4.7即成功。

二、添加postgresql驅(qū)動(dòng)jar包

因?yàn)檫@里使用sqoop讀取postgresql的數(shù)據(jù),所以需要將數(shù)據(jù)庫(kù)驅(qū)動(dòng)包放到$SQOOP_HOME/lib 下即可 。

三、導(dǎo)入pg數(shù)據(jù)庫(kù)中表到hdfs中

1、首先要啟動(dòng)Hadoop集群,不然會(huì)報(bào)錯(cuò)

執(zhí)行語(yǔ)句 $HADOOP_HOME/sbin/./start-all.sh

2、執(zhí)行sqoop語(yǔ)句進(jìn)行數(shù)據(jù)導(dǎo)入到hdfs

sqoop import \

  --connect jdbc:postgresql:localhost:5432/test(數(shù)據(jù)庫(kù)的名稱(chēng))
  --username postgres (填自己的數(shù)據(jù)庫(kù)用戶(hù)名)
  --password 888888 (填自己數(shù)據(jù)庫(kù)的密碼)
  --table company (自己創(chuàng)建表的名稱(chēng))
  --m 1 (mapreduce的個(gè)數(shù))

執(zhí)行結(jié)果如圖:

3、檢查hdfs上是否成功存儲(chǔ)到表數(shù)據(jù)

$HADOOP_HOME/bin hdfs dfs -cat /sqoop/part-m-00000(數(shù)據(jù)目錄改成自己的)

結(jié)果如圖所示:

顯示使用sqoop 將 postgreql上的表格數(shù)據(jù)成功導(dǎo)入到hdfs中,這算今天也有點(diǎn)收獲了!

補(bǔ)充:利用Sqoop從PostgreSQL導(dǎo)入數(shù)據(jù)時(shí)遇到的坑

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 一定要放在后面,否則可能導(dǎo)致無(wú)運(yùn)行日志或無(wú)法導(dǎo)入數(shù)據(jù)到指定目錄且無(wú)法重新執(zhí)行(報(bào)目錄已存在)

2、PostgreSQL 須設(shè)置SET standard_conforming_strings = on;,否則--null-string和--null-non-string不起作用;

3、--null-string--null-non-string放在-- --schema后面,否則執(zhí)行時(shí)報(bào)Can't parse input data: '\N'

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教。

您可能感興趣的文章:
  • 在Hadoop集群環(huán)境中為MySQL安裝配置Sqoop的教程
  • sqoop export導(dǎo)出 map100% reduce0% 卡住的多種原因及解決
  • 解決sqoop從postgresql拉數(shù)據(jù),報(bào)錯(cuò)TCP/IP連接的問(wèn)題
  • 解決sqoop import 導(dǎo)入到hive后數(shù)據(jù)量變多的問(wèn)題
  • sqoop 實(shí)現(xiàn)將postgresql表導(dǎo)入hive表
  • 使用shell腳本執(zhí)行hive、sqoop命令的方法
  • Sqoop的安裝與使用詳細(xì)教程

標(biāo)簽:湘潭 衡水 湖南 黃山 蘭州 崇左 仙桃 銅川

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《sqoop讀取postgresql數(shù)據(jù)庫(kù)表格導(dǎo)入到hdfs中的實(shí)現(xiàn)》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話(huà)咨詢(xún)

    • 400-1100-266
    绥宁县| 禹州市| 化隆| 乌拉特后旗| 衡阳县| 尉氏县| 湖州市| 科技| 涪陵区| 阿城市| 新宁县| 黄浦区| 岐山县| 洛宁县| 理塘县| 咸阳市| 游戏| 顺义区| 灵石县| 海林市| 建德市| 山阴县| 冀州市| 孙吴县| 宣化县| 镇安县| 大邑县| 江陵县| 周宁县| 乌拉特中旗| 青田县| 富顺县| 宁安市| 永登县| 建瓯市| 宜兰县| 滨州市| 华坪县| 师宗县| 宣武区| 吴桥县|