http://hadoop-scr13th.eventbrite.com/
- github repository
- No SpringSource!
- For low latency compared to MapReduce
- Mainly data analytics
- Join and Sort are the bomb!
- Java Frontend and C++ Backend
http://hadoop-scr13th.eventbrite.com/
import System.Random | |
------------------------------------------------------------------------------ | |
-- RANDOM Stream | |
------------------------------------------------------------------------------ | |
randomX x = randomR (0,x -1) | |
type RandomF = StdGen -> (Int, StdGen) | |
ranStImpl :: StdGen -> RandomF -> [Int] |
{-# LANGUAGE RankNTypes #-} | |
module Main where | |
import Control.Monad | |
import Control.Monad.Identity | |
import Data.Functor.Compose | |
natComp :: (Functor m1, Functor m2, Functor m3, Functor m4) => | |
(forall a.m1 a -> m2 a) -> (forall a.m3 a -> m4 a) | |
-> (forall a.m3 (m1 a) -> m4 (m2 a)) | |
s `natComp` t = (fmap s) . t |
module Main where | |
import Control.Monad | |
import Control.Monad.Free | |
import Prelude hiding (putChar, getChar) | |
import qualified System.IO as IO | |
import Test.QuickCheck | |
---------------------------------------------------------------- | |
-- Our DSL |
本文章は,Impala のメモ の TODO のうち,BackEnd の特にクエリの実行部を読み,文章化したものである.
BackEnd(BE) は単体のデーモンとして動作し,FE 側でパースした結果(Job ID/Plan)に基づいて処理を実行する.FE と BE のやりとりには Thrift が用いられている.
|FE| - パース結果(Job ID/実行Planなど) thrift -> |BE|
import Control.Lens | |
import Control.Monad | |
import Control.Monad.State | |
import Data.List | |
import qualified Data.Map as M | |
paint :: M.Map (Int, Int) Char -> (Int, Int) -> Int | |
paint mm pos = evalState (go pos) mm where | |
go (i, j) = do | |
b <- use $ at (i, j) |
{-# LANGUAGE ExtendedDefaultRules, OverloadedStrings #-} | |
{-# OPTIONS_GHC -fno-warn-type-defaults #-} | |
module Main where | |
import Control.Monad | |
import qualified Data.List as List | |
import Data.Monoid | |
import qualified Data.Text.Lazy as LT | |
import Filesystem.Path.CurrentOS hiding (fromText, (<.>)) | |
import Shelly | |
import System.Environment |
{-# OPTIONS_GHC -fwarn-incomplete-patterns #-} | |
module TuringMachine where | |
import Control.Applicative | |
import Control.Arrow hiding (left, right) | |
import Control.Lens hiding (Tape, Zipper, left, right) | |
import Data.List.Lens | |
import qualified Data.Map as M | |
import Data.Maybe | |
data Instruction s = GoLeft |