Skip to content

Instantly share code, notes, and snippets.

時は大メニーコア時代。我々はビックデータなんて持ってない。
いや、正確には持っている。が、業務の全てがビックデータではない。
普通のたかだか数百GBのデータのジョブを数千単位でマネージする必要がある。
それが現実だ。ビックデータを効率的に処理する基盤では無く、ちょっとデカイデータをスマートにに管理することが必要だ。
ビックデータ処理基盤はすばらしい。大量にのマシンを効率的に管理するためのエコシステムがある。
ではそれで充分か? 否である。我々は大量のサーバーなんて必要としていない。
今や1台で数十個のvCPUを持ったサーバは普通だ。大量のサーバではないので、それなりの信頼性は期待できる。
require 'nokogiri'
def f node
node.children.map do |x|
[x.name, x.children.size, f(x)]
end
end
def nodes2text(nodes, level)
nodes.map { |n|
@koduki
koduki / simple_test.gb
Created September 20, 2017 05:38
Unit-Test library example for govy
module TestOperations
def test(case_name)
@case_name = case_name
r = yield
if r != nil
if @cnt_failed == nil
@cnt_failed = 0
end
@cnt_failed += 1

Javaから使うScala


@koduki

SparkのRDDみたく巨大ファイルを透過的に分割処理するAPIイメージ

Record.partition(10).read("hoge.txt").map(line -> line.split(","))

内部実装的には下記ように変換?

IntStream.range(1, 10).parallel().mapToObj( n -> {
qemuでboot2dockerを起動。割と普通に動いた。VT-Xを使ってるかどうかを要検証
```bash
λ 'C:\Program Files\qemu\qemu-img.exe' create -f qcow2 harddisk.qcow2 32G
λ "C:\Program Files\qemu\qemu-system-x86_64w.exe" -m 4G -cdrom boot2docker.iso -name boot2docker -drive file=harddisk.qcow2,media=d isk,cache=writeback -smp 2 -netdev user,id=user.0 -device e1000,netdev=user.0
```
@koduki
koduki / memo_java9-aot.txt
Last active January 20, 2017 11:13
memo_java9-aot.txt
http://nothingcosmos.wiki.fc2.com/wiki/OpenJDK%E3%81%AE%E3%83%93%E3%83%AB%E3%83%89%E6%96%B9%E6%B3%95
https://www.google.co.jp/url?sa=t&rct=j&q=&esrc=s&source=web&cd=2&ved=0ahUKEwistsDN0qTRAhWDmZQKHRSoDKMQFgglMAE&url=https%3A%2F%2Fjdk9.java.net%2F&usg=AFQjCNFjzKRAjtdK8S5f0FQNoTf34f-kWg&sig2=GdbV4Acn0WdisKq62MHvjg&bvm=bv.142059868,d.dGo
13 ./get_source.sh
14 bash get_source.sh
5 apt-get install mercurial
17 apt-get install gcc make
19 apt-get install unzip
20 apt-get install bzip2 gzip tar zip cups-devel
21 apt-get install bzip2 gzip tar zip
@koduki
koduki / ltsv.sh
Last active December 14, 2016 17:27
This is AWK wrapper to parse LTSV. more details [awkとシェルでLTSVの取り扱いを簡単にするフィルタを書いてみた](http://koduki.hatenablog.com/entry/2013/07/31/000817)
#!/bin/bash
script=$1
func_ltsv=`cat << 'EOS'
function ltsv(key){
for(i=1; i<=NF; i++){
match($i, ":");
xs[substr($i, 0, RSTART)] = substr($i, RSTART+1);
};
return xs[key":"];
List<Item> items = createItemList("Item", 100);
bench("outer_join(df:bloadcast)", 5, () -> {
long count = sc.parallelize(items)
.map(x -> sleep(1))
.count();
System.out.println("finish: " + count);
});

setup cluster

$ gcloud dataproc clusters create --master-machine-type "n5-standard-4" --worker-machine-type "n1-standard-4" --num-preemptible-workers 1 mycluster

spark-submit

$ gcloud dataproc jobs submit spark --properties spark.dynamicAllocation.enabled=false --cluster mycluster --class techconf.example.spark01.Main --jars Documents\NetBeansProjects\example-spark01\target\example-spark01-0.1.jar