發表文章

目前顯示的是有「Apache Hive」標籤的文章

Hadoop 生態系統當中的Flume,Sqoop ,Pig,Hive

圖片
Hadoop 生態系統由支持彼此進行大數據處理的組件組成。  我們可以根據各種階段檢查 Hadoop 生態系統。  當從多個來源接收數據時,Flume 和 Sqoop 負責攝取數據並將它們傳輸到存儲組件 HDFS 和 HBase。 然後,數據被分配到像 Pig 和 Hive 這樣的 MapReduce 框架來處理和分析數據,並通過並行計算來完成處理。  Sqoop (SQL to Hadoop) Sqoop 於 2012 年 3 月正式從孵化專案畢業,成為 Apache 的頂級專案。 Apache Sqoop 是一個專為在 Hadoop 和結構化資料存儲(例如關聯式資料庫)之間 高效傳輸大量資料而設計的工具。 Sqoop 允許使用者從關聯式資料庫(RDBMS)中擷取資料到 Hadoop,供後續分析使用。 Sqoop 也能將分析結果匯入資料庫,供其他用戶端程式使用。 它使用 JDBC 來存取關聯系統。 Sqoop 存取資料庫以了解要傳輸的資料結構,並生成一個 MapReduce 應用程式來匯入或匯出資料。 當使用 Sqoop 將資料匯入 Hadoop 時,Sqoop 會生成一個 Java 類別來封裝匯入表中的每一row。 Sqoop 匯入命令用於從關聯式資料表提取資料並載入到 Hadoop 中。 HDFS 中的每一筆資料於資料表中的每一row。 匯入到 HDFS 的資料可以存為文字檔案、二進位檔案,或直接匯入到 HBase 或 Hive。 預設情況下,會匯入all rows of a table,但可透過參數指定特定的columns或使用 WHERE 子句限制匯入的rows。甚至可以自行定義查詢來存取關聯式資料。 若需指定匯入資料的存放位置,可以使用 --target-dir 參數。否則,目標目錄名稱將與資料表名稱相同。 欄位與記錄格式預設使用逗號分隔欄位,每條記錄以換行符號結束。匯入與匯出指令都可以覆寫此行為。 Sqoop 提供命令列介面來傳輸資料,支援以下功能: 從單一資料庫表或free-form SQL 查詢進行增量載入(incremental loads)。 使用腳本,在需要時匯入自上次匯入以來對資料庫的更新。 將資料載入 Hive 或 HBase 的資料表中。(populate tables in Hive or HBase) 無...

Hive指令操作測試

圖片
  https://xmlandmore.blogspot.com/2017/04/apache-hivehive-cli-vs-beeline.html Setup Hive and Bee 使用來自 Docker Hub 的 Hive 進行此實驗。 通過運行以下命令將 Hive 映像拉取到您的系統中。 docker pull apache/hive:4.0.0-alpha-1 現在,將在端口 10002 上運行 hive 伺服器。 將Server instance命名為 myhiveserver。 我們將把本地數據文件夾掛載到 hive 伺服器上,名稱為 hive_custom_data。 這意味著您在本地創建的整個數據文件夾,以及在數據文件夾中添加的任何內容,都會複製到容器的 hive_custom_data 目錄下。 docker run -d -p 10000:10000 -p 10002:10002 --env SERVICE_NAME=hiveserver2 -v /home/project/data:/hive_custom_data --name myhiveserver apache/hive:4.0.0-alpha-1 可以打開並查看Hive伺服器的圖形用戶介面。 打開HiveServer2圖形用戶介面 https://chousml-10002.theiadockernext-1-labs-prod-theiak8s-4-tor01.proxy.cognitiveclass.ai/ 運行以下命令,允許訪問 beeline。 這是一個 SQL 命令行界面,可以在其中創建、修改、刪除表格,並訪問表格中的數據。 docker exec -it myhiveserver beeline -u 'jdbc:hive2://localhost:10000/' Create table, add and view data 創建一個新的表格 Employee,包含三個欄位, csv 中的 em_id、emp_name 和 salary,請運行以下命令。 create table Employee(emp_id string, emp_name string, salary  int)  row format delimited ...

Apache Hive筆記(一)_Hive分散式資料倉儲系統介紹_Hive CLI和beeline CLI

圖片
Hive 是Hadoop當中一個極重要的子專案,與HDFS協同合作成為Hadoop上的資料倉儲架構,Hive提供相近於T-SQL的查詢語言稱為Hive QL。 Hive QL提供使用者執行部份與SQL類似的操作,如常見的資料定義(DDL)操作及資料操 作語言(DML)等 目前Hive QL並不完全支援目前SQL提供的所有的函式,如預存程序與觸發程序等。與Hadoop中的MapReduce程式技術結合後,可自動的將Hive QL語言轉换為MapReduce Task,使用者可容易的使用Hive QL對HDFS中的海量資料進行分析處理,不需要再以Java語言自行撰寫MapReduce程式。 目前Hive提供透過JDBC與ODBC及Thrift等方式來與Hive進行連接 https://www.nitendratech.com/hive/apache-hive/ Thrift 是Facebook在2007年交給Apache軟體基金會的開源專案,主要目的是為了解決Facebook在不同系統中大資料量的傅輸通訊,及系統之間所使用的不同軟體語言與異質環境而訂定的跨平台軟體服務,其支援C++、C#、Haskell、Java、Ocami、Per、PHP、Python、Ruby、Smalltalk等多種不同的程式語言間的通訊,並可作為二進位的高性能的通訊中介軟體,支援資料及物件的序列化和多種類型的RPC服務etaStore為Hive的系統目錄架構,負責Hive中介資料的存放,如資料表的格式、屬性等,因Hive儲存建立在HDFS架構上,在Hive下每張資料表實體存放位置皆會對應到HDFS中的檔案目錄。 Hive提供使用者兩種操作模式為Web UI及命令列介面,來進行對Hive執行Hive QL指令, Hive QL對MetaStore的中介資料進行分析後,透過Driver中的编譯器轉换為 MapReduce Task後,將該工作交給Hadoop進行資料處理。 於AWS網站摘要的內文介紹 Apache Hive 是一種容錯的分散式資料倉儲系統,可進行大規模分析。資料倉儲提供資訊的中央存放區,可以輕鬆分析資料以作出明智且資料導向的決策。Hive 讓客戶使用 SQL 讀取、寫入與管理 PB 級資料。 Hive 建構在 Apache Hadoop 之上,這是一個用於有效儲存和處理大型資料集的開...