狠狠撸

狠狠撸Share a Scribd company logo
Clojure+Leiningen で 3 分 Hadoop Shibuya.lisp TT#5 March 10, 2010  @making ( http://ik.am ) BlogSystem Written By CommonLisp  「 CategoL 」 ( http://github.com/making/categol )
Clojure をインストールした後、 こんな風に思ったことないですか? REPL 起動の仕方が人によって違わない? .clj ファイルをロードしたいけど Could not locate っていわれる クラスパス追加しないといけないの? jar をどこに置けばいいのか分からない 面倒くさい。。。
Leiningen  (pronounced “LINE-ing-en”) Clojure のビルドツール http://github.com/technomancy/leiningen デファクトスタンダードになりつつある jar(java アーカイブ ) の依存関係解決 maven2 レポジトリから取得する クラスパス設定済み REPL ?コンパイル環境を提供 Clojure 未インストールの状態からも使える ( 必要なものは Java のみ ) 超手軽に Clojure 開発環境構築& Java ライブラリ取得?使用が可能
例題として Hadoop Leinigen の手軽さを活かし、 Hadoop 本のサンプルプログラム ( 例 2.6: 気象情報データセットから最大温度を取得 ) を実行する Clojure 、 Hadoop がインストールされていない想定 要 java/git/ ネット環境
デモ ( 動画 ) leiningen の使い方 ( コマンド一覧 ) は後ろのスライドに記載 実行するプログラム :  http://bit.ly/9XieeT 軽く解説記事 :  http://bit.ly/bodVU1
以下、补足资料
Leiningen の基本的な使い方 http://github.com/technomancy/leiningen/raw/stable/bin/lein をダウンロードしてパスを通す lein self-install leiningen インストール直後に一回だけ行う (windows 版は大変! ) lein new [project name] プロジェクト作成。 project.clj( プロジェクト設定マクロ ) 、スケルトンファイル生成 lein deps project.clj に記述した依存ライブラリ取得 (clojure 本体 /contrib もここで取得可能 ) lein repl project.clj に記述した依存ライブラリをクラスパスに入れた状態で REPL 起動 lein test テストコード実行 lein compile clj ファイルを class ファイル (java バイトコード ) にコンパイル lein jar プロジェクトで生成した class ファイルをまとめて java アーカイブ (jar) を作成 lein uberjar 依存ライブラリを含めた jar を作成 lein swank swank server を立ち上げる。別途プラグインが必要 その他  http://bit.ly/96A9ia   参考
マクロで Mapper/Reducer 定義 Mapper/Reduce クラス定義のような定型的な箇所はマクロでテンプレート化。 http://github.com/making/cloudure で改良中 (defmapreduce hello :mapper ([key value context] (.write context (Text. key) (IntWritable. (Integet/parseInt value)))) :reducer ([key values context] (.write context key (IntWritable. (reduce + (map #(.get %) values))))))
簡単並行処理 map の代わりに pmap を使うと並行処理になる(ただし低コストな処理の場合はかえってスレッド生成のオーバヘッドのほうが大きい) pmap/reduce!( 違 ) 実際 map 関数を使うのは reducer 内だと思うので、、、
マルチメソッドを使う int -> IntWritable とか double -> DoubleWritable とか String -> Text に変換して Context に設定するのが面倒くさい->マルチメソッドでディスパッチ! Mapper/Reducer の返り値が [key value] な vector である場合にそれぞれディスパッチするようなマクロにする パフォーマンスはいまいちかも?

More Related Content

Similar to 颁濒辞箩耻谤别+尝别颈苍颈苍驳别苍で3分贬补诲辞辞辫 (20)

