第10周 hadoop與關係型資料庫交換資料

2021-06-20 05:14:05 字數 1994 閱讀 7496

sql-to-hdfs工具

利用jdbc連線關係型資料庫

sqoop的獲取

hadoop-0.20.2下使用sqoop

sqoop不支援此版本,可使用cdh3。也可以通過拷貝相應的包到sqoop-1.2.0-cdh3b4/lib下,依然可以使用。

配置修改sqoop的檔案configure-sqoop,注釋掉hbase和zookeeper檢查(除非你準備使用habase等hadoop上的元件) 

#if [ ! -d "$" ]; then

# echo 「error: $hbase_home does not exist!」

# echo 『please set $hbase_home to the root of your hbase installation.』

# exit 1

#fi#if [ ! -d "$" ]; then

# echo 「error: $zookeeper_home does not exist!」

# echo 『please set $zookeeper_home to the root of your zookeeper installation.』

# exit 1

#fi

3、啟動hadoop,配置好相關環境變數(例如$hadoop_home),就可以使用sqoop了

sqoop import --connect jdbc:mysql://mysqlserver_ip/databasename --table datatable --hbase-create-table --hbase-table hbase_tablename --column-family col_fam_name --hbase-row-key key_col_name

其中 ,databasename 和datatable 是mysql的資料庫和表名,hbase_tablename是要導成hbase的表名,key_col_name可以指定datatable中哪一列作 為hbase新錶的rowkey,col_fam_name是除rowkey之外的所有列的列族名

sqoop從oracle匯入, 需要有ojdbc6.jar,放在$sqoop_home/lib裡,不用新增到classpath裡,因為sqoop會自己遍歷lib資料夾並新增裡面 的所有jar包 --connect與mysql的不一樣,如下(shell指令碼中的主要部分)

#oracle的連線字串,其中包含了oracle的位址,sid,和埠 connecturl=jdbc:oracle:thin:@172.7.10.16:1521:orcl #使用的使用者名稱 oraclename=scott #使用的密碼 oraclepassword=wang123456 #需要從oracle中匯入的表名 oralcetablename=test #需要從oracle中匯入的表中的欄位名 columns=id,state #將oracle中的資料匯入到hdfs後的存放路徑 #hdfspath=/tmp/

從oracle匯入資料

oracle hdfs直接聯結器(odch)實驗

實驗 1: 直接訪問單個 hdfs 檔案

步驟1: 配置作業系統的目錄和資料庫的directory物件

步驟2: 建立外部表

步驟3: 在hadoop中放入示例檔案

步驟4: 生成「位置檔案」

步驟5: 檢查結果

步驟6: 改動hdfs檔案,檢查結果.

oracle的hdfs直接聯結器允許從資料庫中直接訪問hdfs的資料檔案。 支援的資料檔案格式取決於oracle_loader的驅動程式。

oracle hadoop裝載程式

實驗: 裝載hadoop檔案到資料庫

步驟1: 建立目標表

步驟2: 在hadoop中放入示例檔案

步驟3: 執行oracle hadoop裝載程式

步驟4: 驗證結果

因為olh需要從hadoop檔案系統中讀取資料,所以我們先要在hadoop中放入乙個的資料檔案。然後載入到oracle資料庫中。

關係型資料庫與非關係型資料庫

關係型資料庫與非關係型資料庫的區別 非關係型資料庫的優勢 1.效能 nosql是基於鍵值對的,可以想象成表中的主鍵和值的對應關係,而且不需要經過sql層的解析,所以效能非常高。2.可擴充套件性 同樣也是因為基於鍵值對,資料之間沒有耦合性,所以非常容易水平擴充套件。關係型資料庫的優勢 1.複雜查詢 可...

關係型資料庫與非關係型資料庫

關係型資料庫最典型的資料結構是表,由二維表及其之間的聯絡所組成的乙個資料組織 優點 1 易於維護 都是使用表結構,格式一致 2 使用方便 sql語言通用,可用於複雜查詢 3 複雜操作 支援sql,可用於乙個表以及多個表之間非常複雜的查詢。缺點 1 讀寫效能比較差,尤其是海量資料的高效率讀寫 2 固定...

關係型資料庫與非關係型資料庫

指採用了關係模型來組織資料的資料庫。關係模型指的就是二維 模型,而乙個關係型資料庫就是由二維表及其之間的聯絡所組成的乙個資料組織。關係 一張二維表,每個關係都具有乙個關係名,也就是表名 元組 二維表中的一行,在資料庫中被稱為記錄 屬性 二維表中的一列,在資料庫中被稱為字段 域 屬性的取值範圍,也就是...