一種基於django擴展Hue中sqoop功能的方法
2024-01-22 18:37:15 1
一種基於django擴展Hue中sqoop功能的方法
【專利摘要】本發明提供一種基於django擴展Hue中sqoop功能的方法,涉及大數據領域,本發明實現方式是通過在Hadoop集群中sqoop節點上運行一個用django編寫的restfulserver用以接受用戶的restful請求,並根據請求的url和提交的表單數據拼接並執行相應的sqoop命令。實施本方法之後可以以圖形化的方式調用sqoop的所有功能。極大了提高了生產力。
【專利說明】 —種基於django擴展Hue中sqoop功能的方法
【技術領域】
[0001]本發明涉及大數據領域,尤其涉及一種基於django擴展Hue中sqoop功能的方法,利用Hue中集成的sqoop進行數據抽取。
【背景技術】
[0002]隨著社會信息化程度的快速提升。各種信息系統也產生了越來越多的數據。大量數據的存儲格式也不盡相同,比如資料庫、xml文件等。正確使用這些數據將會對決策層產生非常大的幫助。大量的數據必然設計到大容量存儲,這些數據的分析也會依賴於大量的計算資源。而Hadoop就剛好可以滿足這兩個需求。Hadoop可以把大量的x86架構的機器加入到集群中,然後把這些機器的存儲跟計算能力池化。Hadoop Distributed File System(HDFS)是建立在集群中節點存儲之上的分布式文件系統,能夠完成大量數據的存儲。並且Hadoop之上有多種計算框架可以高效的完成數據的分析。
[0003]要想在Hadoop集群中完成數據的分析,那麼就需要把數據抽取到HDFS之上。ETL工具就是專門針對數據到抽取、轉換、加載而設計的。Sqoop作為Hadoop生態圈中重要的一員可以高效的完成數據的抽取。然而sqoop的使用門檻比較高,一般人員難以短時間內上手使用。而Hue可以以圖形化的方式來調用sqoop完成數據的抽取,這就大大降低了 sqoop的使用門濫。但是Hue中集成的是Sqoopl.9.9,而Sqoopl.9.9的功能很不完善,甚至都不能滿足特定的業務需求。
[0004]Django作為python上web開發的一站式框架以其強大的功能、易用的接口、靈活的擴展性等優點可以極大的提高web開發效率。
【發明內容】
[0005]本發明就是針對上述情況提出了一種基於django擴展Hue中sqoop功能的方法。實施本方法之後可以以圖形化的方式調用sqoop的所有功能。極大了提高了生產力。
[0006]由於目前Hue中集成的sqoop模塊功能很弱,本發明就是針對這種現狀提出的用於擴展Hue中sqoop功能的方法。本發明實現方式是通過在Hadoop集群中sqoop節點上運行一個用django編寫的restful server用以接受用戶的restful請求,並根據請求的urI和提交的表單數據拼接並執行相應的sqoop命令。
[0007]本發明是基於django擴展Hue中的sqoop的功能。而Hue是B/S架構。所以本發明也是基於B/S架構的。Server端是運行在Hadoop集群中的基於django實現的restfulserver,主要作用是把browser端對不同url的請求轉化為對相應sqoop功能的調用。Restful server要運行在Hadoop的集群中以便調用sqoop。由於sqoop2還未開發完成,作為替代發出的sqoopl.99.X功能非常弱。所以本發明基於sqoopl.4.5。即用戶在瀏覽器表單中填寫完成數據抽取所需要的數據,比如用戶名、密碼、類型(導入、導出)、導出目錄等信息。表單提交時會根據用戶的實際情況提交到不同url。Django restful server根據請求的url和提交的表單數據拼接sqoop命令,最後django restful server調用相應的sqoop命令完成數據的抽取。django restful server運行節點上要求安裝有sqoop以便完成對sqoop腳本的調用。瀏覽器端還可以請求相應的restful url來獲取作業執行的狀態信息等。
[0008]大大擴展了 Hue中sqoop模塊的功能。可以讓用戶在Hue中以圖形化的方式操作sqoop進而完成數據的抽取、轉換、加載等工作,大大提升了工作效率。
【專利附圖】
【附圖說明】
[0009]附圖1為本發明的總體實現示意圖。
[0010]附圖2為本發明的內部實現原理圖。
【具體實施方式】
[0011]下面對本發明的內容進行更加詳細的闡述:
本發明重在提出了一種擴展Hue中sqoop模塊功能的方法。並沒有增強sqoop的功能。重要思想是在hadoop集群中的sqoop安裝節點上運行django restful server,該server接受Hue中的restful請求,根據請求的表單數據拼接並執行sqoop命令。
[0012]本發明是基於django擴展Hue中的sqoop的功能。而Hue是B/S架構。所以本發明也是基於B/S架構的。
[0013]Server端是運行在Hadoop集群中的基於django實現的restful server,主要作用是把browser端對不同url的請求轉化為對相應sqoop功能的調用,如附圖1所示。
[0014]Restful server要運行在Hadoop的集群中以便調用sqoop。由於sqoop2還未開發完成,作為替代發出的sqoopl.99.X功能非常弱。所以本發明基於sqoopl.4.5。具體的內部實現原理見附圖2。即用戶在瀏覽器表單中填寫完成數據抽取所需要的數據,比如用戶名、密碼、類型(導入、導出)、導出目錄等信息。表單提交時會根據用戶的實際情況提交到不同url。Django restful server根據請求的url和提交的表單數據拼接sqoop命令,最後django restful server調用相應的sqoop命令完成數據的抽取。
[0015]注意:在圖1和圖2中django restful server運行節點上要求安裝有sqoop以便完成對sqoop腳本的調用。瀏覽器端還可以請求相應的restful url來獲取作業執行的狀態信息等。
【權利要求】
1.一種基於擴展!1116中8(^001)功能的方法,其特徵在於,其實現方法如下:通過在1121(1001)集群中8(^001)節點上運行一個用(1扣叩。編寫的1~68忖111 86^61~用以接受用戶的請求,並根據請求的111*1和提交的表單數據拼接並執行相應的8(^001)命令。
2.根據權利要求1所述的方法,其特徵在於,361^61'端是運行在集群中的基於 實現的861^61',主要作用是把131*0*861'端對不同111*1的請求轉化為對相應8(^001)功能的調用。
3.根據權利要求1所述的方法,其特徵在於,861^61'要運行在!13(1001)的集群中以便調用叫。。!)。
4.根據權利要求1所述的方法,其特徵在於,在瀏覽器表單中填寫完成數據抽取所需要的數據,表單提交時會根據用戶的實際情況提交到不同;0扣1180 1~681:?111 861^61'根據請求的和提交的表單數據拼接8(1001)命令,最後1~681:?111 861^61'調用相應的8(10013命令完成數據的抽取。
【文檔編號】G06F17/30GK104408167SQ201410744714
【公開日】2015年3月11日 申請日期:2014年12月9日 優先權日:2014年12月9日
【發明者】李佔強, 辛國茂, 曹連超 申請人:浪潮電子信息產業股份有限公司