Filesystem via MySQL
Filesystem via MySQLFilesystem via MySQL
Filesystem via MySQL
Tomoya Kabe
?
Tour of distributed systems 1 - ZooKeeper
Tour of distributed systems 1 - ZooKeeperTour of distributed systems 1 - ZooKeeper
Tour of distributed systems 1 - ZooKeeper
Chris Birchall
?
20151114 drupal温泉合宿 成果
20151114 drupal温泉合宿 成果20151114 drupal温泉合宿 成果
20151114 drupal温泉合宿 成果
Kunihiro Imura
?
YOLO V3で独自データセットを学習させて物体検出 / Yolo V3 with your own dataset
YOLO V3で独自データセットを学習させて物体検出 / Yolo V3 with your own datasetYOLO V3で独自データセットを学習させて物体検出 / Yolo V3 with your own dataset
YOLO V3で独自データセットを学習させて物体検出 / Yolo V3 with your own dataset
moto2g
?
顿辞肠迟谤颈苍别ではじめる蝉测尘蹿辞苍测1.2开発
顿辞肠迟谤颈苍别ではじめる蝉测尘蹿辞苍测1.2开発顿辞肠迟谤颈苍别ではじめる蝉测尘蹿辞苍测1.2开発
顿辞肠迟谤颈苍别ではじめる蝉测尘蹿辞苍测1.2开発
Katsuhiro Ogawa
?
尝颈苍耻虫のユーザーランドを颈苍颈迟から全てまるごと驳辞濒补苍驳で书く
尝颈苍耻虫のユーザーランドを颈苍颈迟から全てまるごと驳辞濒补苍驳で书く尝颈苍耻虫のユーザーランドを颈苍颈迟から全てまるごと驳辞濒补苍驳で书く
尝颈苍耻虫のユーザーランドを颈苍颈迟から全てまるごと驳辞濒补苍驳で书く
Tetsuyuki Kobayashi
?
「はじめてのClojure」出版記念!Light Tableを使ってClojureに触れてみよう!
「はじめてのClojure」出版記念!Light Tableを使ってClojureに触れてみよう!「はじめてのClojure」出版記念!Light Tableを使ってClojureに触れてみよう!
「はじめてのClojure」出版記念!Light Tableを使ってClojureに触れてみよう!
schoowebcampus
?
20090124shibuya Trac
20090124shibuya Trac20090124shibuya Trac
20090124shibuya Trac
Kazuya Hirobe
?
颁濒辞箩耻谤别の発表など
颁濒辞箩耻谤别の発表など颁濒辞箩耻谤别の発表など
颁濒辞箩耻谤别の発表など
Kikuta Go
?
Javaのログ出力: 道具と考え方
Javaのログ出力: 道具と考え方Javaのログ出力: 道具と考え方
Javaのログ出力: 道具と考え方
Taku Miyakawa
?
Laravel heroku-push
Laravel heroku-pushLaravel heroku-push
Laravel heroku-push
Kazuya Gonjo
?
谁て?も出来る辞蝉虫て?のローカルなウェフ?开発环境构筑
谁て?も出来る辞蝉虫て?のローカルなウェフ?开発环境构筑谁て?も出来る辞蝉虫て?のローカルなウェフ?开発环境构筑
谁て?も出来る辞蝉虫て?のローカルなウェフ?开発环境构筑
Hiroshi Yamato
?
CakePHP - The point of upgrade
CakePHP - The point of upgradeCakePHP - The point of upgrade
CakePHP - The point of upgrade
Yasuo Harada
?
Spring Boot の Web アフ?リケーションを Docker に載せて AWS ECS て?動かしている話
Spring Boot の Web アフ?リケーションを Docker に載せて AWS ECS て?動かしている話Spring Boot の Web アフ?リケーションを Docker に載せて AWS ECS て?動かしている話
Spring Boot の Web アフ?リケーションを Docker に載せて AWS ECS て?動かしている話
JustSystems Corporation
?
明日から使えるgradle
明日から使えるgradle明日から使えるgradle
明日から使えるgradle
kimukou_26 Kimukou
?
蝉测尘蹿辞苍测で汎用设定値を読み书きするモデル等をプラグインにした话
蝉测尘蹿辞苍测で汎用设定値を読み书きするモデル等をプラグインにした话蝉测尘蹿辞苍测で汎用设定値を読み书きするモデル等をプラグインにした话
蝉测尘蹿辞苍测で汎用设定値を読み书きするモデル等をプラグインにした话
Hidenori Goto
?
Clojure座談会 #1 LT 独自コレクションを定義しよう
Clojure座談会 #1 LT 独自コレクションを定義しようClojure座談会 #1 LT 独自コレクションを定義しよう
Clojure座談会 #1 LT 独自コレクションを定義しよう
Keisuke Fukuda
?
Jenkins study jenkins build-cicdi
Jenkins study jenkins build-cicdiJenkins study jenkins build-cicdi
Jenkins study jenkins build-cicdi
昌桓 李
?
Scala Daysに行ってみて
Scala Daysに行ってみてScala Daysに行ってみて
Scala Daysに行ってみて
Kota Mizushima
?
Glusterfsを用いた静的コンテンツ配信サーバ冗長化 20130723
Glusterfsを用いた静的コンテンツ配信サーバ冗長化 20130723Glusterfsを用いた静的コンテンツ配信サーバ冗長化 20130723
Glusterfsを用いた静的コンテンツ配信サーバ冗長化 20130723
Takaki Kawamura
?
Filesystem via MySQL
Filesystem via MySQLFilesystem via MySQL
Filesystem via MySQL
Tomoya Kabe
?
Tour of distributed systems 1 - ZooKeeper
Tour of distributed systems 1 - ZooKeeperTour of distributed systems 1 - ZooKeeper
Tour of distributed systems 1 - ZooKeeper
Chris Birchall
?
20151114 drupal温泉合宿 成果
20151114 drupal温泉合宿 成果20151114 drupal温泉合宿 成果
20151114 drupal温泉合宿 成果
Kunihiro Imura
?
YOLO V3で独自データセットを学習させて物体検出 / Yolo V3 with your own dataset
YOLO V3で独自データセットを学習させて物体検出 / Yolo V3 with your own datasetYOLO V3で独自データセットを学習させて物体検出 / Yolo V3 with your own dataset
YOLO V3で独自データセットを学習させて物体検出 / Yolo V3 with your own dataset
moto2g
?
顿辞肠迟谤颈苍别ではじめる蝉测尘蹿辞苍测1.2开発
顿辞肠迟谤颈苍别ではじめる蝉测尘蹿辞苍测1.2开発顿辞肠迟谤颈苍别ではじめる蝉测尘蹿辞苍测1.2开発
顿辞肠迟谤颈苍别ではじめる蝉测尘蹿辞苍测1.2开発
Katsuhiro Ogawa
?
尝颈苍耻虫のユーザーランドを颈苍颈迟から全てまるごと驳辞濒补苍驳で书く
尝颈苍耻虫のユーザーランドを颈苍颈迟から全てまるごと驳辞濒补苍驳で书く尝颈苍耻虫のユーザーランドを颈苍颈迟から全てまるごと驳辞濒补苍驳で书く
尝颈苍耻虫のユーザーランドを颈苍颈迟から全てまるごと驳辞濒补苍驳で书く
Tetsuyuki Kobayashi
?
「はじめてのClojure」出版記念!Light Tableを使ってClojureに触れてみよう!
「はじめてのClojure」出版記念!Light Tableを使ってClojureに触れてみよう!「はじめてのClojure」出版記念!Light Tableを使ってClojureに触れてみよう!
「はじめてのClojure」出版記念!Light Tableを使ってClojureに触れてみよう!
schoowebcampus
?
颁濒辞箩耻谤别の発表など
颁濒辞箩耻谤别の発表など颁濒辞箩耻谤别の発表など
颁濒辞箩耻谤别の発表など
Kikuta Go
?
Javaのログ出力: 道具と考え方
Javaのログ出力: 道具と考え方Javaのログ出力: 道具と考え方
Javaのログ出力: 道具と考え方
Taku Miyakawa
?
谁て?も出来る辞蝉虫て?のローカルなウェフ?开発环境构筑
谁て?も出来る辞蝉虫て?のローカルなウェフ?开発环境构筑谁て?も出来る辞蝉虫て?のローカルなウェフ?开発环境构筑
谁て?も出来る辞蝉虫て?のローカルなウェフ?开発环境构筑
Hiroshi Yamato
?
CakePHP - The point of upgrade
CakePHP - The point of upgradeCakePHP - The point of upgrade
CakePHP - The point of upgrade
Yasuo Harada
?
Spring Boot の Web アフ?リケーションを Docker に載せて AWS ECS て?動かしている話
Spring Boot の Web アフ?リケーションを Docker に載せて AWS ECS て?動かしている話Spring Boot の Web アフ?リケーションを Docker に載せて AWS ECS て?動かしている話
Spring Boot の Web アフ?リケーションを Docker に載せて AWS ECS て?動かしている話
JustSystems Corporation
?
明日から使えるgradle
明日から使えるgradle明日から使えるgradle
明日から使えるgradle
kimukou_26 Kimukou
?
蝉测尘蹿辞苍测で汎用设定値を読み书きするモデル等をプラグインにした话
蝉测尘蹿辞苍测で汎用设定値を読み书きするモデル等をプラグインにした话蝉测尘蹿辞苍测で汎用设定値を読み书きするモデル等をプラグインにした话
蝉测尘蹿辞苍测で汎用设定値を読み书きするモデル等をプラグインにした话
Hidenori Goto
?
Clojure座談会 #1 LT 独自コレクションを定義しよう
Clojure座談会 #1 LT 独自コレクションを定義しようClojure座談会 #1 LT 独自コレクションを定義しよう
Clojure座談会 #1 LT 独自コレクションを定義しよう
Keisuke Fukuda
?
Jenkins study jenkins build-cicdi
Jenkins study jenkins build-cicdiJenkins study jenkins build-cicdi
Jenkins study jenkins build-cicdi
昌桓 李
?
Scala Daysに行ってみて
Scala Daysに行ってみてScala Daysに行ってみて
Scala Daysに行ってみて
Kota Mizushima
?
Glusterfsを用いた静的コンテンツ配信サーバ冗長化 20130723
Glusterfsを用いた静的コンテンツ配信サーバ冗長化 20130723Glusterfsを用いた静的コンテンツ配信サーバ冗長化 20130723
Glusterfsを用いた静的コンテンツ配信サーバ冗長化 20130723
Takaki Kawamura
?

