發表文章

Hadoop四種不同的資料載入場景

圖片
  靜態資料(Data at rest) 指已經存在於某個目錄中的檔案形式的資料。 這些資料處於靜止狀態, 意味著不會再進行額外更新 ,可以直接傳輸到 Hadoop 中。 傳輸可透過標準的 HDFS Shell 指令完成,例如 cp、copyFromLocal 或 put。 動態資料(Data in motion) (a file that is getting appended , a file is being update, data from multiple locations needs to be merged into one single source.) 指持續被更新的資料。 動態資料來源可能會定期新增新資料、追加到檔案中。 或者將不同的日誌合併為一個日誌。 在將這些資料複製到 Hadoop 前,需要 具備合併檔案 的能力。 常見的動態資料有如下兩種 1.來自網頁伺服器(例如 IIS 或 Apache 網頁伺服器)的資料 2.資料庫伺服器日誌或應用程式日誌 來自網頁伺服器或資料庫日誌的資料(Data from a web server) (同上) 來自數據倉儲(Data warehouse)的資料 當從數據倉儲(Data warehouse)或其他關聯式資料庫管理系統(RDBMS)移動資料時,可以先匯出資料,然後使用 Hadoop 的指令將資料匯入。比方像是Sqoop(設計目的是在關聯式資料庫系統和 Hadoop 之間傳輸資料。) 若使用的是 Netezza 系統,可以透過 Jaql 的 Netezza 模組來讀取或寫入 Netezza 資料表。此外,也可以使用 BigSQL Load 傳輸資料。而Flume 非常適合收集來自網頁伺服器或資料庫日誌的資料。 Flume 是一個三層分佈式服務,用於資料收集與可能的資料處理,其結構由邏輯節點組成: 代理層(Agent Tier):在資料來源安裝 Flume 代理,這些代理將資料發送至下一層。 收集層(Collector Tier):將資料聚合後,轉發至最終的存儲層。 存儲層(Storage Tier):例如 HDFS。 每個邏輯節點都有來源(Source)和接收端(Sink)。來源定義資料的收集位置,而接收端則指定資料的目標位置。此外,可以選擇性地配置攔截器(Interceptors,有時稱為...

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 ...

IBM: Big Data, Hadoop, and Spark Basics

圖片
 IBM: Big Data, Hadoop, and Spark Basics https://www.edx.org/learn/big-data/ibm-big-data-hadoop-and-spark-basics 學習目標 Explain the impact of Big Data, including use cases, tools, and processing methods. 解釋大數據的影響,包括用例、工具和處理方法。 Describe Apache Hadoop architecture, ecosystem, practices, and user-related applications, including Hive, HDFS, HBase, Spark, and MapReduce. 描述 Apache Hadoop 架構、生態系統、實踐和與使用者相關的應用程式,包括 Hive、HDFS、HBase、Spark 和 MapReduce。 Apply Spark programming basics, including parallel programming basics for DataFrames, data sets, and Spark SQL 應用Spark 程式設計基礎知識,包括 DataFrames、數據集和 Spark SQL 的並行程式設計基礎知識 Use Spark’s RDDs and data sets, optimize Spark SQL using Catalyst and Tungsten, and use Spark’s development and runtime environment options. 使用 Spark 的 RDD 和數據集,使用 Catalyst 和 Tungsten 優化 Spark SQL,並使用 Spark 的開發和運行時環境選項。 Syllabus  教學大綱 Module 1: What is Big Data? Module Introduction and Learning Objectives What is Big Data? Impact of Big Data Parallel Processing, Scaling, and ...

HBase筆記

圖片
  什麼是 HBase? HBase 是基於Google的 BigTable 設計的Column導向的資料庫管理系統。它最初由LinkedIn創建,但後來被Yahoo!Inc. 收購,然後出售給 Apache軟體基金會 ,是Apache的Hadoop專案中的子專案。 是運行於HDFS檔案系統之上的(無法單獨運行) ,為Hadoop提供類似BigTable的服務。 它 是 column-oriented 的非關聯式資料庫 ,並 具有水平擴展的能力 。強調"讀寫當下的一致性",但非注重"最終的一致性"。 HBase其實在最早就跟Zooker,Pig,Sqoop,Mahout機器學習等工具 於2009~2009同一時期問世 https://www.altexsoft.com/blog/hadoop-pros-cons/ 從Hadoop生態架構圖上可看到像是Pig,Mahout,Hive與MapReduce的模組都涉及到HBase。 此外,HDFS模組也是在其之下,表示上述這些模組都是based on  HDFS。 https://semiconductor.samsung.com/us/support/tools-resources/dictionary/the-hadoop-ecosystem/ 何謂column-oriented儲存導向? 白話而言就有點類似傳統資料庫row-oriented儲存導向轉置 https://www.techtarget.com/searchdatamanagement/definition/columnar-database row-oriented Database特點  數據是按照row逐筆存儲的,row存儲的寫入是一個原子動作, 消耗的時間比column-oriented少,並且能夠保證數據的完整性 ,但也代表 數據讀取過程中會產生冗余的數據 。  沒有索引的查詢使用大量I/O,可通過索引加快查詢效率,但建立索引和物化視圖需要花費成本高,面對大量的查詢需求,Database必須被大量讀取才能滿足需求。 column-oriented Database特點 數據是按照column逐欄存儲,即每一欄單獨存儲,數據即索引。但 在寫入效率、保證數據完整性上都不如row-oriented存儲 ,它的優勢...

T-SQL筆記60_Database Mail設定檔確認指令

列出一或多個郵件設定檔的相關資訊。 EXECUTE msdb.dbo.sysmail_help_profile_sp 列出一或多個Database Mail 設定檔的相關帳戶。 EXECUTE msdb.dbo.sysmail_help_profileaccount_sp 列出Database Mail 帳戶的相關資訊(密碼除外)。 EXECUTE msdb.dbo.sysmail_help_account_sp 列出Database Mail設定檔 SELECT * FROM msdb.dbo.sysmail_profile 列出Database Mail帳戶 SELECT * FROM msdb.dbo.sysmail_account 列出設定檔對應的帳戶 select * from msdb.dbo.sysmail_profileaccount

T-SQL筆記59_條列角色與對應成員清單_檢查某個角色下授權的存取清單

條列角色與對應成員清單 WITH RoleMembers (member_principal_id, role_principal_id) AS ( SELECT rm1.member_principal_id, rm1.role_principal_id FROM sys.database_role_members rm1 (NOLOCK) UNION ALL SELECT d.member_principal_id, rm.role_principal_id FROM sys.database_role_members rm (NOLOCK) INNER JOIN RoleMembers AS d ON rm.member_principal_id = d.role_principal_id ) select distinct rp.name as database_role, mp.name as database_userl from RoleMembers drm join sys.database_principals rp on (drm.role_principal_id = rp.principal_id) join sys.database_principals mp on (drm.member_principal_id = mp.principal_id) order by rp.name 檢查某個角色下授權的存取清單(以USER_TABLE來篩) SELECT DB_NAME() AS 'DBName' ,p.[name] AS 'PrincipalName' ,p.[type_desc] AS 'PrincipalType' ,p2.[name] AS 'GrantedBy' ,dbp.[permission_name] ,dbp.[state_desc] ,so.name AS 'ObjectName' ,so.[type_de...

Microsoft Azure 基本概念:描述雲端概念

圖片
  Microsoft Azure 基本概念:描述雲端概念 https://learn.microsoft.com/zh-tw/training/paths/microsoft-azure-fundamentals-describe-cloud-concepts/ 1.描述雲端運算 2.描述使用雲端服務的優點 3.描述雲端服務類型 1.描述雲端運算 什麼是雲端運算? 雲端運算為透過網際網路傳遞的運算服務。 運算服務包括常見的 IT 基礎結構,例如虛擬機器、儲存體、資料庫和網路。 雲端服務也會擴充傳統的 IT 供應項目,包括物聯網 (IoT)、機器學習 (ML),以及人工智慧 (AI)。 責任分擔模式 共同責任模型 傳統的公司資料中心,公司負責維護實體空間、確保安全性,並在發生任何情況時維護或替換伺服器。讓資料中心持續運作所需的一切基礎結構和軟體,則由IT部門負責維護,可能也得負責修補所有系統,並維持正確的版本。 使用共同責任模型後,雲端提供者與取用者就可共同分擔這些責任。實體安全性、電源、冷卻和網路連線是雲端提供者的責任。取用者不會與資料中心共置,因此要求取用者負擔與此相關的任何責任並不合理。同時,取用者須負責處理儲存在雲端的資料和資訊。(您不會想讓雲端提供者讀取您的資訊。)取用者也須負責存取安全性,也就是說,您只會將存取權授與需要的人。 使用雲端提供者時,您一律須負責: 儲存在雲端的資訊和資料 可連線到雲端的裝置 (行動電話、電腦等) 組織內人員、服務和裝置的帳戶與身分識別 下列項目一律由雲端提供者負責: 實體資料中心 實體網路 實體主機 定義雲端模型 三種主要的雲端模型分別是:私人、公用和混合式。 私人雲端 某種程度上來說,私人雲端是公司資料中心的自然演進。 它是一種由單一實體使用的雲端 (透過網際網路提供 IT 服務)。 私人雲端可為公司及其 IT 部門提供更好的控制性。 不過,它的成本較高,也只擁有較少的公用雲端部署優點。 最後,私人雲端可以用您的站台資料中心裝載。 它也可能裝載於專用的異地資料中心,甚至由提供該資料中心給您公司專用的協力廠商裝載。 公用雲端 公用雲端由協力廠商雲端提供者建置、控制和維護。 透過公用雲端,任何想要購買雲端服務的人都可以存取並使用資源。 公用和私人雲端之間的主要差異在於一般公開可用性。 混合式雲端 混合式雲端是一種運算環...

Spark MLlib介紹與使用(2)_線性回歸

圖片
  [cloudera@cdh6 ~]$ nano lr_train.csv [cloudera@cdh6 ~]$ nano lr_train.csv [cloudera@cdh6 ~]$ [cloudera@cdh6 ~]$ cat lr_train.csv 21.6 1:208 15.5 1:152 10.4 1:113 31.0 1:227 13.0 1:137 32.4 1:238 19.0 1:178 10.4 1:104 19.0 1:191 11.8 1:130 26.5 1:220 16.0 1:140 9.5  1:100 28.3 1:200 20.1 1:150 22.6 1:170 24.5 1:200 25   1:185 14.3 1:120 [cloudera@cdh6 ~]$ hdfs dfs -put lr_train.csv [cloudera@cdh6 ~]$ nano lr_test.csv [cloudera@cdh6 ~]$ [cloudera@cdh6 ~]$ cat lr_test.csv 16 1:150 9  1:100 28 1:200 20 1:130 [cloudera@cdh6 ~]$ hdfs dfs -put lr_test.csv >>> lr_train = spark.read.format("libsvm").load("lr_train.csv") >>> lr_test = spark.read.format("libsvm").load("lr_test.csv") >>> lr_train.show() +-----+---------------+ |label|       features| +-----+---------------+ | 21.6|(1,[0],[208.0])| | 15.5|(1,[0],[152.0])| | 10.4|(1,[0],[113.0])| | 31.0|(1,[0],[227.0])| | 13.0|(1,[0],[137.0])| | 32.4|(1,[0],[238.0])| | 19.0|(1,...