• <menu id="w2i4a"></menu>
  • logo Hadoop教程

    文檔首頁>>Hadoop教程>>Hadoop教程:Smartbi在Hadoop大數(shù)據分析中的應用

    Hadoop教程:Smartbi在Hadoop大數(shù)據分析中的應用


    大數(shù)據是目前最熱門的話題,雖然不少廠商宣稱推出了大數(shù)據的產品,但在實際應用中,Hadoop已經成為大數(shù)據處理的事實標準,F(xiàn)acebook、百度、阿里等互聯(lián)網企業(yè)無一不采用Hadoop。即便是商業(yè)數(shù)據庫公司,如IBM、Oracle、SAP、Teradata、甚至Microsoft等都采用了Hadoop。國產數(shù)據庫廠商的人大金倉在大數(shù)據方解決案中也整合了Hadoop產品。

    Hadoop之所以這么受歡迎,源于其良好的系統(tǒng)架構,使其能夠以很低的成本、高效率、可靠的存儲和處理千兆字節(jié)(PB)數(shù)據。Hive是構建在Hadoop的數(shù)據倉庫平臺,用于存儲和處理海量結構化數(shù)據。它把海量數(shù)據存儲于Hadoop文件系統(tǒng),而不是數(shù)據庫,但提供了一套類數(shù)據庫的數(shù)據存儲和處理機制,并采用 HQL (類 SQL )語言對這些數(shù)據進行自動化管理和處理。我們可以把 Hive中海量結構化數(shù)據看成一個個的表,而實際上這些數(shù)據是分布式存儲在 HDFS 中的。Hive 經過對語句進行解析和轉換,最終生成一系列基于Hadoop的map/reduce 任務,通過執(zhí)行這些任務完成數(shù)據處理。

    傳統(tǒng)上商業(yè)智能BI平臺或報表平臺是基于關系數(shù)據庫搭建的,即便數(shù)據倉庫使用了Hadoop,也是將Hadoop作為計算工具,將計算結果寫入Oracle、DB2等數(shù)據庫中,供BI軟件查詢。事實上,隨著Hadoop/Hive產業(yè)鏈的成熟,BI工具可以通過JDBC等方式,直接連接Hive查詢數(shù)據。這樣,除了專業(yè)的IT工程師,眾多普通用戶也能體驗到Hadoop的魅力。

    Smartbi作為國內領先的BI平臺,能夠很好的支持Hadoop/Hive產品。Smartbi結合Hadoop/Hive在電信行業(yè)中已經取得了成功的應用案例。

    下面介紹如何使用Smartbi連接Hadoop/Hive查詢數(shù)據。

    1.首先安裝好系統(tǒng)環(huán)境,示例為Ubuntu 12.04/JDK7/Hadoop-1.2.1/Hive-0.11.0,并裝載數(shù)據。然后啟動Hive服務。

    Hadoop教程,Smartbi

    2.將下列Hive JDBC驅動等文件拷貝到Smartbi的Lib目錄下(.\smartbi\WEB-INF\lib)。

    Hadoop教程,Smartbi

    3.啟動Smartbi,在系統(tǒng)管理中建立Hadopp的JDBC連接,驅動程序類為:org.apache.hadoop.hive.jdbc.HiveDriver,連接串為jdbc:hive://ip:port/default。測試連接通過后保存。

    Hadoop教程,Smartbi

    4.在Smartbi數(shù)據集定義功能中編寫Hive SQL語句。

    Hadoop教程,Smartbi

    5.點擊“預覽”按鈕,查看查詢結果。

    Hadoop教程,Smartbi

    6.在Smartbi中展現(xiàn)Hive的報表。

    Hadoop教程,Smartbi

    來源:中國大數(shù)據

    掃碼咨詢


    添加微信 立即咨詢

    電話咨詢

    客服熱線
    023-68661681

    TOP
    三级成人熟女影院,欧美午夜成人精品视频,亚洲国产成人乱色在线观看,色中色成人论坛 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();