def getJSON = { println("requesting...") val result = scala.io.Source.fromURL("http://api.hostip.info/get_json.php?ip=8.8.8.8").mkString println("request done") result } println(getJSON) println(getJSON) println(getJSON) requesting... request done {"country_name":"UNITED STATES","country_code":"US","city":"Mountain View, CA","ip":"8.8.8.8"} requesting... request done {"country_name":"UNITED STATES
(訂正あり) HiveServer2で初めて有用になる hive.support.concurrency というプロパティがあって、こいつを有効にするとHiveクエリでテーブルロックがとれるようになる。まあ、でかい変更とかを他に邪魔されずにやりたい時は欲しいかもね。 で、この機能はzookeeperを使うので、オプションを true にするときは hive.zookeeper.quorum を指定しましょう。 が、こいつを有効にしているとき、HiveServer(訂正)およびHiveServer2はzookeeperへの接続をリークさせます。どうなるかというとズバリ zookeeper の maxClientCnxns から溢れて正常に動作しなくなります。 なお HiveServer では hive.support.concurrency は有効にしても意味がありませんが、このコネクション
しばらく前から気になっていたタイトルの問題、以下ブログに詳細が書かれており、やっと点が線につながってきた… Apache Spark Resource Management and YARN App Models 寝かせておくといつになるか分からない、かつ、読む気と書く気が失せるので、個人的に気になった点だけ今ここで要約しておく。意訳/誤訳/勝手に追記したりしてるので参考はほどほどに。 以下… MapReduceモデルでは最も上位の計算ユニットはJobだが、Sparkはその上にapplicationというレベルが存在する。applicatinsはJobをシーケンシャルに、もしくはパラレルに実行することができる。 Applicationはexecutorsと呼ばれるプロセスを持つ。executorはジョブが走っていない時でも起動している(データをメモリに保持し、タスクに対して素早く対応するこ
TCPの状態一覧 LISTEN(聴取) TCPモジュールはリモートホストからのコネクション要求を待っている。パッシブオープンの後で入る状態と同じ。 SYN-SENT(SYN送信済み) TCPモジュールは自分のコネクション要求の送信を終え、応答確認と対応するコネクション要求を待っている。 SYN-RECEIVED(SYN受信済み) TCPモジュールは同期(SYN)セグメントを受信し、対応する同期(SYN/ACK)セグメントを送って、コネクション応答確認を待っている。 ESTABLISHED(確立済み) コネクションが開かれ、データ転送が行える通常の状態になっている。受信されたデータは全てアプリケーションプロセスに渡せる。 FIN-WAIT-1(FIN待機1) TCPモジュールはリモートホストからのコネクション終了要求か、すでに送った終了要求の応答確認を待っている。 FIN-WAIT-2(FI
SparkSQLにはSpark独自のSQLが使えるSparkContextと、HiveQLが使用できるHiveContextがあります。 SparkSQLは関数など機能的に足りないもの(日付演算等)があり、HiveContextを使いたい場合もありますが”Hive”という名称にちょっとだけ性能の不安があるのではと思っていました。 そこで非常に簡易的なものではありますが、同一データ、SQLでContextのみを切り替え、比較してみたので備忘程度に記載します 実行環境・方法 環境はMBP1台構成で以下の通りとなります プロセッサ 2.4GHz Core i5 メモリ 8GB(Heapは2GB割り当て) 実行には以下のソースコードをscalacでJar化し、spark-submitで実行しています インプットデータはCSVファイルを用意して、TRAN_A、TRAN_Bのみ増幅して実行しています
LTSV って何? Labeled Tab-Separated Values という、テキストのフォーマットの仕様です。CSV や TSV や JSON そのほかと同じ、テキストデータのフォーマット名。主にログ、特に httpd のアクセスログなどに適用すると便利です。 仕様は http://ltsv.org にまとまっています。随時更新中です。 LTSV は単なるログのフォーマットであって、それ以上でもそれ以下でもありません。 LTSV ってタブ区切りで値に名前を付けただけのもの? はい、そうです。 これが 127.0.0.1 - frank [10/Oct/2000:13:55:36 -0700] "GET /apache_pb.gif HTTP/1.0" 200 2326 "http://www.example.com/start.html" "Mozilla/4.08 [en] (
インフラエンジニアっぽくNginxのアクセスログをリアルタイム集計してみる SampleがScalaが多いのでScalaで書いてみた(初Scala) なうな感じでNginx=>Fluent=>Kafka=>SparkStreaming Scala汚いのはゆるしてね 基本的にWorkCountのsampleをごにょごにょしただけ とりあえず集計してみる Sampleログ こちらを使わせてもらってLTSVのログを用意しました。 最後の行だけ魔改造してます。 puts "time:#{Time.at(now).strftime('%d/%b/%Y:%H:%M:%S %z')}\thost:#{record['host']}\tforwardedfor:#{record['host']}\treq:#{record['method']} #{record['path']} HTTP/1.1\tst
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く