首頁 資料庫 mysql教程 HDFS与关系型数据库数据交换利器—sqoop初探

HDFS与关系型数据库数据交换利器—sqoop初探

Jun 07, 2016 pm 04:29 PM
hdfs 交換 關係型 初探 利器 數據 資料庫

Sqoop是一种用于 hadoop 与 RDBMS 进行数据传输的工具。 配置比较简单。 去apache官网下载最新的 sqoop 包。 下载地址:http://www.apache.org/dist/ sqoop /1.99.1/ 解压缩到服务器上。服务器要求本身有jdk, hadoop , hive 。 配置: conf/sqoop-env.sh #

Sqoop是一种用于hadoopRDBMS进行数据传输的工具。
配置比较简单。
去apache官网下载最新的sqoop包。
下载地址:http://www.apache.org/dist/sqoop/1.99.1/
解压缩到服务器上。服务器要求本身有jdk,hadoophive
配置:
conf/sqoop-env.sh
#Set path to where bin/hadoop is available
export HADOOP_HOME=/home/hadoop/hadoop-0.20.205.0
#Set the path to where bin/hive is available
export HIVE_HOME=/home/hadoop/hive-0.8.1
这时候就可以进行试验了。我们主要是利用其与hive进行交互,实际就是将关系型的数据库中的数据提交到hive,保存到HDFS中,以便于大数据的计算。

sqoop主要包含了以下命令,或者说功能。

 codegen             Import a table definition into Hive eval                Evaluate a SQL statement and display the results export              Export an HDFS directory to a database table help                List available commands import              Import a table from a database to HDFS import-all-tables   Import tables from a database to HDFS job                 Work with saved jobs list-databases      List available databases on a server list-tables         List available tables in a database merge               Merge results of incremental imports metastore           Run a standalone Sqoop metastore version             Display version information <code> 这里主要是使用其中的import功能。export功能的命令语法类似。</code>
登入後複製

示例

./sqoop import --connect jdbc:mysql://lcoalhost:3306/dbname--username dbuser --password dbpassword --table tablename --hive-import --hive-table hivedb.hivetable --hive-drop-import-delims --hive-overwrite --num-mappers 6
登入後複製

以上命令的意思就是要将本地数据库dbname中的tablename表的数据导入到hivedb的hivetable表中。
其中一些常用的参数就不进行解释了。

–hive-import 标识本次导入的地址为hive
–hive-table 标识hive中的表信息
–hive-drop-import-delims 这个比较重要,因为数据从数据库中导入到HDFS中,如果包含了特殊的字符,对MR解析是存在问题的,比如数据库中
有text类型的字段,有可能包含\t,\n等参数,加入这个参数后,会自动将特殊字符进行处理。
–hive-overwrite 如果原有的hive表已经存在,则会进行覆盖操作。
–num-mappers 会指定执行本次导入的mapper任务数量。

还有一个比较重要的参数 –direct 这个参数可以通过数据库的dump功能进行数据导入,这样的性能比上例更好,但是其不能与–hive-drop-import-delims参数功能使用。所以还是要根据自己数据库的情况来进行判断使用何种命令。

如下是sqoop的import命令

Argument Description
--connect <jdbc-uri></jdbc-uri> Specify JDBC connect string
--connection-manager <class-name></class-name> Specify connection manager class to use
--driver <class-name></class-name> Manually specify JDBC driver class to use
--hadoop-home <dir></dir> Override $HADOOP_HOME
--help Print usage instructions
-P Read password from console
--password <password></password> Set authentication password
--username <username></username> Set authentication username
--verbose Print more information while working
--connection-param-file <filename></filename> Optional properties file that provides connection parameters
Argument Description
--hive-home <dir></dir> Override $HIVE_HOME
--hive-import Import tables into Hive (Uses Hive’s default delimiters if none are set.)
--hive-overwrite Overwrite existing data in the Hive table.
--create-hive-table If set, then the job will fail if the target hive
table exits. By default this property is false.
--hive-table <table-name></table-name> Sets the table name to use when importing to Hive.
--hive-drop-import-delims Drops \n, \r, and \01 from string fields when importing to Hive.
--hive-delims-replacement Replace \n, \r, and \01 from string fields with user defined string when importing to Hive.
--hive-partition-key Name of a hive field to partition are sharded on
--hive-partition-value <v></v> String-value that serves as partition key for this imported into hive in this job.
--map-column-hive <map></map> Override default mapping from SQL type to Hive type for configured columns.

以下为一些参考示例

写入条件
sqoop import –table test –columns “id,name” –where “id>400″
使用dump功能
sqoop import –connect jdbc:mysql://server.foo.com/db –table bar –direct — –default-character-set=latin1
列类型重新定义
sqoop import … –map-column-java id=String,value=Integer
定义分割符
sqoop import –connect jdbc:mysql://db.foo.com/corp –table EMPLOYEES –fields-terminated-by ‘\t’ –lines-terminated-by ‘\n’ –optionally-enclosed-by ‘\”‘

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

<🎜>:泡泡膠模擬器無窮大 - 如何獲取和使用皇家鑰匙
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系統,解釋
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
Mandragora:巫婆樹的耳語 - 如何解鎖抓鉤
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1665
14
CakePHP 教程
1424
52
Laravel 教程
1322
25
PHP教程
1270
29
C# 教程
1250
24
iOS 18 新增「已復原」相簿功能 可找回遺失或損壞的照片 iOS 18 新增「已復原」相簿功能 可找回遺失或損壞的照片 Jul 18, 2024 am 05:48 AM