More from Toshiaki Maki (20)

From Spring Boot 2.2 to Spring Boot 2.3 #jsug
From Spring Boot 2.2 to Spring Boot 2.3 #jsugFrom Spring Boot 2.2 to Spring Boot 2.3 #jsug
From Spring Boot 2.2 to Spring Boot 2.3 #jsug
Toshiaki Maki
?
Concourse x Spinnaker #concourse_tokyo
Concourse x Spinnaker #concourse_tokyoConcourse x Spinnaker #concourse_tokyo
Concourse x Spinnaker #concourse_tokyo
Toshiaki Maki
?
Serverless with Spring Cloud Function, Knative and riff #SpringOneTour #s1t
Serverless with Spring Cloud Function, Knative and riff #SpringOneTour #s1tServerless with Spring Cloud Function, Knative and riff #SpringOneTour #s1t
Serverless with Spring Cloud Function, Knative and riff #SpringOneTour #s1t
Toshiaki Maki
?
決済システムの内製化への旅 - SpringとPCFで作るクラウドネイティブなシステム開発 #jsug #sf_h1
決済システムの内製化への旅 - SpringとPCFで作るクラウドネイティブなシステム開発 #jsug #sf_h1決済システムの内製化への旅 - SpringとPCFで作るクラウドネイティブなシステム開発 #jsug #sf_h1
決済システムの内製化への旅 - SpringとPCFで作るクラウドネイティブなシステム開発 #jsug #sf_h1
Toshiaki Maki
?
Spring Boot Actuator 2.0 & Micrometer #jjug_ccc #ccc_a1
Spring Boot Actuator 2.0 & Micrometer #jjug_ccc #ccc_a1Spring Boot Actuator 2.0 & Micrometer #jjug_ccc #ccc_a1
Spring Boot Actuator 2.0 & Micrometer #jjug_ccc #ccc_a1
Toshiaki Maki
?
Spring Boot Actuator 2.0 & Micrometer
Spring Boot Actuator 2.0 & MicrometerSpring Boot Actuator 2.0 & Micrometer
Spring Boot Actuator 2.0 & Micrometer
Toshiaki Maki
?
Open Service Broker APIとKubernetes Service Catalog #k8sjp
Open Service Broker APIとKubernetes Service Catalog #k8sjpOpen Service Broker APIとKubernetes Service Catalog #k8sjp
Open Service Broker APIとKubernetes Service Catalog #k8sjp
Toshiaki Maki
?
Spring Cloud Function & Project riff #jsug
Spring Cloud Function & Project riff #jsugSpring Cloud Function & Project riff #jsug
Spring Cloud Function & Project riff #jsug
Toshiaki Maki
?
Introduction to Spring WebFlux #jsug #sf_a1
Introduction to Spring WebFlux #jsug #sf_a1Introduction to Spring WebFlux #jsug #sf_a1
Introduction to Spring WebFlux #jsug #sf_a1
Toshiaki Maki
?
BOSH / CF Deployment in modern ways #cf_tokyo
BOSH / CF Deployment in modern ways #cf_tokyoBOSH / CF Deployment in modern ways #cf_tokyo
BOSH / CF Deployment in modern ways #cf_tokyo
Toshiaki Maki
?
Why PCF is the best platform for Spring Boot
Why PCF is the best platform for Spring BootWhy PCF is the best platform for Spring Boot
Why PCF is the best platform for Spring Boot
Toshiaki Maki
?
Zipkin Components #zipkin_jp
Zipkin Components #zipkin_jpZipkin Components #zipkin_jp
Zipkin Components #zipkin_jp
Toshiaki Maki
?
マイクロサービスに必要な技術要素はすべてSpring Cloudにある #DO07
マイクロサービスに必要な技術要素はすべてSpring Cloudにある #DO07マイクロサービスに必要な技術要素はすべてSpring Cloudにある #DO07
マイクロサービスに必要な技術要素はすべてSpring Cloudにある #DO07
Toshiaki Maki
?
Spring Framework 5.0による Reactive Web Application #JavaDayTokyo
Spring Framework 5.0による Reactive Web Application #JavaDayTokyoSpring Framework 5.0による Reactive Web Application #JavaDayTokyo
Spring Framework 5.0による Reactive Web Application #JavaDayTokyo
Toshiaki Maki
?
実例で学ぶ、明日から使えるSpring Boot Tips #jsug
実例で学ぶ、明日から使えるSpring Boot Tips #jsug実例で学ぶ、明日から使えるSpring Boot Tips #jsug
実例で学ぶ、明日から使えるSpring Boot Tips #jsug
Toshiaki Maki
?
Spring ?? Kotlin #jjug
Spring ?? Kotlin #jjugSpring ?? Kotlin #jjug
Spring ?? Kotlin #jjug
Toshiaki Maki
?
Event Driven Microservices with Spring Cloud Stream #jjug_ccc #ccc_ab3
Event Driven Microservices with Spring Cloud Stream #jjug_ccc #ccc_ab3Event Driven Microservices with Spring Cloud Stream #jjug_ccc #ccc_ab3
Event Driven Microservices with Spring Cloud Stream #jjug_ccc #ccc_ab3
Toshiaki Maki
?
Managing your Docker image continuously with Concourse CI
Managing your Docker image continuously with Concourse CIManaging your Docker image continuously with Concourse CI
Managing your Docker image continuously with Concourse CI
Toshiaki Maki
?
Data Microservices with Spring Cloud Stream, Task, and Data Flow #jsug #spri...
Data Microservices with Spring Cloud Stream, Task,  and Data Flow #jsug #spri...Data Microservices with Spring Cloud Stream, Task,  and Data Flow #jsug #spri...
Data Microservices with Spring Cloud Stream, Task, and Data Flow #jsug #spri...
Toshiaki Maki
?
Short Lived Tasks in Cloud Foundry #cfdtokyo
Short Lived Tasks in Cloud Foundry #cfdtokyoShort Lived Tasks in Cloud Foundry #cfdtokyo
Short Lived Tasks in Cloud Foundry #cfdtokyo
Toshiaki Maki
?
From Spring Boot 2.2 to Spring Boot 2.3 #jsug
From Spring Boot 2.2 to Spring Boot 2.3 #jsugFrom Spring Boot 2.2 to Spring Boot 2.3 #jsug
From Spring Boot 2.2 to Spring Boot 2.3 #jsug
Toshiaki Maki
?
Concourse x Spinnaker #concourse_tokyo
Concourse x Spinnaker #concourse_tokyoConcourse x Spinnaker #concourse_tokyo
Concourse x Spinnaker #concourse_tokyo
Toshiaki Maki
?
Serverless with Spring Cloud Function, Knative and riff #SpringOneTour #s1t
Serverless with Spring Cloud Function, Knative and riff #SpringOneTour #s1tServerless with Spring Cloud Function, Knative and riff #SpringOneTour #s1t
Serverless with Spring Cloud Function, Knative and riff #SpringOneTour #s1t
Toshiaki Maki
?
決済システムの内製化への旅 - SpringとPCFで作るクラウドネイティブなシステム開発 #jsug #sf_h1
決済システムの内製化への旅 - SpringとPCFで作るクラウドネイティブなシステム開発 #jsug #sf_h1決済システムの内製化への旅 - SpringとPCFで作るクラウドネイティブなシステム開発 #jsug #sf_h1
決済システムの内製化への旅 - SpringとPCFで作るクラウドネイティブなシステム開発 #jsug #sf_h1
Toshiaki Maki
?
Spring Boot Actuator 2.0 & Micrometer #jjug_ccc #ccc_a1
Spring Boot Actuator 2.0 & Micrometer #jjug_ccc #ccc_a1Spring Boot Actuator 2.0 & Micrometer #jjug_ccc #ccc_a1
Spring Boot Actuator 2.0 & Micrometer #jjug_ccc #ccc_a1
Toshiaki Maki
?
Spring Boot Actuator 2.0 & Micrometer
Spring Boot Actuator 2.0 & MicrometerSpring Boot Actuator 2.0 & Micrometer
Spring Boot Actuator 2.0 & Micrometer
Toshiaki Maki
?
Open Service Broker APIとKubernetes Service Catalog #k8sjp
Open Service Broker APIとKubernetes Service Catalog #k8sjpOpen Service Broker APIとKubernetes Service Catalog #k8sjp
Open Service Broker APIとKubernetes Service Catalog #k8sjp
Toshiaki Maki
?
Spring Cloud Function & Project riff #jsug
Spring Cloud Function & Project riff #jsugSpring Cloud Function & Project riff #jsug
Spring Cloud Function & Project riff #jsug
Toshiaki Maki
?
Introduction to Spring WebFlux #jsug #sf_a1
Introduction to Spring WebFlux #jsug #sf_a1Introduction to Spring WebFlux #jsug #sf_a1
Introduction to Spring WebFlux #jsug #sf_a1
Toshiaki Maki
?
BOSH / CF Deployment in modern ways #cf_tokyo
BOSH / CF Deployment in modern ways #cf_tokyoBOSH / CF Deployment in modern ways #cf_tokyo
BOSH / CF Deployment in modern ways #cf_tokyo
Toshiaki Maki
?
Why PCF is the best platform for Spring Boot
Why PCF is the best platform for Spring BootWhy PCF is the best platform for Spring Boot
Why PCF is the best platform for Spring Boot
Toshiaki Maki
?
Zipkin Components #zipkin_jp
Zipkin Components #zipkin_jpZipkin Components #zipkin_jp
Zipkin Components #zipkin_jp
Toshiaki Maki
?
マイクロサービスに必要な技術要素はすべてSpring Cloudにある #DO07
マイクロサービスに必要な技術要素はすべてSpring Cloudにある #DO07マイクロサービスに必要な技術要素はすべてSpring Cloudにある #DO07
マイクロサービスに必要な技術要素はすべてSpring Cloudにある #DO07
Toshiaki Maki
?
Spring Framework 5.0による Reactive Web Application #JavaDayTokyo
Spring Framework 5.0による Reactive Web Application #JavaDayTokyoSpring Framework 5.0による Reactive Web Application #JavaDayTokyo
Spring Framework 5.0による Reactive Web Application #JavaDayTokyo
Toshiaki Maki
?
実例で学ぶ、明日から使えるSpring Boot Tips #jsug
実例で学ぶ、明日から使えるSpring Boot Tips #jsug実例で学ぶ、明日から使えるSpring Boot Tips #jsug
実例で学ぶ、明日から使えるSpring Boot Tips #jsug
Toshiaki Maki
?
Event Driven Microservices with Spring Cloud Stream #jjug_ccc #ccc_ab3
Event Driven Microservices with Spring Cloud Stream #jjug_ccc #ccc_ab3Event Driven Microservices with Spring Cloud Stream #jjug_ccc #ccc_ab3
Event Driven Microservices with Spring Cloud Stream #jjug_ccc #ccc_ab3
Toshiaki Maki
?
Managing your Docker image continuously with Concourse CI
Managing your Docker image continuously with Concourse CIManaging your Docker image continuously with Concourse CI
Managing your Docker image continuously with Concourse CI
Toshiaki Maki
?
Data Microservices with Spring Cloud Stream, Task, and Data Flow #jsug #spri...
Data Microservices with Spring Cloud Stream, Task,  and Data Flow #jsug #spri...Data Microservices with Spring Cloud Stream, Task,  and Data Flow #jsug #spri...
Data Microservices with Spring Cloud Stream, Task, and Data Flow #jsug #spri...
Toshiaki Maki
?
Short Lived Tasks in Cloud Foundry #cfdtokyo
Short Lived Tasks in Cloud Foundry #cfdtokyoShort Lived Tasks in Cloud Foundry #cfdtokyo
Short Lived Tasks in Cloud Foundry #cfdtokyo
Toshiaki Maki
?

