Skip to content

Instantly share code, notes, and snippets.

View kumagi's full-sized avatar
:octocat:
Fine.

Hiroki KUMAZAKI kumagi

:octocat:
Fine.
View GitHub Profile

Resilient Distributed Datasets(RDD)

この章ではRDDの概要について説明します。 最初はRDD($2-1)Sparkで利用するプログラムインタフェース($2-2)について説明します。それからメモリの詳細について説明し($2-3)、最後にSparkのモデルの限界($2-4)について議論します。

2-1. RDD概要

RDDは読み込み専用のレコードを分割した集まりです。RDDはオペレーションを通して安定したストレージか他のRDDが作成されます。私たちはこのオペレーションについて他のRDDオペレーションと差別化するためにtransformationsとよびます。例えばmap,filter,joinなどがそれにあたります。

RDDは常に実データを持つ必要はありません。その代わりRDDはストレージのデータからたどれるための情報を持つようにします。これはパワフルな特徴で失敗したあと、再構成できないRDDはプログラムから参照できません。

@kumagi
kumagi / anomaly.rb
Created May 30, 2014 11:25
anomaly動かした
require 'json'
require 'pp'
require 'jubatus/anomaly/client'
host = "127.0.0.1"
port = 9199
name = "test"
client = Jubatus::Anomaly::Client::Anomaly.new(host, port, name)
FROM ubuntu
MAINTAINER Hiroki Kumazaki
RUN echo "deb http://download.jubat.us/apt binary/" >> /etc/apt/sources.list
RUN apt-get update
RUN apt-get install -y --allow-unauthenticated jubatus
EXPOSE 9199
ENV JUBATUS_HOME /opt/jubatus
@kumagi
kumagi / byte_lock.cpp
Created July 22, 2014 12:55
byte_lockが速いとかいうので試してみた。やっつけ実装なのに60倍速い。
#include <pthread.h> // pthread_create/join
#include <sys/time.h> // gettimeofday
#include <stdio.h> // printf, perror
#include <stdlib.h> // exit
#include <stdint.h> // exit
#define _GNU_SOURCE 1
#include <sched.h> // sched_setaffinity
struct byte_lock {
byte_lock()
@kumagi
kumagi / recomemnder_client.go
Created August 24, 2014 07:10
jubatus recommender client go
package client
import (
"net"
"fmt"
"net/rpc"
"github.com/ugorji/go/codec"
)
const (

Latency numbers every programmer should know

L1 cache reference ......................... 0.5 ns
Branch mispredict ............................ 5 ns
L2 cache reference ........................... 7 ns
Mutex lock/unlock ........................... 25 ns
Main memory reference ...................... 100 ns             
Compress 1K bytes with Zippy ............. 3,000 ns  =   3 µs
Send 2K bytes over 1 Gbps network ....... 20,000 ns  =  20 µs
SSD random read ........................ 150,000 ns  = 150 µs

Read 1 MB sequentially from memory ..... 250,000 ns = 250 µs

テスト

import a
def hoge():
  fuga

あうあうあー

@kumagi
kumagi / cls.py
Created January 20, 2015 17:11
pythonのクロージャ…
def hoge():
x = []
def append(v):
x.append(v)
def printOut():
print(x)
return (append, printOut)
@kumagi
kumagi / oracle-jdbc.rb
Created February 10, 2015 16:12
embulk oracle
# -*- coding: utf-8 -*-
module Embulk
class OutputOracle < OutputPlugin
$CLASSPATH << "/home/kumagi/develop/embulk/ojdbc14.jar"
require 'java'
java_import 'oracle.jdbc.OracleDriver'
java_import 'java.sql.DriverManager'
Plugin.register_output('oracle', self)
{
"converter" : {
"string_filter_types": {},
"string_filter_rules":[],
"num_filter_types": {},
"num_filter_rules": [],
"string_types": {},
"string_rules":[
{"key" : "*", "type" : "str", "sample_weight":"bin", "global_weight" : "bin"}
],