蘋果公司最新發布的iOS18、iPadOS18以及macOSSequoia系統為Photos應用程式增添了一項重要功能,旨在幫助用戶輕鬆恢復因各種原因遺失或損壞的照片和影片。這項新功能在Photos應用的"工具"部分引入了一個名為"已恢復"的相冊,當用戶設備中存在未納入其照片庫的圖片或影片時,該相冊將自動顯示。 "已恢復"相簿的出現為因資料庫損壞、相機應用未正確保存至照片庫或第三方應用管理照片庫時照片和視頻丟失提供了解決方案。使用者只需簡單幾步

AI新創集體跳槽OpenAI,Ilya出走後安全團隊重整旗鼓! AI新創集體跳槽OpenAI,Ilya出走後安全團隊重整旗鼓! Jun 08, 2024 pm 01:00 PM

上週,在內部的離職潮和外部的口誅筆伐之下,OpenAI可謂是內憂外患:-侵權寡姐引發全球熱議-員工簽署“霸王條款”被接連曝出-網友細數奧特曼“七宗罪」闢謠:根據Vox獲取的洩漏資訊和文件,OpenAI的高級領導層,包括Altman在內,非常了解這些股權回收條款,並且簽署了它們。除此之外,還有一個嚴峻而迫切的問題擺在OpenAI面前——AI安全。最近,五名與安全相關的員工離職,其中包括兩名最著名的員工,「超級對齊」團隊的解散讓OpenAI的安全問題再次被置於聚光燈下。 《財星》雜誌報道稱,OpenA

如何在PHP中處理資料庫連線錯誤 如何在PHP中處理資料庫連線錯誤 Jun 05, 2024 pm 02:16 PM

PHP處理資料庫連線報錯,可以使用下列步驟:使用mysqli_connect_errno()取得錯誤代碼。使用mysqli_connect_error()取得錯誤訊息。透過擷取並記錄這些錯誤訊息,可以輕鬆識別並解決資料庫連接問題,確保應用程式的順暢運作。

在PHP中使用MySQLi建立資料庫連線的詳盡教學 在PHP中使用MySQLi建立資料庫連線的詳盡教學 Jun 04, 2024 pm 01:42 PM

如何在PHP中使用MySQLi建立資料庫連線:包含MySQLi擴充(require_once)建立連線函數(functionconnect_to_db)呼叫連線函數($conn=connect_to_db())執行查詢($result=$conn->query())關閉連線( $conn->close())

70B模型秒出1000token,程式碼重寫超越GPT-4o,來自OpenAI投資的程式碼神器Cursor團隊 70B模型秒出1000token,程式碼重寫超越GPT-4o,來自OpenAI投資的程式碼神器Cursor團隊 Jun 13, 2024 pm 03:47 PM

70B模型,秒出1000token,换算成字符接近4000!研究人员将Llama3进行了微调并引入加速算法,和原生版本相比,速度足足快出了快了13倍!不仅是快,在代码重写任务上的表现甚至超越了GPT-4o。这项成果,来自爆火的AI编程神器Cursor背后团队anysphere,OpenAI也参与过投资。要知道在以快著称的推理加速框架Groq上,70BLlama3的推理速度也不过每秒300多token。Cursor这样的速度,可以说是实现了近乎即时的完整代码文件编辑。有人直呼好家伙,如果把Curs

中國移動:人類正邁入第四次工業革命 正式公佈'三個計劃” 中國移動:人類正邁入第四次工業革命 正式公佈'三個計劃” Jun 27, 2024 am 10:29 AM

6月26日消息,在2024年世界行動通訊大會上海(MWC上海)開幕典禮上,中國移動董事長楊傑發表演說。他表示,當前,人類社會正邁入以資訊為主導、資訊和能量深度融合的第四次工業革命,即“數智化革命”,新質生產力加速形成。楊傑認為,從蒸汽機驅動的“機械化革命”,到電力、內燃機等驅動的“電氣化革命”,再到計算機和互聯網等驅動的“信息化革命”,每一輪工業革命都是以“信息和能量」為主線,帶來生產力發

如何在 Golang 中使用資料庫回呼函數? 如何在 Golang 中使用資料庫回呼函數? Jun 03, 2024 pm 02:20 PM

在Golang中使用資料庫回呼函數可以實現:在指定資料庫操作完成後執行自訂程式碼。透過單獨的函數新增自訂行為,無需編寫額外程式碼。回調函數可用於插入、更新、刪除和查詢操作。必須使用sql.Exec、sql.QueryRow或sql.Query函數才能使用回呼函數。

如何在 Golang 中將 JSON 資料保存到資料庫中? 如何在 Golang 中將 JSON 資料保存到資料庫中? Jun 06, 2024 am 11:24 AM

可以透過使用gjson函式庫或json.Unmarshal函數將JSON資料儲存到MySQL資料庫中。 gjson函式庫提供了方便的方法來解析JSON字段,而json.Unmarshal函數需要一個目標類型指標來解組JSON資料。這兩種方法都需要準備SQL語句和執行插入操作來將資料持久化到資料庫中。

See all articles