大資料實踐:ODI 和 Twitter (一)

來源:互聯網
上載者:User

標籤:

本文利用twitter做為資料來源,介紹使用Oracle大資料平台及Oralce Data Integrator工具,完成從twitter抽取資料,在hadoop平台上處理資料,並最終載入到oracle資料庫。

Data Integration分為三個階段:擷取、整理、分析和決策。

 

 

本文從實際出發,講述大資料處理的真實案例,而不是簡單的講述理論知識。首先會使用flume從twitter載入資料到HDFS,其實是載入到Hive資料庫,然後利用(Oracle Data Integrator)ODI來實現逆向工程,並轉換Hive中的JSON資料,最終將處理後的結構化資料載入到關係型資料Oracle中。

 

涉及的組件

要搭建一個完整的hadoop平台是一件比較費事的工作,本文不會在這塊做太多描述 ,在本樣本中會直接利用oracle提供的大資料虛擬機器,可直接從網上下載使用(here),裡面已經配置有CDH、Hive等組件,可直接拿來學習使用。在本樣本中,會用到虛擬機器中如下大資料平台的組件:

1. Hadoop Framework
2. HDFS
3. Hive
4. Flume
5. ZooKeeper
5. Oracle Database
6. Oracle Data Integrator

各組件不在此作詳細說明,每個組件的說明和使用可參考網路中其它文章。為什麼使用flume進行資料擷取?因為flume通過源和目標端的配置,可以很容易實現從twitter擷取資料,並載入到HDFS:


 

本樣本中使用一個現成的flume-twitter外掛程式,從twitter中擷取資料。該外掛程式使用JAVA開發,利用了一個開源的SDK-twitter4j,此組件完整覆蓋了twitter的API。利用該flume外掛程式,不用再自己編寫代碼,可實現直接從twitter擷取資料,並根據需要投遞到自己希望的目標端平台。

 

操作步驟

第一步是在twitter上建立一個帳號,訪問https://dev.twitter.com/開發人員版塊,然後在https://apps.twitter.com/建立訪問資料需要的key和令牌,這些會在flume外掛程式中配置時用到,申請完成之後的介面可能如下:

 

 

如果不使用oracle提供的大資料平台虛擬機器,則需要在自己安裝的系統中啟動Hadoop及其它相應的平台,如Hive、zooKeeper等,當然還需要安裝配置ODI 12c。如果使用的是Oracle虛擬機器,則啟動相關的服務即可。

配置flume從twitter擷取資料。首先下載flume軟體,並拷貝相應的lib到flume的指定目錄,比如添加下載的jar到flume的classpath:cp /usr/lib/flume-ng/plugins.d/twitter-streaming/lib/   /var/lib/flume-ng/plugins.d/twitter-streaming/lib/

建立flume.conf, 根據前面的twitter’s key和hadoop編輯此檔案,差不多是下面這樣:


 

接下來配置Hive

 

1. 需要能解析JSON資料的序列類,可以從此處下載一個編譯好的JSON SerDe。

2. 建立Hive需要的目錄和許可權:

$ sudo -u hdfs hadoop fs -mkdir /user/oracle/warehouse
$ sudo -u hdfs hadoop fs -chown -R oracle:oracle /user/hive
$ sudo -u hdfs hadoop fs -chmod 750 /user/oracle
$ sudo -u hdfs hadoop fs -chmod 770 /user/oracle/warehouse

3. 配置Hive的Metastore,本樣本是在mysql中建立,在此不再詳述。

4. 在Hive中建立tweets表:

 

回到flume,開始抓取資料:

1. 在hdfs中建立/user/oracle/tweets目錄 ,用於存放flume抓取的資料,同時,也是hive表中外部參考路徑所在

2. 使用下面的語句啟動flume

在作業記錄中可以看到flume在不斷將抓取到的資料寫入對應目錄下的檔案:

 

讓flume agent運行幾分鐘,確認已經捕獲到了資料之後可以停止此進程。然後在hadoop web控制台可以查看到hdfs對應目錄下的資料檔案:

查看任何一個資料檔案的內容,如下:

 

資料都是基於json格式的,可以在hive中查看抓取的記錄數:


經過flume幾分鐘的資料幫浦,我們已經得到了16161條記錄。這就是大資料時代資料產生的威力。

大資料實踐:ODI 和 Twitter (一)

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.