Contenu connexe Similaire à バックエンドサービスに日の目を当てて愛でましょう ~メディアサービス&HDInsight編~ (20) バックエンドサービスに日の目を当てて愛でましょう ~メディアサービス&HDInsight編~2. 自己紹介
• 割と普通 ( @normalian )
– 社蓄★戦士(キリッ
– Windows Azure と ASP.NET とか得意です
– JavaEE5 とか JavaEE6 とかも得意です
– Microsoft MVP for Windows Azure 2010~
2
6. その他のバックエンドサービス
• TRAFFIC MANAGER
– データセンタ間でトラフィックを割り振る
• サービスバス
– 通知ハブを利用したモバイルデバイスのプッシュ通知
• 復旧サービス
– オフラインも含めたバックアップサービス
• BIZTALK SERVICE
– BtoB 向けエンタープライズサービスの構築
等々、他にも色々と
19. 19
① NuGet での SDK 取得
• [NuGet パッケージ管理] から検索
「Media Service」で検索
※注 .NET Framework、Java 向けの SDK のみ提供
20. • 利用可能な PowerShell コマンド
• PowerShell の構文例
② コマンドラインの利用
20
PS C:¥> New-AzureMediaServicesAccount
-Name "mymediademo“
-StorageAccountName "trifonov1“
-Location "West US"
24. HDInsight の概要
• Windows Azure 上でビックデータを扱う機能を提供
• Hive, Pig 等のコンポーネントを構築する手間を軽減
• クラスタ構築の管理の手間を軽減
※注 現在は Preview 中のため、アメリカ合衆国西部
or 北ヨーロッパでのみ利用可能
Hadoop コア部分
Hive, Pig 等の大規模デー
タを取り扱うためのコン
ポーネント群
33. 33
NuGet での SDK 取得
• install-package Microsoft.Hadoop.MapReduce
• install-package Microsoft.Hadoop.Hive
• install-package Microsoft.Hadoop.WebClient
• install-package Microsoft.WindowsAzure.Management.HDInsight
• install-package Microsoft.Hadoop.Avro
34. 34
C# でかける M/R
• Map / Reduce
public class Mapper : MapperBase
{
private char[] delimiterChars = {' ', ',', '.', ':', ';', '¥'','¥t'};
public override void Map(string inputLine, MapperContext context)
{
var words = inputLine.Split(delimiterChars);
foreach (var word in words)
{
if (!string.IsNullOrEmpty(word))
{
context.EmitKeyValue(word, "1");
}
}
}
}
public class Reducer : ReducerCombinerBase
{
public override void Reduce(string key, IEnumerable<string> values,
ReducerCombinerContext context)
{
context.EmitKeyValue(key, values.Count().ToString());
}
}
35. 実行方法
• StreamingUnit Hadoopサービス外で実行
• HDInsight Server (localhost)上で実行
var outputData = StreamingUnit.Execute<Mapper, Reducer>(File.ReadAllLines(name));
static void Run()
{
var hadoop = Hadoop.Connect();
hadoop.MapReduceJob.ExecuteJob<MyJob>();
}
public class MyJob : HadoopJob<Mapper, Reducer>
{
public override HadoopJobConfiguration Configure(ExecutorContext context)
{
var config = new HadoopJobConfiguration
{
InputPath = "input/wc/aristotle-history-78.txt",
OutputFolder = "output/wc"
};
return config;
}
}
36. • Windows Azure HDInsight
Uri azureCluster = new Uri("https://pnopcluster.azurehdinsight.net:563");
var clusterUserName = "admin";
var clusterPassword = "Hello123!!";
var hadoopUserName = "Hadoop";
var azureStorageAccount = "pnopclusterstorage.blob.core.windows.net";
var azureStorageKey = "ストレージキー";
var azureStorageContainer = "pnopcluster";
bool createContinerIfNotExist = true;
var hadoop = Hadoop.Connect(azureCluster,
clusterUserName,
hadoopUserName,
clusterPassword,
azureStorageAccount,
azureStorageKey,
azureStorageContainer,
createContinerIfNotExist);
hadoop.MapReduceJob.ExecuteJob<MyJob>();
実行方法
ターゲットプラットフォーム は、x64で
45. 45
参考 – メディアサービス
• Demo – how to create HLS and Smooth Streaming
assets using dynamic packaging
http://mingfeiy.com/demo-how-to-create-hls-and-
smooth-streaming-assets-using-dynamic-
packaging/
• How to use Windows Azure PowerShell for Media
Services
http://www.gtrifonov.com/2013/08/24/how-to-use-
windows-azure-powershell-for-media-services/
46. 46
参考 – HDInsight
• patterns & practices - Windows Azure Guidance Part
4, Developing Big Data Solutions on Windows Azure
http://wag.codeplex.com/releases/view/103405
• Windows Azure HDInsight サービス入門
http://www.windowsazure.com/ja-
jp/manage/services/hdinsight/introduction-
hdinsight/