タグ

ブックマーク / qiita.com/shiumachi (35)

  • CDSW上で、ローカルにMeCabをインストールする - Qiita

    Cloudera Data Science Workbench (以下CDSW) 上にMeCabをインストールする方法としては、C/C++拡張されたPythonライブラリをCloudera Data Science WorkbenchとSparkクラスタで分散実行するがあるが、単に1ノードでMeCabを使いたい場合、ローカルにインストールするだけでいい。 セッションではroot/sudo権限はないため、$HOME以下にインストールする。 ターミナルを開く MeCabのインストール MeCab体 $ git clone https://github.com/taku910/mecab $ cd mecab/mecab $ ./configure --with-charset=utf8 --prefix=$HOME $ make $ make install

    CDSW上で、ローカルにMeCabをインストールする - Qiita
    shiumachi
    shiumachi 2017/12/15
  • CDSW上のセッションで、PyArrowからHDFSに接続する - Qiita

    Cloudera Data Science Workbench (以下CDSW) 上で、PyArrowからHDFSに接続するための方法をまとめておく。 PyArrowからHDFSに接続するための基礎知識 PyArrowは libhdfs.so を使ってHDFSに接続する。 そのため、このライブラリが正しくロードされるかどうかが重要となる。 PyArrowは、デフォルトでは $HADOOP_HOME/lib/native 以下を参照して libhdfs.so を検索するが、存在しない場合は ARROW_LIBHDFS_DIR 以下を検索する。 インストール 以下のファイルを作成しておく。

    CDSW上のセッションで、PyArrowからHDFSに接続する - Qiita
    shiumachi
    shiumachi 2017/12/13
  • Parquet形式のデータをSQL一発で作成する - Qiita

    分析基盤を作るにあたり、ストレージ・ファイルフォーマット選定は非常に重要な項目である。 Parquetは、高い圧縮率と高速な分析を可能にするファイルフォーマットである。 既存の非Parquet形式のテーブルから、Parquet形式にデータ変換するには、CREATE TABLE AS SELECT(CTAS)を実行すればいい。 実行例

    Parquet形式のデータをSQL一発で作成する - Qiita
    shiumachi
    shiumachi 2017/12/08
  • 特定のパーティションのみ統計データを更新する - Qiita

    データの新規追加を行った際に COMPUTE STATS <テーブル名> を実行して統計データを取得するのは定石であるが、テーブルが巨大になると、COMPUTE STATS を毎回実行するだけでもかなりの時間がかかってしまう。 そこで、 COMPUTE INCREMENTAL STATS を使い、新規に追加したデータを含むパーティションのみ統計データを更新する。 実行例

    特定のパーティションのみ統計データを更新する - Qiita
    shiumachi
    shiumachi 2017/12/08
  • SQLを使ってURLをスキーム、ホスト名、パスに分ける - Qiita

    アクセスログなどのデータにおいてURLを使う際、最近はhttpとhttpsの両方のアクセスが存在する場合などがあり、URLスキーム部分は分離して集計したい場合がある。 例えば、以下のような場合である。(URLは一例) https://qiita.com/shiumachi http://qiita.com/shiumachi そこで、ImpalaのSQLを使って、URLをスキーム、ホスト名、パスに分離する。 REGEXP_EXTRACT関数 REGEXP_EXTRACT(str, pattern, index) 文字列strを正規表現patternにかけ、マッチしたグループのうちindex番目の文字列を返す。 正規表現はGoogleのRE2ライブラリを使っている。 文法はこちら。 クエリ例 SELECT REGEXP_EXTRACT(url, '([[:alpha:]]*)://.*',1

    SQLを使ってURLをスキーム、ホスト名、パスに分ける - Qiita
    shiumachi
    shiumachi 2017/12/04
  • 1行あたりの最大サイズを変更する - Qiita

    Impalaの行サイズはデフォルトで512KBに制限されている。殆どの場合問題にならないサイズだが、複数テーブルのJOINなどにより大量のカラムが生成された場合、この制限にひっかかり、以下のようなエラーが出る場合がある。 Row of size 698.78 KB could not be materialized in plan node with id 1. Increase the max_row_size query option (currently 512.00 KB) to process larger rows.

    1行あたりの最大サイズを変更する - Qiita
    shiumachi
    shiumachi 2017/12/02
  • Parquet生成時のデータが小さいときの対処法 - Qiita

    Impalaで CREATE TABLE AS SELECT (以下CTAS)などを使ってParquetファイルを生成する際、SELECT文の結果によってはそれほどデータが大きくならないケースがあるが、デフォルトではクラスタのノードにまたがって分散してデータを生成するため、データが小さくなりすぎてしまう場合がある。 なるべく大きなブロックにまとめておくべきという原則から考えると、あまり望ましいことではない。 しかし、CTAS実行時に、利用するノード数を減らすことで、結果として生成されるファイル数を減らすことができる。 Impalaで利用するノード数は NUM_NODES オプションで指定できる。 実行例 SET NUM_NODES = 1; CREATE TABLE table_pq STORED AS PARQUET SELECT * FROM table_orig WHERE col1

    Parquet生成時のデータが小さいときの対処法 - Qiita
    shiumachi
    shiumachi 2017/12/02
  • Parquet, CSV, Pandas DataFrameをPyArrow経由で相互変換する - Qiita

    # CSV -> DataFrame df = pd.read_csv('/path/to/file.csv') # DataFrame -> Arrow Table table = pa.Table.from_pandas(df) # Arrow Table -> Parquet pq.write_table(table, '/path/to/file.pq')

    Parquet, CSV, Pandas DataFrameをPyArrow経由で相互変換する - Qiita
    shiumachi
    shiumachi 2017/11/16
  • MicroStrategy DesktopにImpalaを接続する - Qiita

    MicroStrategy Desktopは、マイクロストラテジー社が提供するBIツールである。最近無償で利用できるようになった。 他のBIツール無償版と比較すると、以下の点が優れている。 各種DBに接続可能 ローカルにデータを保存可能 なので、このMicroStrategy Desktopをそのまま業務利用できてしまう。 MicroStrategyは、一般的な時系列グラフはもちろん、ネットワーク図やサンキーダイアグラムといった複雑なビューも簡単に作成できる。 記事では、Mac版の MicroStrategy Desktopを使ってOSSのSQL-on-HadoopエンジンApache Impala (incubating)(以下Impala)に接続する方法を紹介する。Impalaについてはこちらの記事も参照のこと。 環境 MicroStrategy Desktop 10.6.0 CDH

    MicroStrategy DesktopにImpalaを接続する - Qiita
    shiumachi
    shiumachi 2017/01/19
  • Pentaho Data Integration メモ - Qiita

    Webページのスクレイピングと分析・可視化で使用したJava製ETLツールPentaho Data Integration(以下PDI)について覚えたことについて記載する。 記事はメモ程度の内容であり、情報の正確性については保証しない。必ず公式ドキュメントを参照すること。 データ変換の流れ 新規 → データ変換 を選択。ジョブは今回は使っていない。 PDIのデザインメニューの項目は種類が多いが、実際に使うものは入力、変換、出力、結合くらいで、あとはたまにフローやスクリプトを使う程度である。 基的な使い方 処理の追加 デザインメニューから追加したい処理をダブルクリックするだけで追加できる。 もし既に設置したアイコンを選択した状態でダブルクリックすると、選択状態のアイコンと自動的に接続した状態で追加してくれる。 データフローの接続 アイコンを中クリックすると、接続の矢印を伸ばすことができる

    Pentaho Data Integration メモ - Qiita
    shiumachi
    shiumachi 2017/01/15
    Pentahoの使い方について書いた
  • Scrapy メモ - Qiita

    Webページのスクレイピングと分析・可視化で使用したPython製WebクローラScrapyについて覚えたことについて記載する。 記事はメモ程度の内容であり、情報の正確性については保証しない。必ず公式ドキュメントを参照すること。 サンプルコード サンプルコード1 import scrapy class QiitaCalendarSpider(scrapy.Spider): name = "qiita_calendar" allowed_domains = ["qiita.com"] start_urls = ["http://qiita.com/advent-calendar/2016/calendars"] custom_settings = { "DOWNLOAD_DELAY": 1, } def parse(self, response): for href in response

    Scrapy メモ - Qiita
    shiumachi
    shiumachi 2017/01/15
    チュートリアルに書いてない諸々のtipsを書いた
  • Webページのスクレイピングと分析・可視化 - Qiita

    先日、2016年アドベントカレンダーのはてブ数の分析というブログ記事を投稿した。このデータの可視化には様々な技術が使われている。記事では、どのような技術を活用して作成したのかについて説明する。 ソースコードはこちら。 概要 このVizは、QiitaとAdventarに投稿された、全アドベントカレンダー及びそこに登録された記事のはてなブックマーク数を元に、どのカレンダーや記事が人気なのか、あるいはQiitaとAdventarのどちらが人気なのかを視覚化することを目的として作成された。データソースは、Qiita及びAdventarに登録された、アドベントカレンダー2016の全カレンダーページである。カレンダーには記事のメタデータが含まれている。記事そのもののページやユーザページのクロールはしていない。 システムの概要 データの収集→ETL→BIという流れで処理を行った。 データ収集 Webク

    Webページのスクレイピングと分析・可視化 - Qiita
    shiumachi
    shiumachi 2017/01/15
    アドベントカレンダーのはてブ数の分析記事のメイキング記事書きました。こっちは純粋に技術記事
  • Impala 落ち穂拾い - Qiita

    この投稿はDistributed computing (Apache Hadoop, Spark, ...) Advent Calendar 2016の22日目です。 昨日はkiszkさんのSparkの記事でした。 この記事の概要 Impalaを使い込んでいる人向けの、役に立つ小ネタ集という位置づけ。 Impala入門ではないので、Impala 入門のような情報は下記のようなページを参照すること。 SQL-on-Apache Hadoop – ジョブの特性に適したツールの選択 http://www.cloudera.co.jp/blog/sql-on-apache-hadoop-choosing-the-right-tool-for-the-right-job.html Apache Impala(Incubating)を使ったAmazon S3 上でのアナリティクスとBIの実現 http

    Impala 落ち穂拾い - Qiita
    shiumachi
    shiumachi 2016/12/22
    Impalaをヘビーに使っている人しか喜ばないようなネタを集めました
  • Cloudera ManagerでHadoopノードのラックIDを指定する - Qiita

    Hadoopには、ラックの位置を意識してデータを配置するラックアウェアネスという機能がある。この機能を使うことにより、ラック障害などによる複数ノードの同時ダウンなどに対する耐障害性を持たせることができる。 記事では、Cloudera Manager にてラックIDを設定する方法を説明する。 ラックアウェアネスの機能そのものについてはApache Hadoop の該当ページを参照のこと。 環境 Cloudera Manager 5.9.0 手順 トップメニューから、 ホスト → すべてのホスト をクリックする。 ラックIDを設定したいノードにチェックをつけ、 選択内容に対するアクション → ラックの割り当て をクリックする。 ラック名を入力する。ラック名はスラッシュで始まる、ファイルパスのような方式で記載しなければならない。例: /rack1, /group1/rack2 影響を受けるサー

    Cloudera ManagerでHadoopノードのラックIDを指定する - Qiita
    shiumachi
    shiumachi 2016/12/16
  • [翻訳] Hadoop: Fair Scheduler - Qiita

    原文: http://hadoop.apache.org/docs/current/hadoop-yarn/hadoop-yarn-site/FairScheduler.html バージョン: 3.0.0-alpha1 ライセンス: Apache License 目的 このドキュメントでは、Hadoop用のプラガブルスケジューラであるFairSchedulerについて説明します。このスケジューラは、YARNアプリケーションが大規模なクラスタでリソースを公平に共有できるようにします。 イントロダクション フェアスケジューリングは、すべてのアプリケーションが平均して同じリソースの時間を共有するように、アプリケーションにリソースを割り当てる方法です。Hadoop NextGenは、複数のリソースタイプのスケジューリングが可能です。デフォルトでは、フェアスケジューラはスケジューリングフェアネス決定

    [翻訳] Hadoop: Fair Scheduler - Qiita
    shiumachi
    shiumachi 2016/11/24
    読んでる
  • [DISCUSSION] YARN タグの使用について - Qiita

    (2016/10/14 16:09 追記) 現在 yarnpkg の githubにて "nyarn"への名称変更の提案がなされています。こちらも参照してください https://github.com/yarnpkg/yarn/issues/673#issuecomment-253718435 (2016/10/17 13:04 追記) 上記提案に対し、 yarn コマンドの名前は変更せず yarn コマンドへのエイリアス yarnpkg を作成するとのコメントがあり、それをもって issue はクローズとなりました。 https://github.com/yarnpkg/yarn/issues/673#issuecomment-254004512 おことわり 記事の目的とリスクに関するDISCLAIMER 記事はディスカッションを目的としているものであり、技術情報の提供を目的としてい

    [DISCUSSION] YARN タグの使用について - Qiita
  • HDFSのDataNodeで、ディスクの空きが多い方からデータを書き込む方法 - Qiita

    HDFSにおける DataNode(以下DN) に対する分散書き込みを、DNのディスクボリューム間で釣り合いがとれるようにするよう設定することができる。 環境 CDH 5.8.0 Hadoop 2.6.0 ベース 概要 デフォルトではDNはラウンドロビンで新しいブロックレプリカをディスクボリュームに書き込む。 新しいレプリカの場所を決定するときにそれぞれのボリュームの空き容量を考慮してボリュームを選択するポリシーをDNに設定することができる。 設定できる内容は以下の通り。 DNボリューム同士の空きディスク容量の差分の許容範囲(バイト) 新しいブロック割り当てが、より空きディスク容量の大きいボリュームに送られる割合(パーセント) プロパティの説明 以下、プロパティと設定に必要な変更の値についての一覧を示す。プロパティの説明については Cloudera Manager の説明文を引用した。 D

    HDFSのDataNodeで、ディスクの空きが多い方からデータを書き込む方法 - Qiita
    shiumachi
    shiumachi 2016/09/02
    書きました
  • Cloudera Managerのログディレクトリ - Qiita

    Cloudera Manager (以下CM)はサーバ・エージェント型のシステムである。1つのCMサーバに対し、多数のCMエージェントが存在する。 これらのログは以下の場所に設置されている。 CMサーバ: /var/log/cloudera-scm-server/ CMエージェント: /var/log/cloudera-scm-agent/ もしCMがうまく動かない場合はこれらのログディレクトリの中を参照するといい。 CM の Web UI にログインできるなら、ブラウザ上からこれらのログを参照することができる。 CMサーバのログ 診断 → サーバログ をクリックすると、ログを閲覧することができる。 CMエージェントのログ ホスト → すべてのホスト を選択し、調査したいホストホスト名をクリックする。 該当ホストのページを開いたら、 クイックリンク → ホストエージェント を選択すること

    Cloudera Managerのログディレクトリ - Qiita
    shiumachi
    shiumachi 2016/08/26
  • Cloudera Managerでクライアント専用マシンを管理する - Qiita

    Cloudera Manager(以下CM)はサーバプロセスの管理だけでなく、クライアントマシンの設定も管理することができる。 記事ではクライアントマシンの登録方法を紹介する。 環境 Cloudera Manager 5.8 技術説明 Gatewayロール CMではNameNodeやDataNodeのようなサーバプロセス用のロールの他に、Gatewayという特殊なロールが存在する。 これはクライアント専用のホストに付与するためのロールで、これらのロールに対しては設定ファイルだけをデプロイする。 ちなみに全てのロールは暗黙的にGatewayロールが付与されている。Cloudera Manager 管理下のホストで簡単に hadoop 等のコマンドが実行できるのはこのためである。 Cloudera Manager におけるクライアントマシン準備手順 以下の手順で、Cloudera Manag

    Cloudera Managerでクライアント専用マシンを管理する - Qiita
    shiumachi
    shiumachi 2016/08/18
  • Cloudera Managerで新規ホストを追加する - Qiita

    Cloudera Manager(以下CM)でのホスト(CMにおけるサーバやインスタンスのこと)を紹介する。 環境 Cloudera Manager 5.8 手順 ホスト → クラスタへの新しいホストの追加 をクリックする。 もし Cloudera Director で環境構築していたらこの操作はせず、Director 側で追加を行う。そうでなければ 従来のウィザード をクリックする。 続行をクリック。 ホストIPアドレスあるいはホスト名を入力し、追加対象のホストを指定する。 ネットワークが疎通していればホストが表示される。追加対象のホストを選択して続行をクリック。 続行をクリック。 JDKをインストールする場合はチェックして続行をクリック。 追加対象ホストのrootアカウントもしくはsudo権限を持つユーザのパスワードあるいは秘密鍵を登録して、続行をクリック。すぐにインストールが始まる

    Cloudera Managerで新規ホストを追加する - Qiita
    shiumachi
    shiumachi 2016/08/17
    新規追加のホスト(サーバ)の設定をテンプレート化する機能、あまり知られてないので使ってほしい