CUBE SUGAR CONTAINER

技術系のこと書きます。

Apache Hadoop

Python: PySpark でサードパーティ製のライブラリを使って分散処理する

今回は PySpark でサードパーティ製のライブラリを使って分散処理をする方法について。 サンプルとして、次のような状況を試した。 Apache Spark + Hadoop YARN で構築した分散処理用のクラスタを用いる サードパーティ製のライブラリとして scikit-learn を…

Apache Hive で SELECT した結果から ARRAY を作る

Apahe Hive を使っていて、テーブルから SELECT してきた結果から ARRAY 型のカラムを作る方法が分からなくて調べた。 結論から先に述べると COLLECT_LIST() を使えば良い。 使った環境は次の通り。 $ cat /etc/redhat-release CentOS Linux release 7.5.180…

Apache Hive 1.x の INSERT 文の仕様でハマった話

今回は、タイトルの通り Apache Hive の 1.x を使っていたとき INSERT 文の仕様でハマった話。 先に概要を説明しておくと Apache Hive の 1.x と 2.x ではサポートする構文が変わっている。 具体的には 1.x では INSERT INTO ... SELECT 文で後続に FROM ...…

PySpark のスクリプトファイルで引数を扱う

今回は Apache Spark の Python インターフェースである PySpark について。 PySpark では定型的な作業についてはスクリプトファイル (*.py) にまとめて spark-submit コマンドで実行することになる。 その際に、動作に必要な引数をさばく方法について。 結…

PySpark の DataFrame を SparkSQL で操作する

Apache Spark には SQL の実行エンジンが組み込まれていて、そのインターフェースは SparkSQL と呼ばれている。 この機能を使うと Spark で主に扱われるデータ構造の DataFrame オブジェクトを SQL で操作できる。 今回は PySpark から DataFrame を SparkSQ…

Apache Hive を HiveServer2 経由で操作する

Apache Hive を操作する方法としては、以前から hive というコマンドラインツールが提供されている。 ただ、この方法だと hive コマンドがインストールされたホストでしか Apache Hive を操作できない。 また、Hadoop エコシステムを形成する別のソフトウェ…

Apache Hive のメタストアに MariaDB を使う

Apache Hive はテーブルのスキーマ定義などメタデータを RDBMS に保存する。 デフォルトでは Java で書かれた組み込み RDBMS の Apache Derby が使われる。 今回は、その Apache Derby の代わりに MariaDB (MySQL) を使う方法について。 使った環境は次の通…

Apache Hive の ARRAY 型を試す

Apache Hive には ARRAY 型というデータタイプがある。 これは一般的なプログラミング言語でいえば配列に相当するもの。 ようするに、文字列や数値といったデータを一つのレコードに複数格納できる。 リレーショナルデータベースのアンチパターンであるジェ…

Apache Hive を JDBC 経由で操作する

以前、Apache Hive の環境構築についてこのブログで書いた。 blog.amedama.jp 上記では Hive を操作するのに、同梱されたシェルを使っていた。 今回は JDBC (Java Database Connectivity) を使って操作する例を示す。 環境については先ほど紹介したエントリ…

Apache Spark を完全分散モードの YARN クラスタで動かす

Apache Spark を使って複数ノードで分散並列処理をする場合、まずは動作させるためのクラスタマネージャを選ぶことになる。 Apache Spark では以下のクラスタマネージャに対応している。 Apache Spark 組み込み (これはスタンドアロンモードと呼ばれる) Apac…

CentOS7 で Apache Hadoop の完全分散モードを使ってみる

以前、このブログでは OSS 版の Apache Hadoop を疑似分散モードでセットアップする方法を試した。 疑似分散モードというのは、一つのホスト上に必要なデーモンを全て立ち上げる方法を指す。 このモードを使うと HDFS が使えるような、なるべく本番に近い環…

Python から Hadoop Streaming を使ってみる

今回は、任意のプログラミング言語から Apache Hadoop を使うことのできる Hadoop Streaming という機能を使ってみる。 通常、Hadoop を使って MapReduce のジョブを直接扱うときは Java を使ってマッパーとリデューサーを書くことになる。 ただ、ご存知の通…

CentOS7 で Apache Hadoop の疑似分散モードを使ってみる

Apache Hadoop はビッグデータ処理基盤を構築するための超有名なオープンソースソフトウェア。 Google の発表した論文を元にして MapReduce アルゴリズムと Hadoop Distributed File System (HDFS) が実装されている。 この Hadoop/HDFS を中心として Apache…

Mac OS X で Apache Spark を触ってみる

最近 Apache Spark について耳にすることが多い。 Apache Spark は、ビッグデータ処理における並列分散処理基盤を提供する OSS の一つ。 似たような用途としては Apache Hadoop も有名だけど、それよりも最大で 100 倍ほど高速に動作するんだとか。 高速に動…