Amazon Elastic MapReduce (EMR)是一個(gè)用于較強(qiáng)專業(yè)性應(yīng)用程序開發(fā)的工具,其中包括日志分析、財(cái)務(wù)分析、營(yíng)銷分析以及生物信息學(xué)等應(yīng)用。它使用了開源框架Hadoop,以便于在一個(gè)亞馬遜EC2實(shí)例集群中分配你的數(shù)據(jù)。
而分析大數(shù)據(jù)的最佳方法就是使用一個(gè)運(yùn)行在Hadoop上的開源數(shù)據(jù)倉庫和分析包——Hive。Hive的腳本程序使用的是一種類似于SQL的語言,他被稱為Hive QL。通過使用這種腳本程序,你就能夠避免用Java編寫MapReduce程序所帶來的復(fù)雜性。
以下的示例是基于一個(gè)亞馬遜EMR例子創(chuàng)建HIVE集群,它使用Apache Hive進(jìn)行廣告相關(guān)性關(guān)聯(lián)。這個(gè)例子向你展示了用戶可以如何把客戶的點(diǎn)擊數(shù)據(jù)與特定廣告相關(guān)聯(lián)。
首先,打開Amazon Elastic MapReduce控制臺(tái)。然后點(diǎn)擊 Create Cluster ,在五個(gè)步驟中完成配置設(shè)置。
第一步,配置一個(gè)集群
在 Cluster name 字段中,輸入一個(gè)描述性的名稱。它可以是非唯一的。
在Termination protection 字段中,其默認(rèn)值為Yes。這一設(shè)置可確保集群不會(huì)因?yàn)橐馔饣蝈e(cuò)誤而關(guān)閉。
在Logging 字段中,其默認(rèn)值為Enabled。日志數(shù)據(jù)將被發(fā)送至亞馬遜S3。
在Log folder S3 location 字段中,請(qǐng)以如下格式輸入存儲(chǔ)桶名稱和文件夾信息:s3://<bucket name>/<folder>/。
在Debugging 字段中,其默認(rèn)值為Enabled。
Tag 部分是可選的。你可以為你的EMR集群添加最多10個(gè)標(biāo)簽。在一個(gè)標(biāo)簽中,包括了一個(gè)區(qū)分大小寫的鍵值對(duì)。
第二步,設(shè)置軟件配置
在Hadoop distribution 多選框中,選擇Amazon 為默認(rèn)值。
在 AMI version 多選框中,選擇 2.4.2 (Hadoop 1.0.3)
在Application to be installed 多選框中,保留選中Hive 和 deletePig。
第三步,設(shè)置硬件配置
在 Network 字段中,選擇Launch into EC-2 Classic。
在EC2 Subnet 字段中,選擇 No preference。
在Master、Core 以及 Task 字段中,默認(rèn)EC2實(shí)例類型為m1.small。對(duì)于低工作負(fù)載的應(yīng)用,你可以為所有節(jié)點(diǎn)選擇使用小實(shí)例(可確保降低你的使用成本)。相應(yīng)地,Count 的默認(rèn)值分別為1、 2、 0。同時(shí),對(duì)于所有三個(gè)字段,確保不選中 Request Spot Instances 。
注意:20是每個(gè)AWS帳戶的最大節(jié)點(diǎn)數(shù)。如果你運(yùn)行了2個(gè)集群,那么2個(gè)集群運(yùn)行的節(jié)點(diǎn)總數(shù)必須為20或以下。如果你確實(shí)需要節(jié)點(diǎn)數(shù)超過20,那么你必須提交一個(gè)請(qǐng)求以便于提高你的亞馬遜EC2實(shí)例上限。
第四步,設(shè)置安全和訪問配置
在EC2 key pair 字段中,從列表中選擇一個(gè)亞馬遜EC2密鑰對(duì)。這一設(shè)置可以讓你使用Secure Shell(SSH)來連接主節(jié)點(diǎn)。
在IAM user access 字段中,其默認(rèn)值為 No other IAM users。
在EC2 role 多選框中,其默認(rèn)值為 no roles found。
在Bootstrap Actions 部分,你可以不做任何操作。
第五步,指定集群參數(shù)
在Steps 部分,從列表中選擇Hive Program,并點(diǎn)擊 Configure and add。
在Name 字段中,其默認(rèn)值為Hive Program。
在 Script s3 Location 字段中(必選項(xiàng)),以BucketName/path/ScriptName的格式輸入相關(guān)信息,例如 s3n://elasticmapreduce/samples/hive-ads/libs/model-build。
在 Input s3 Location 字段中(可選項(xiàng)),以BucketName/path的格式輸入相關(guān)信息,例如 s3n://elasticmapreduce/samples/hive-ads/tables。該輸入值會(huì)作為名為INPUT的參數(shù)發(fā)送給Hive腳本程序。
Output S3 Location 字段(可選項(xiàng)),以BucketName/path的格式輸入相關(guān)信息,例如 s3n://myawsbucket/hive-ads/output/2014-4-14。該輸入值會(huì)作為名為OUTPUT的參數(shù)發(fā)送給Hive腳本程序。
在 Arguments 字段,輸入相關(guān)信息,如 - d LIBS=s3n://elasticreducemap/samples/hive-ads/libs。HIVE腳本程序需要額外的庫。
在 Action on Failure 字段中,選擇 Continue。如果當(dāng)前步驟失敗,它將繼續(xù)至下一個(gè)步驟。
當(dāng)你完成后,點(diǎn)擊Add,然后點(diǎn)擊Create Cluster。你將會(huì)看到Summary 信息。
如上例,在你繼續(xù)查詢操作和分析大數(shù)據(jù)前,你需要在主節(jié)點(diǎn)上準(zhǔn)備一個(gè)HIVE會(huì)話。
你將需要每隔五分鐘向亞馬遜S3推送 Impression 和 Click Log Files。每次添加一個(gè)條目,就會(huì)向客戶顯示一條廣告。每次添加一個(gè)Click Log Files的條目,客戶一條廣告。類似于SQL的查詢操作簡(jiǎn)化了關(guān)聯(lián)客戶點(diǎn)擊數(shù)據(jù)和特定廣告的過程。
總之,分析大數(shù)據(jù)的最佳方法就是在Hadoop上運(yùn)行Hive,并使用SQL查詢以簡(jiǎn)化日志數(shù)據(jù)分析。
來源:TechTarget中國 作者:Judy Myerson 翻譯:滕曉龍