颁濒辞箩耻谤别+尝别颈苍颈苍驳别苍で3分贬补诲辞辞辫

  • 1. Clojure+Leiningen で 3 分 Hadoop Shibuya.lisp TT#5 March 10, 2010 @making ( http://ik.am ) BlogSystem Written By CommonLisp 「 CategoL 」 ( http://github.com/making/categol )
  • 2. Clojure をインストールした後、 こんな風に思ったことないですか? REPL 起動の仕方が人によって違わない? .clj ファイルをロードしたいけど Could not locate っていわれる クラスパス追加しないといけないの? jar をどこに置けばいいのか分からない 面倒くさい。。。
  • 3. Leiningen (pronounced “LINE-ing-en”) Clojure のビルドツール http://github.com/technomancy/leiningen デファクトスタンダードになりつつある jar(java アーカイブ ) の依存関係解決 maven2 レポジトリから取得する クラスパス設定済み REPL ?コンパイル環境を提供 Clojure 未インストールの状態からも使える ( 必要なものは Java のみ ) 超手軽に Clojure 開発環境構築& Java ライブラリ取得?使用が可能
  • 4. 例題として Hadoop Leinigen の手軽さを活かし、 Hadoop 本のサンプルプログラム ( 例 2.6: 気象情報データセットから最大温度を取得 ) を実行する Clojure 、 Hadoop がインストールされていない想定 要 java/git/ ネット環境
  • 5. デモ ( 動画 ) leiningen の使い方 ( コマンド一覧 ) は後ろのスライドに記載 実行するプログラム : http://bit.ly/9XieeT 軽く解説記事 : http://bit.ly/bodVU1
  • 7. Leiningen の基本的な使い方 http://github.com/technomancy/leiningen/raw/stable/bin/lein をダウンロードしてパスを通す lein self-install leiningen インストール直後に一回だけ行う (windows 版は大変! ) lein new [project name] プロジェクト作成。 project.clj( プロジェクト設定マクロ ) 、スケルトンファイル生成 lein deps project.clj に記述した依存ライブラリ取得 (clojure 本体 /contrib もここで取得可能 ) lein repl project.clj に記述した依存ライブラリをクラスパスに入れた状態で REPL 起動 lein test テストコード実行 lein compile clj ファイルを class ファイル (java バイトコード ) にコンパイル lein jar プロジェクトで生成した class ファイルをまとめて java アーカイブ (jar) を作成 lein uberjar 依存ライブラリを含めた jar を作成 lein swank swank server を立ち上げる。別途プラグインが必要 その他 http://bit.ly/96A9ia 参考
  • 8. マクロで Mapper/Reducer 定義 Mapper/Reduce クラス定義のような定型的な箇所はマクロでテンプレート化。 http://github.com/making/cloudure で改良中 (defmapreduce hello :mapper ([key value context] (.write context (Text. key) (IntWritable. (Integet/parseInt value)))) :reducer ([key values context] (.write context key (IntWritable. (reduce + (map #(.get %) values))))))
  • 9. 簡単並行処理 map の代わりに pmap を使うと並行処理になる(ただし低コストな処理の場合はかえってスレッド生成のオーバヘッドのほうが大きい) pmap/reduce!( 違 ) 実際 map 関数を使うのは reducer 内だと思うので、、、
  • 10. マルチメソッドを使う int -> IntWritable とか double -> DoubleWritable とか String -> Text に変換して Context に設定するのが面倒くさい->マルチメソッドでディスパッチ! Mapper/Reducer の返り値が [key value] な vector である場合にそれぞれディスパッチするようなマクロにする パフォーマンスはいまいちかも?