サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
買ってよかったもの
linux.wwing.net
4日目です。 2015/1/1: 最新情報を別ページにまとめました O’Reillyのサイバーセールで洋書を買いまくった皆様、いかがお過ごしでしょうか?前回のブログからだいぶ時間が過ぎてしまったので、今後出版される予定のHadoop関連本のまとめを更新してみました。(一部O’Reillyじゃないものも含まれています) しかし象本4版は来年秋かぁ、、、まだまだ先ですね 🙂 Early Releaseと見間違いました。ご指摘ありがとうございました> @tamagawa_ryuji さん m(__)m #日本語版楽しみにしてますw NoTitleRelease date和書名出版日雑感
2日目です Apache Sparkは「インメモリで処理できる分散処理基盤」ですが、状況によってはディスクへのアクセスがあります。 明示的にディスクに永続化した場合 (persist()) チェックポイントを取った場合(checkpoint()) シャッフル時(暗黙的) 3がわかりにくいので、簡単にまとめてみます。 明示的に永続化する Spark Programming Guideから抜粋しますが、例えば以下のようなコードを書くと、明示的にディスク(またはコードを変更すればメモリに)にRDDを永続化できます。永続化しておくことで、処理をもう一度実行する際、先頭からRDDのリネージを辿る必要がなくなるため、繰り返し処理などに効率的です。 当然ですが、ディスクに永続化するよりもメモリに永続化する方が高速ですが、その分多くのメモリを必要とします。キャッシュされた古い情報はLRUで捨てられます。ま
6日目です。 昨日のブログでHDFSの拡張属性を紹介しましたが、当初の予定はACLがメインででした。ところがCloudera Quickstart VM 5.2の思わぬ罠にハマってしまい、トラブルシュートに延々と時間を費やしたあげくに、結局はつまらないミスだったという、、、皆さんもご注意くださいね。(顛末に興味があればこちら) さて、Hadoop 2.5.0ではHDFSに拡張属性が追加され、ファイルやディレクトリに拡張属性が設定できるようになりました(HDFS-2006)。実はその前に、Hadoop 2.4.0から、HDFS上のファイルやディレクトリへのアクセス制御ができるようになっています。(HDFS-4685)。 アクセス制御リストと拡張属性 アクセス制御リストはユーザーが指定するもので、所有者、グループ、その他のユーザーに対し、パーミッションよりも柔軟なアクセス制御を行うことができま
3日目です。 HBaseのバイブルとなっている、オライリーから出版されている書籍、HBase。(通称馬本)。個人的には象本よりも愛用している(せざるを得ない)素晴らしい本ですが、出版されてから2年が過ぎ、現在のバージョンとは違っているところも増えてきました。 馬本2版発売決定? 幸いな事に、現在第2版が執筆中のようで、O’Reillyのサイトによると来年5月ぐらいに発売される予定とのこと。(ちなみに、Hadoop 4版(象本)も来年の春とのことで、こちらは既に先行発売されています。Apache Sparkのチャプターも追加されていました)。日本語版が楽しみですね。 しかし悠然と待ってはいられないので、HBase 0.98.1 を用いてHBaseのルートディレクトリ以下の情報をまとめてみました。(馬本のP.343付近に記載されているものと同じです)。出版されるまでの短い期間は役立つかもしれま
Spark, SQL on Hadoop etc. Advent Calendar 2014 1日目、およびHadoop関連(全部俺) Advent Calendar 2014の1日目です。 初日なので、昨年ブログに続いて2014年のHadoop関連の話題をまとめます。 ※このブログの内容は所属している組織には関係なく、個人的な雑感です。間違いがあればご指摘下さい。 ※なお、中立的に書いているつもりですが、多少偏りがあるかもしれません。が、特に悪意はありません :p 俺的Hadoopの話題2014: ベスト3 Apache Sparkの盛り上がりが加速 SQL on Hadoop は混沌 Hadoopは堅調に進化。徐々に消えていく!? (次点: Hueも大幅に進化してますが、これはいずれ紹介します) 1. Apache Sparkの盛り上がりが加速 今年になってますます盛り上がっているAp
最近、米O’ReillyからHadoop関連書籍の出版予定が目白押しです。リリース予定がわかりにくいので、表にまとめてみました。 ※2015/1/8補足: 最新情報は別ページにまとめました Hadoopをエンタープライズで利用したい方は必読ですね。(ちょっとリリースラッシュで積ん読になりそうなところが怖いです) もちろん、日本語に翻訳されるのも楽しみです 🙂 NoTitleRelease date和書名出版日雑感
備忘録がわりのメモ: VLDBに「SQL-on-Hadoop: Full Circle Back to Shared-Nothing Database Architectures」というIBMの研究社による論文が公開されていました。 http://www.vldb.org/pvldb/vol7/p1295-floratou.pdf ParquetとImpala、RCFileとHive、ORCとHive+TezなどをTPC-DSを使ったベンチマークの比較と考察があり、かなり興味深いです。最新バージョンでの比較ではないですが、かなりいろんな角度から比較をしているようなので、この夏に時間をかけてゆっくり読みたいところ。 #HDFS cachingの恩恵などもあるので、Imapala1.4はもっと速い(はず)
**この記事の内容は若干古くなっています。まとめページもご覧下さい** 無事に起動したCloudera Quickstart VMを使用して、CDH5でいくつかのサービスを試していきましょう。本日はHiveのクエリです。 YARN+MapReduce v2 今まで使用していた仮想マシンイメージは、CDH4がベースとなっていました。今回セットアップした仮想マシンはCDH5ベースになっており、MapReduce分散処理の実行基盤として、デフォルトでYARNが使われるようになっています(従来のMapReduce、MapReduce v1を利用することもできます)。YARNはYet Another Resource Negotiatorの略で、クラスタ全体のリソースを効率よく制御することができ、従来の分散処理で不足していた機能に対応しています。例えば 、MapReduce以外の分散処理基盤として、
本日Clouderaのブログで、「How-to: Run a Simple Apache Spark App in CDH 5」という記事が公開されました。一言で言えば、Apache SparkでWordCountを実行するというものです。 英語の記事でもそれほどハマるところはないと思いますが、手元にCDH5の環境があるので試してみました。 Sparkサービスを追加 Sparkは設定していなかったので、Cloudera Manager 5を使ってSparkサービスを追加します。(Cloudera Managerに慣れると、手作業での設定に戻れなくなる、、、) まずは「サービスを追加」を選びます。続いてSparkを選択します。 依存関係でZookeeperがインストールされます。 この画面はわかりにくいですが、Masterをhadoop12号機、Workerを11,13,14,15号機に指定
**この記事の内容は若干古くなっています。まとめページもご覧下さい** 本日、CDH5 / Cloudera Manager 5に対応した仮想マシンイメージが公開されました。 今まで「Hadoopを10分で試す」シリーズとしてバージョンアップを繰り返してきましたが、ようやく最初から最新バージョン(CDH5)を試せるようになりました。 とはいえ、先日、クラウド上でHadoopを使ってみることができる demo.gethue.com というサイトが公開されています。 ライブデモサイト このサイトは、Hadoopのエコシステムの一つであるHueを使用して、ブラウザからHadoopを操作することができるサイトです。ImpalaやHive、Searchなどがブラウザから利用できるので、ちょっと触ってみたい/使ってみたいだけなら便利そうです。もう少しチュートリアルが充実すると良いのですが、ダミーデータ
現在、Hadoop 2.x系では HDFSのスナップショット機能が含まれています [1]。CDH5からこの機能がサポートされました。 HDFSスナップショットとは? HDFSでのスナップショットとは、HDFSサービスを停止せず、特定の時点での「状態」を保持するための機能です。従来のHDFSには、 削除したファイルの復旧ができない(HDFSにゴミ箱機能はありますが、、) ある時点でのリカバリができない 定期的なスナップショットを取る仕組みがない という課題がありました。 たとえば、ある時点でHDFSの一貫性があるバックアップを取りたい場合、厳密に一貫性を確保するためにはネームノードを一旦セーフモードにするなどの操作の必要がありました。が、この際にダウンタイムが生じてしまいます。HDFSスナップショットにより、HDFSを停止せずに、特定の時点でのバックアップを取得することが可能になります。 H
Hadoop 2.3.0 以降には「HDFSキャッシング」と呼ばれる、HDFSにキャッシュ機構が搭載されています。(参考: HDFSが高速に?キャッシュメカニズムの追加) さっそく手元のCDH5の環境で試してみました。Centraized Cache Management in HDFS 概要 ※ここから上記のドキュメントを概要を抜粋してみます(間違いを発見した方はご指摘下さい) HDFSの中央キャッシュ管理は、ユーザが明示的に指定したパスを、HDFSによって明示的にキャッシュする仕組みです。ネームノードはブロックをディスクに持つデータノードと通信して、そのブロックを「オフピーク (off-heap)」キャッシュにキャッシュします。 オフピークキャッシュは各データノードにある、JVMのVMヒープ対象外のメモリ領域です。ユーザーがコマンドからキャッシュに登録するパスを指定することにより、ブロ
手元のLXCの環境にCloudera Manager5の検証環境を作成しました。 バージョン5からの機能だと思いますが、ホスト一覧から「ディスクの概要」ボタンをクリックすると、簡単にディスクの情報を得ることができます。 Cloudera Manager 5の「ディスクの概要」 説明付き 説明なし グラフをクリックすればさらにドリルダウンも可能。 平均キュー長(ドリルダウン) 特に外部ツールをインストールすることなく、このような情報を取得できるのは便利ですね。
通常、アプリケーションはread()などのシステムコール経由でファイルを読み出します。 このHDFS-4953はmmap()システムコールを使用することで、読み取り時にかかるオーバーヘッドを減らそうというもののようです。 参考までに、通常アプリケーションがファイルを読み出す場合、以下のようなフローでカーネルからの読み込み処理が行われます。 アプリからの読み込み要求 v fread()など (stdlib) v read()システムコール(glibc) v (以下カーネル空間) v sys_read() v vfs_read() v …. 参考資料:ページキャッシュのメモ P.12 アプリケーションからの読み出し要求によりシステムコールが呼ばれるのは上記の通りですが、問題となるのは、 read()が頻繁に呼びだされる場合、コンテキストスイッチが多く発生してコストがかかる※コストの計測には s
ブログの総集編です。下記にあるリンクを参照してください。 Hadoopを使ってみたい! 新しく何かを始めようと思った時、面倒だなぁと思うことは多いものです。書籍やブログをみて「これは役立ちそうだ」と思っても、ちょっと試すことにさえにも辿り着けず、頓挫しているものがTODOリストやPocket(旧Readitlater)に大量にあります。 #書いていて嫌な気持ちになってきた、、、 Hadoopはそんな面倒なものの一つかもしれません。書籍を読んで「よし、やってみるか」という強い決意を持ったすぐ後、 「試すにはマシンを買わないといけないのかなぁ」 「いや、EC2でいけそう。アカウントどうしようか」 「なんか仮想マシンでもできそうって書いてある」 という第一の壁があります。 運良く壁を乗り越えたあと、 「ソフトはどこからダウンロードすればいいだっけ?」 「コマンドラインでやるの?」 「設定面倒そう
HDFSのハートビートなど a) ハートビート(デフォルト3秒: dfs.heartbeat.interval) 1) DataNodeからNameNodeに一定間隔で送付される。以下の情報が含まれる。(容量、使用量、残量、送信実行中の数、xceiver数(コネクション数)、failedVolumesなど。 2) NameNodeからの応答の中に、ローカルブロックの無効化依頼や、それらを他のDNにコピーする指示が含まれる b) ブロックレポート(デフォルト1時間毎:dfs.blockreport.intervalmsec) 1) ブロック情報。DNが全てのローカルに保存されているブロックについての情報をNNに通知 2) 応答で削除すべきブロックについての情報を返す c) ブロックスキャナーレポート(デフォルト3週間毎:fs.datanode.scan.
10日目です 以前もHDFSのパフォーマンス改善についてのブログ(キャッシングの導入とmmapを使ったゼロコピー)を書きましたが、本日たまたま見つけた(かつ、最新版には取り込まれていた)、ファイルベースでHDFSアドバイザリーキャッシュを設定できる機能(HDFS-4817)を紹介します。 Linuxにはfadvise(posix_fadvise)システムコールが実装されています(マニュアル)。fadviseは、ユーザー空間のプログラムから、カーネルに対してデータアクセスのヒントを行う仕組みを提供しています。また、readahead()システムコールは、ファイルの読み出し対象のデータよりも先の部分を読み込んでおき、データがページキャッシュに格納された状態にしておくことで、ディスクアクセスを減らしパフォーマンス向上につながります(マニュアル)※かなり大雑把な説明なので、正確なところはドキュメン
23日目です 先週の金曜日に、CDH4.3でAccumuloが利用できるというブログが公開されました。Apache AccumuloはApache HBaseと同様に、GoogleのBigTableの論文を参考にして開発されています。Accumuloは当初NSAが開発してOSS化されているもので、HBaseよりもセキュリティの面で優れている他に、Secondary Indexが利用できる点は興味深いです。 HBaseとAccumuloとの違いは、2年前のスライドやこのドキュメントが参考になるかもしれません(後者の細かいところは見ていませんが、)。今回手元のCloudera Demo VMに環境を構築しましたが、かなり難航しました。 Apache Accumulo Installation Guide ドキュメントはこちら(pdf)に公開されています。今回はまずCloudera Manage
Impalaのメタデータ ImpalaはHiveと共通のメタストアを使用しています。従来、メタデータが変更された場合には、Impalaで”invalidate metadata/refresh”コマンドを使用して変更を認識する必要がありました。Impala 1.2.Xから管理方法が変更となり、メタデータの変更を管理するサービス、Catalog Serviceが登場しています。 Catalog Serviceはメタデータの管理を行う中央型のサービスです。Catalog Serviceはメタデータの更新を処理し、クラスタの全てのImpaladノードに対してどのメタデータの変更が行われたのかをStateStore経由で送信します。 このサービスにより、Impalaによって行われたメタデータの変更は”invalidate metadata”コマンドを実行することなく、全てのノードで自動的に認識され
(本ブログは若干古くなっているので、Impala情報ページをご覧下さい。比較的新しい情報をまとめています) 一人アドベントカレンダー25日目、最終日です。 最終日はCloudera Impala(以下Impala)について。Impalaは分散クエリエンジンです。最近EMRでも利用できるようになりました。 Hiveとは何が違うのか、なぜHiveを高速化しなかったのかというような意見もあるようですが、その答えはClouderaの創業者でもあるMike Olsonが今週公開したブログ(Impala v Hive)に詳しく書かれています。かなり興味深い内容ですが、今のところ英語のみです。きっと日本語の記事もいずれ読めるようになるはず。。。 さて、最終日はCloudera Impalaのアーキテクチャについて書いてみます。引用している資料はSlideshareでClouderaが公開しているものです
24日目です Apache HBaseは、馬本(オライリーのHBase)が出版された頃に比べてさまざまな改善がされています。先日 HBaseのPMCでもあるJonathan HeishがHadoop World+Strata Conference 2013やCloudera World Tokyo 2013でも講演(pdf)していましたが、最新の ver 0.96 では、パフォーマンス、機能、信頼性、ユーザビリティの観点でも進化を遂げています。そのうちの一つはコンパクションの改善で、 @shiumachi 氏がHadoop Advent Calendar 2013でブログを公開しています。 今回はMTTR (Mean Time to Recovery:平均修復時間)の改善について、大雑把にまとめてみました。Jonathan の資料を参考にしているので、興味がある方は原文[1]をご覧下さい。
本日公開された HDFS-4949 のJIRAは、HDFSにインメモリキャッシュ機構を導入しようというものです。 Jiraに添付されているドキュメントより興味深い点を抜粋してみます:Centralized cache management 問題点1:複数ノードでのキャッシュの利用 HDFS上のデータの読み書きの際には、ディスクから読み出されたデータは、Linuxのカーネル内のページキャッシュ(原文ではBuffer cacheとなってます)にキャッシュされます。(これにより毎回ディスクアクセスを避けることが期待できます) しかし、ページキャッシュの情報はカーネルが持っており、ユーザーランドに公開されているわけではありません。つまり、上位のフレームワークの視点から見ると、タスクをどのノードに配置するかのために公開されているわけではないということです。(当たり前ですが、、) その結果、HDFSに
4日目です。 本日はHadoopアドベントカレンダー2013の立候補がいないようなので、あえて書く@choplinさんが今 (22:30)書いて下さっているとのこと。凄い!ありがとうございます! #決して無理強いはしてないはず、、、、、と信じたい(汗 本日のお題はHueとHiveについてです。 Hiveでテーブルを作成してデータをロードする場合には、1) CREATE TABLEを使用してテーブルを作成し、2) LOAD DATA INPATHなどを使ってデータをロードする、というような手順を踏みます。あるいは、既にデータがHDFS上にある場合、外部テーブルを利用することもできます。 テーブルを作成してデータをロードする例 CREATE TABLE a (a INT, b INT) ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t'; LOAD D
Hadoop 2.2.0で何が変わったのか? 興味のあるところを大雑把に。 HDFS ネームノードが高可用性に対応。単一障害点の解消 [*2] よりスケールアウトするため、フェデレーション構成が可能に [*2] HDFSスナップショット機能に対応 NFSv3に対応 キャッシング機能を搭載(予定) HDFSはマスターノードが単一障害点、エンタープライズじゃ使えない!と言われてきました(まだ言っている人も。。)が、ネームノードは高可用性に対応しています。象本3版、またはパカ本、徹底入門2版あたりにも書かれているので、ウェブで見かけたら記載日時をチェックしましょう。スライドシェアならこのあたりが参考になるかもしれません。少なくともCDH4に関しては、ネームノードとジョブトラッカーはともに高可用性に対応しており、多くの環境で高可用性で動作しているの実績があります。 Hadoop 2.2.0からはN
(2014/12/10追記)Hadoop入門になりそうなブログをまとめたページを作成しました。-> Hadoopを10分で試す Cloudera World 2013の資料が公開されました 先週開催されたCloudera World Tokyo 2013、資料が公開され始めました。 http://www.cloudera.co.jp/cwt2013-session.html まだ全てのスライドは揃っていませんが、順次公開されるとのこと。 「Hadoopを40分で理解する」のスライド(pdf)もダウンロードできるようになっています。 スライドシェアにも上げてあります。 #cwt2013
CDH(Cloudera’s Distribution including Apache Hadoop)にApache Sparkが仲間入り 本日Clouderaから公開されたプレスリリース(英語)によると、ClouderaとDataBricksがパートナー提携し、CDHにApache Sparkがサポートされるようになるとのことです。 (更新)日本語のプレスリリースが出ています。 Cloudera、新たなパートナープログラムCloudera Connect:Innovatorsを発表 〜ハイスピードデータアナリティクスのためDatabricks社とタイアップし、Sparkをサポート〜 Apache SparkはMapReduceを使用せずに分散処理を行う仕組みです。詳しい資料(Spark/Shark)が @oza_x86さんから公開されています。 この資料をご覧になれば、下記は読む必要あ
Apache Hadoop 2.2.0 GAがついに公開! Hadoop2.xといいながらも、今まで2.0.xはアルファ版、2.1.xがベータ版という不思議なリリースが続いていましたが、ついに2.2.0でGAとなりました。 http://hadoop.apache.org/releases.html#15+October%2C+2013%3A+Release+2.2.0+available 全く貢献できていませんが、公開おめでとうございます! このリリースによってYARNの利用が促進されるのか、あるいはWindowsユーザーが増えるのかどうかはわかりませんが、より安定してエンタープライズ環境で広範囲に利用されることを願っています。 HDFSの拡張:スナップショットとNFSv3対応 そういえばHDFSはスナップショットに対応し、さらに、ついにNFSv3でアクセスできるようになります。一部の方
HDFSのShort-Circuit Local Readについてのブログ記事を読んで 先週お盆休みに公開されたブログ、「How Improved Short-Circuit Local Reads Bring Better Performance and Security to Hadoop」には興味深い内容が書いてあります。これは必読では?と思ったので、少しまとめてみます。 元々の処理 クライアントがHDFSからデータを読み出す場合、データノードとのネットワーク通信が発生します。これはシンプルですが、カーネル内でTCPソケットを保持しておくなどのオーバヘッドがかかります。(ブログ中の最初の図) Short-Circuit Local Reads with HDFS-2246 このチケットでの改善は、クライアントとデータノードが同一マシンの場合、直接ローカルファイルシステムからデータを読
**この記事の内容は若干古くなっています。まとめページもご覧下さい** Hadoopを使ってみたい! 新しく何かを始めようと思った時、面倒だなぁと思うことは多いものです。書籍やブログをみて「これは役立ちそうだ」と思っても、ちょっと試すことにさえにも辿り着けず、頓挫しているものがTODOリストやPocket(旧Readitlater)に大量にあります。 #書いていて嫌な気持ちになってきた、、、 Hadoopはそんな面倒なものの一つかもしれません。書籍を読んで「よし、やってみるか」という強い決意を持ったすぐ後、 「試すにはマシンを買わないといけないのかなぁ」 「いや、EC2でいけそう。アカウントどうしようか」 「なんか仮想マシンでもできそうって書いてある」 という第一の壁があります。 運良く壁を乗り越えたあと、 「ソフトはどこからダウンロードすればいいだっけ?」 「コマンドラインでやるの?」
次のページ
このページを最初にブックマークしてみませんか?
『linux.wwing.net』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く