わが社はいかにしてHadoopクラスター環境を構築したか:となりのアドテク(2)(5/5 ページ)
モバイル広告という、難度の高いサービスを展開する会社が、データ活用プラットフォームをRDBMSからHadoopに置き替えるまでの実録とハウツーを紹介します。
動作を確認する
ここからは、簡単にHDFSとMapReduceの動作確認を行ってみましょう。
HDFSの動作を確認する
HDFSの動作確認をします。HDFS上にファイルの作成と削除を行います。
$ hadoop fs -touchz /test $ hadoop fs -ls / Found 5 items -rw-r--r-- 3 hdfs supergroup 0 2014-01-24 22:13 /test drwxr-xr-x - hdfs supergroup 0 2013-12-04 18:38 /jobtracker drwxr-xr-x - hdfs supergroup 0 2014-01-14 15:44 /mahout drwxrwxrwt - hdfs supergroup 0 2014-01-20 16:44 /tmp drwxrwxrwx - hdfs supergroup 0 2014-01-20 16:54 /user $ hadoop fs -rm /test $ hadoop fs -ls / Found 4 items drwxr-xr-x - hdfs supergroup 0 2013-12-04 18:38 /jobtracker drwxr-xr-x - hdfs supergroup 0 2014-01-14 15:44 /mahout drwxrwxrwt - hdfs supergroup 0 2014-01-20 16:44 /tmp drwxrwxrwx - hdfs supergroup 0 2014-01-20 16:54 /user
MapReduceの動作を確認する
MapReduceの動作確認をします。CDHに含まれているexampleのMapReduceを実行して円周率の計算をします。
$ hadoop jar /opt/cloudera/parcels/CDH-4.4.0-1.cdh4.4.0.p0.39/lib/hadoop-0.20-mapreduce/h adoop-examples-2.0.0-mr1-cdh4.4.0.jar pi 5 2000 Number of Maps = 5 Samples per Map = 2000 Wrote input for Map #0 Wrote input for Map #1 Wrote input for Map #2 Wrote input for Map #3 Wrote input for Map #4 Starting Job 14/01/24 22:16:13 WARN mapred.JobClient: Use GenericOptionsParser for parsing the arguments. Applications should implement Tool for the same. 14/01/24 22:16:13 INFO mapred.FileInputFormat: Total input paths to process : 5 14/01/24 22:16:13 INFO mapred.JobClient: Running job: job_201401201800_0003 14/01/24 22:16:14 INFO mapred.JobClient: map 0% reduce 0% 14/01/24 22:16:23 INFO mapred.JobClient: map 80% reduce 0% 14/01/24 22:16:24 INFO mapred.JobClient: map 100% reduce 0% 14/01/24 22:16:29 INFO mapred.JobClient: map 100% reduce 100% 14/01/24 22:16:30 INFO mapred.JobClient: Job complete: job_201401201800_0003 14/01/24 22:16:30 INFO mapred.JobClient: Counters: 33 14/01/24 22:16:30 INFO mapred.JobClient: File System Counters 14/01/24 22:16:30 INFO mapred.JobClient: FILE: Number of bytes read=75 14/01/24 22:16:30 INFO mapred.JobClient: FILE: Number of bytes written=988233 14/01/24 22:16:30 INFO mapred.JobClient: FILE: Number of read operations=0 14/01/24 22:16:30 INFO mapred.JobClient: FILE: Number of large read operations=0 14/01/24 22:16:30 INFO mapred.JobClient: FILE: Number of write operations=0 14/01/24 22:16:30 INFO mapred.JobClient: HDFS: Number of bytes read=1215 14/01/24 22:16:30 INFO mapred.JobClient: HDFS: Number of bytes written=215 14/01/24 22:16:30 INFO mapred.JobClient: HDFS: Number of read operations=16 14/01/24 22:16:30 INFO mapred.JobClient: HDFS: Number of large read operations=0 14/01/24 22:16:30 INFO mapred.JobClient: HDFS: Number of write operations=3 14/01/24 22:16:31 INFO mapred.JobClient: Job Counters 14/01/24 22:16:31 INFO mapred.JobClient: Launched map tasks=5 14/01/24 22:16:31 INFO mapred.JobClient: Launched reduce tasks=1 14/01/24 22:16:31 INFO mapred.JobClient: Data-local map tasks=5 14/01/24 22:16:31 INFO mapred.JobClient: Total time spent by all maps in occupied slots (ms)=22949 14/01/24 22:16:31 INFO mapred.JobClient: Total time spent by all reduces in occupied slots (ms)=3985 14/01/24 22:16:31 INFO mapred.JobClient: Total time spent by all maps waiting after reserving slots (ms)=0 14/01/24 22:16:31 INFO mapred.JobClient: Total time spent by all reduces waiting after reserving slots (ms)=0 14/01/24 22:16:31 INFO mapred.JobClient: Map-Reduce Framework 14/01/24 22:16:31 INFO mapred.JobClient: Map input records=5 14/01/24 22:16:31 INFO mapred.JobClient: Map output records=10 14/01/24 22:16:31 INFO mapred.JobClient: Map output bytes=90 14/01/24 22:16:31 INFO mapred.JobClient: Input split bytes=625 14/01/24 22:16:31 INFO mapred.JobClient: Combine input records=0 14/01/24 22:16:31 INFO mapred.JobClient: Combine output records=0 14/01/24 22:16:31 INFO mapred.JobClient: Reduce input groups=2 14/01/24 22:16:31 INFO mapred.JobClient: Reduce shuffle bytes=175 14/01/24 22:16:31 INFO mapred.JobClient: Reduce input records=10 14/01/24 22:16:31 INFO mapred.JobClient: Reduce output records=0 14/01/24 22:16:31 INFO mapred.JobClient: Spilled Records=20 14/01/24 22:16:31 INFO mapred.JobClient: CPU time spent (ms)=4340 14/01/24 22:16:31 INFO mapred.JobClient: Physical memory (bytes) snapshot=2201190400 14/01/24 22:16:31 INFO mapred.JobClient: Virtual memory (bytes) snapshot=10074357760 14/01/24 22:16:31 INFO mapred.JobClient: Total committed heap usage (bytes)=2552233984 14/01/24 22:16:31 INFO mapred.JobClient: org.apache.hadoop.mapreduce.lib.input.FileInputFormatCounter 14/01/24 22:16:31 INFO mapred.JobClient: BYTES_READ=120 Job Finished in 17.947 seconds Estimated value of Pi is 3.14080000000000000000
ここまでで、当社が実際に利用している環境と同様のHadoop環境やCMの導入手順を紹介しました。次回はClouderaManagerやHueを使ったHadoopの運用ついて紹介していきます。お楽しみに!
執筆者プロフィール
萩原伸悟
株式会社CyberZ スマートデバイスアドテクノロジー事業部 エンジニア
メーカーでシステムエンジニアを経験後,Webマーケティングの会社を設立しCTOに就任。2013年4月、株式会社CyberZ入社。スマートフォン広告効果測定ツール「Force Operation X」の開発に従事。開発業務の傍ら、ソフトウェア、プログラミングに関する執筆活動も積極的に行っている。
上原誠
株式会社CyberZ スマートデバイスアドテクノロジー事業部 エンジニア
通信システム会社でインフラエンジニアを経験後、2012年、株式会社サイバーエージェント入社。Ameba事業本部にて、スマートフォンサービスプラットフォームにおけるインフラエンジニアを担当。2013年9月、株式会社CyberZへ入社。スマートフォン広告ソリューションツール「Force Operation X」のインフラチームを率いる。現在は、AWSプラットフォーム、Hadoop、OSS/Linuxシステムの構築、技術検証を行う。CCNP、MCSE、LPIC、IBM Certified Operator(AIX)認定技術者。
関連特集:「データ分析を支える技術」
大量データをサービス開発に生かす機運が高まっている今、多くのIT技術者はビジネスサイドの要請に、柔軟・迅速に応えられるデータ基盤整備を迫られている。本特集では、その基礎技術や理解しておくべき技術動向、新たな収益に結び付くデータ活用の在り方を紹介する。
Copyright © ITmedia, Inc. All Rights Reserved.