1. 程式人生 > >使用sqoop將HDFS資料匯出到RDBMS,map100%reduce0%問題

使用sqoop將HDFS資料匯出到RDBMS,map100%reduce0%問題

time:2016/12/29

場景:將hive中的資料匯出到oracle資料庫中
遇到的問題:
使用oozie跑job的時候,一直處於running狀態。實際上資料量很小,而且語句也不復雜。
檢視日誌發現mapreduce卡在reduce階段,如圖:


map100% reduce0%!

此時我首先想到的是叢集資源問題,因為這是公司測試環境,上面跑的任務太多。於是就放著等。過了很久仍然沒有動靜(排除跑的過慢問題);
中間重新跑了job,沒用(排除偶然卡死問題);
讓管理員清理了下系統磁碟空間。因為磁碟使用率已經達到了96%。同時跑了下其他的指令碼發現可以跑(排除環境問題);
把job放到了開發環境上跑,發現一下就跑過去了(排除了指令碼問題);
此時,想到了資料可能有問題。於是我把測試環境的資料放到開發環境,發現果然不能跑。那麼就是資料的問題!
最後想到了我hive中null資料是不是在oracle是主鍵?連上oracle後看到,果然是這個原因。而且不止主鍵,還有四個欄位也都不能為空。

在模擬hive表中資料的時候,我使用了null as list_in_id,雖然list_in_id在hive中可以任意值,但是在oracle卻是主鍵!這樣的資料
根本無法插入到oracle中,所以reduce一直處於0%.

修改list_in_id欄位後,資料終於匯出到oracle了!

相關推薦

使用sqoopHDFS資料匯出RDBMSmap100%reduce0%問題

time:2016/12/29 場景:將hive中的資料匯出到oracle資料庫中 遇到的問題: 使用oozie跑job的時候,一直處於running狀態。實際上資料量很小,而且語句也不復雜。 檢視日

sqoop hive資料匯出mysql,map reduce卡住問題

直接上圖給初入坑的小夥伴看看問題的樣子檢視日誌沒有報錯,各種百度......最後對了一下mysql的表字段和hive的表字段才發現有一個欄位沒有對上。最後留下一篇記錄提醒一下入門的小白。當然,導致問題的原因有多種,只希望能提醒粗心的小白別忘記考慮到欄位的對應。

Sqoop_詳細總結 使用SqoopHDFS/Hive/HBase與MySQL/Oracle中的資料相互匯入、匯出

一、使用Sqoop將MySQL中的資料匯入到HDFS/Hive/HBase 二、使用Sqoop將HDFS/Hive/HBase中的資料匯出到MySQL2.3HBase中的資料匯出到mysql目前沒有直

使用sqoopmysql 資料匯入hdfs時各種報錯

資訊 18/06/29 10:45:08 ERROR sqoop.Sqoop: Got exception running Sqoop: java.lang.RuntimeException: java.lang.RuntimeException: java.sql.SQLExcepti

使用sqooporacle資料匯入hdfs叢集

叢集環境:     hadoop1.0.0     hbase0.92.1     zookeeper3.4.3     hive0.8.1     sqoop-1.4.1-incubating__hadoop-1.0.0.tar 首先,當然前提是hadoop叢集環境已經

Sqoop_具體總結 使用SqoopHDFS/Hive/HBase與MySQL/Oracle中的數據相互導入、導出

能夠 mes south ase form html 技術 popu 沒有 一、使用Sqoop將MySQL中的數據導入到HDFS/Hive/HBase 二、使用Sqoop將HDFS/Hive/HBase中的數據導出到MySQL 2.3 HBase中的數據

資料匯出8如何檢查oracle的歸檔空間是否滿了

https://blog.csdn.net/j7a4v5a2w2e8b9e4e6/article/details/48678769 ----也可以按照以下方式查詢歸檔放置的地方   SQL> show parameter db_   -----這裡可以看到閃回恢復區裡的空間使用情況

利用sqoophive資料匯入Oracle中(踩的坑)

教程很多,這裡只說踩過的坑 1.下載sqoop時,還得下一個bin的包,拿到sqoop-1.4.6.jar 的包,放到hadoop的lib目錄下 2.匯入oracle,執行程式碼時,使用者名稱和表名必須大寫!且資料庫建表時表名必須大寫!  示例程式碼: sqoop expo

通過sqoopmysql資料匯入到hive中進行計算示例

hive計算示例 先將資料通過sqoop從mysql匯入hive,在hive執行mysql的查詢語句,得到與mysql一樣的執行結果 步驟: mysql資料準備 account賬號表 detail收支資料表 CREATE TABLE

pythonExcel資料匯出幷儲存在json檔案中

一:python3.6,安裝xlrd模組(windows 環境下easy_install-3.6.exe xlrd) 二:程式碼如下: # -*- coding: utf-8 -*- import xlrd import json def open_excel(file): """

利用sqoophive資料匯入Oracle中

首先: 如oracle則執行sqoop list-databases --connect jdbc:oracle:thin:@//192.168.27.235:1521/ORCL --username DATACENTER -P 來測試是否能正確連線資料庫  如mysql則執行sq

Hbase之--------Hdfs資料載入到Hbase資料庫中

資料: zhangfenglun,M,20,13522334455,[email protected],23521472 chenfei,M,20,13684634455,[email protected],84545472 liyuchen,M,20,135223342

JS Table資料匯出到Excel表

通過JavaScript方法將table中的資料匯出在excel表中,使用方便,可以直接瀏覽器直接下載所需要的excel表,一般適用於後臺管理的匯出資料需求。 使用方法 1.對table標籤設定id,例如:id=”ta” 2.點選按鈕呼叫 <but

【python Excel】如何使用python大量資料匯出到Excel中的小技巧之二

最近對python的openpyxl 升級到了__version__ = '2.5.4',發現原先的程式碼不能使用,各種報錯之後,然後重新了寫的版本,故分享給各位同仁。如有錯誤,敬請賜教。# coding:utf-8 """ File Name: Excel.py Func

Hdfs資料往Hbase表中匯入

package Hbase; import java.io.IOException; import java.text.SimpleDateFormat; import java.util.Date; import org.apache.hadoop.c

sqooporacle資料匯入Hbase 使用筆記

網上已經有很多關於這方面的資料,但是我在使用過程中也遇見了不少問題 1. sqoop 的環境我沒有自己搭建  直接用的公司的 2. oracle 小白怕把公司環境弄壞了,自己用容器搭建了一個 docker pull docker.io/wnameless/oracle-xe

利用sqoophive資料匯入匯出資料到mysql

執行環境  centos 5.6   hadoop  hive sqoop是讓hadoop技術支援的clouder公司開發的一個在關係資料庫和hdfs,hive之間資料匯入匯出的一個工具 在使用過程中可能遇到的問題: sqoop依賴zookeeper,所以必須配置ZOOK

PHP 大量資料匯出到 Excel 的方法

資料量很大時(5萬條以上),用 PHPExcel 匯出 xls 將十分緩慢且佔用很大記憶體,最終造成執行超時或記憶體不足。可以通過設定 PHP 的執行時間和記憶體限制來阻止錯誤發生,但仍然不能確保匯出完成。 set_

mapreduce hdfs資料逐行寫入mysql

code package hdfsToSQL; import java.io.IOException; import java.sql.Connection; import java.sql.DriverManager; import java.sql.

利用DevExpressDataTable資料匯出到Excel

方法:根據DataTable列名動態建立GridControl,然後利用GridView匯出Excel,同時還可以匯出其他形式檔案。 using DevExpress.XtraGrid.Views.Grid; using DevExpress.XtraEditors; us