タグ

ブックマーク / www.ne.jp (33)

  • Javaオブジェクトクラスメモ(Hishidama's Java Object Memo)

    equalsメソッド オブジェクトが値として等しいかどうかを判断する。 (細かい条件はJavadoc参照。けど要するに等しければtrueを返せばいいのだ(爆)) →==演算子との違い (ただし、オーバーライドされていないデフォルトの状態では、実装は「this==otherObject」なので、==演算子と等しい。[2010-01-25]) equals()をオーバーライドして独自の比較を行うようにした場合は、hashCode()も相応の値を返すように実装しなければならない(らしい。ハッシュ値を使わないなら不要な気がしないでもないが)。 hashCodeメソッド ハッシュコード値を返す。 当メソッドは、 ハッシュテーブル(Hashtable)やハッシュマップ(HashMap)で使用される目的で存在しているらしい。 だからハッシュ系のクラスを使わないのであれば、hashCode()を実装する必

    wlbhiro
    wlbhiro 2014/12/01
  • Java正規表現メモ(Hishidama's Java Regular Expression Memo)

    asPredicate() パターンにマッチするものが1つでもあるかどうかを判定する関数を返す。(JDK1.8)[2014-04-15] Pattern pattern = Pattern.compile("123"); Predicate<String> predicate = pattern.asPredicate(); System.out.println(predicate.test("abc123def")); ↓実行結果 true これは、以下の関数(ラムダ式)と同じ。 Pattern pattern = Pattern.compile("123"); Predicate<String> predicate = s -> pattern.matcher(s).find(); asMatchPredicate() パターンに(完全に)マッチするかどうかを判定する関数を返す。(Ja

    wlbhiro
    wlbhiro 2014/12/01
    quoteメソッドがエスケープを代わりにやってくれて面白い! splitで「.」は特別な意味になるため、エスケープをしないとダメ。
  • Java外部プロセス起動メモ(Hishidama's Java Process Memo)

    Process プロセス終了待ち データ読み込み 後から読むとNG 先に読んでもNG 全データ廃棄 スレッド化 [/2015-04-18] リダイレクション クローズ [2010-12-26] プロセス強制終了(タイムアウト) Timer使用 [/2014-03-19] exitValue利用 [/2014-03-19] isAlive利用 [2014-03-19] Future利用 [2014-03-18] タイムアウト付きwaitFor [2014-03-19] Runtime JDK1.4までは、外部プロセスの起動にRuntimeクラスを使う。 JDK1.5以降でも使えるが、JDK1.5以降ではRuntimeの内部でProcessBuilderを使っているので、素直にProcessBuilderを使う方がよい。 「java -version」を実行する例 Runtime r = Ru

    wlbhiro
    wlbhiro 2014/12/01
  • Java直列化メモ(Hishidama's Java Serializable Memo)

    直列化/整列化とは [/2007-12-07] シリアライズの実装方法 [/2007-06-13] シリアライズの実行方法 [2007-05-02] serialVersionUID [/2020-03-21] シリアライズの対象/非対象フィールド [/2007-06-11] シリアライズ方法の独自定義 [/2010-04-29] Externalizable [2010-04-28] シリアライズできないクラス シリアライズのあるべき姿(?) [/2008-07-05] @Serial [2020-03-21] 直列化とは Javaの説明(Javadocとか)を見ていると、よく「直列化」「直列化可能」「直列化された形式」という言葉に遭遇する。 これはserializeの訳語みたいだけど、なんだか意味不明…。 VC++でシリアライズと言えば、「ファイルへのデータ保存」「ファイルからのデータ

    wlbhiro
    wlbhiro 2014/12/01
    Serializeにする方法。
  • Javaリフレクションメモ(Hishidama's Java Reflection Memo)

    Javaでは、クラス生成やメソッド呼び出しをソース上に直接書いてコンパイル時に決定されるだけでなく、文字列(クラス名)を使ってクラスを生成したり、 メソッド名の文字列を使ってメソッドを呼び出したりすることが出来る。 クラス(インスタンス)生成 [/2015-04-26] Classのメソッド [/2021-03-21] instanceof [2007-02-16] Classからのインスタンス生成(非推奨) [/2018-04-30] インスタンス生成 [/2013-08-06] 総称型による限定 [2007-05-02] 内部クラスのインスタンス生成 [/2008-02-10] メソッド呼び出し staticメソッド実行 [/2017-07-23] メソッド実行(引数なし) [/2017-07-23] メソッド実行(引数あり) [/2017-07-23] 可変引数メソッド [/2015

    wlbhiro
    wlbhiro 2014/12/01
  • HiveQL TABLEメモ(Hishidama's Apache Hive TABLE Memo)

    HiveQL(HiveのSQLっぽい独自言語)のテーブルに関するメモ。 Hiveでは操作対象のファイル(基的にはHDFS上のファイル)をテーブルと呼んで扱う。 「テーブル」と呼んでいても、データの実体はファイル。 CREATE CREATE [EXTERNAL] TABLE [IF NOT EXISTS] テーブル名 [(項目名 型 [COMMENT コメント], …)] [COMMENT テーブルのコメント] [PARTITIONED BY (項目名 型 [COMMENT コメント], …)] [CLUSTERED BY (項目名, …) [STORED BY (項目名 [ASC|DESC], …)] INTO バケット数 BUCKETS] [ROW FORMAT 行フォーマット] [ STORED AS ファイルフォーマット] | STORED BY 'クラス名' [WITH SER

  • Sqoop MySQLサンプル(Hishidama's Apache Sqoop MySQL example)

    準備 ここでは、SqoopでMySQLにアクセスする。 HadoopとSqoopとMySQLを同一マシン(CentOS)上で稼動させる。 Hadoopはスタンドアローン環境。 MySQLのJDBCドライバーをSqoopのlibに配置しておく必要がある。 MySQLでサンプル用のDBとユーザーとテーブルを作っておく。 $ mysql -u root mysql> create database test1 character set utf8; mysql> show databases; mysql> create user hishidama identified by 'hishidamal'; ←パスワード mysql> grant all privileges on test1.* to hishidama@localhost identified by 'hishidamac';

    wlbhiro
    wlbhiro 2014/12/01
    --input-null-string 'NULL!!!' は出力文字ではなく、Hive内の文字。 \Nがデフォルトなので、Nを指定するといける。(\Nでは例外が送出される)
  • HBase Javaメモ(Hishidama's HBase0.89 Java Memo)

    lib直下のjarファイルを全て入れてしまうのが楽(笑) HBaseアクセスのサンプル 豊月さんのサンプルをベースにしています。 import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.Path; import org.apache.hadoop.hbase.HBaseConfiguration; import org.apache.hadoop.hbase.client.Get; import org.apache.hadoop.hbase.client.HTableInterface; import org.apache.hadoop.hbase.client.Result; import org.apache.hadoop.hbase.util.Bytes; public class HBase

    wlbhiro
    wlbhiro 2014/12/01
    hbase shell -dでzookeeperのログが表示される。
  • HBase0.20 Javaサンプル(Hishidama's HBase Java Sample)

    lib直下にはjarファイルがたくさんあるが、単独環境ではとりあえず上記の4つがあれば動くようだ。 HBaseアクセスのサンプル まったく申し訳ない&ありがたいことに、豊月さんのサンプルほぼそのまんまです。[2010-02-20] import org.apache.hadoop.fs.Path; import org.apache.hadoop.hbase.HBaseConfiguration; import org.apache.hadoop.hbase.client.Get; import org.apache.hadoop.hbase.client.HTable; import org.apache.hadoop.hbase.client.Result; import org.apache.hadoop.hbase.util.Bytes; public class HBaseSam

    wlbhiro
    wlbhiro 2014/12/01
    エラー種類
  • Hadoop SequenceFileメモ(Hishidama's Hadoop SequenceFile Memo)

    SequenceFileの概要 シーケンスファイルは、キーとデータのペアで保存する形式。 キーもデータも任意のWritableを使用可能。 ハッシュテーブルというわけではないので、同一のキーも入れられる。 SequenceFileへの書き込み(Hadoop1系) SequenceFileへ書き込むにはSequenceFile.Writerを使う。 以下、WordCountWritableというWritableをデータとして出力する例。 import java.io.IOException; import java.net.URI; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.FileSystem; import org.apache.hadoop.fs.Path; import org.a

  • Pig Latinメモ(Hishidama's Apache Pig Latin Memo)

    Pigの構文 Pigの命令は基的にセミコロン「;」を末尾に付けて実行する。 ただし命令の終わりとして解釈できる場合はセミコロン無しでも実行される。 命令は大文字でも小文字でも認識される。 ただし関数は大文字小文字が区別される。 コメントは「/* ~ */」か、「-- ~」。[2011-12-24] Pigの操作 命令 説明 例

  • JNIメモ(Hishidama's Java native interface Memo)

    Solarisの例: % cc -G -I /usr/java/include -I /usr/java/include/solaris JniJikken.c -o libJniJikken.so Solarisでのmakefileの例: all: libJniJikken.so lib%.so: %.c %.h cc -G $< -I /usr/java/include -I /usr/java/include/solaris -o $@ %.h: %.class javah $* %.class: %.java javac $< ↑この例の場合、javaのコンパイル・javahでの生成まで含んでいる。 VC++の例: インクルードパスの追加方法参照。 ↓JDK1.6の場合 C:\Program Files\Java\jdk1.6.0\include,C:\Program Files\

    wlbhiro
    wlbhiro 2014/12/01
    UnsatisfiedLinkErrorは.soファイルが足りないもしくは適切に指定されていないことが原因。(確認済!!! [JNI] Java->C++->Javaの順でコンパイルしていく.
  • Hadoop Writableメモ(Hishidama's Hadoop Writable Memo)

    Writableの概要 Writableの種類 独自Writable WritableUtils [/2010-07-03] writeString() 可変長int 独自WritableComparable [2010-03-21] 独自RawComparator [2010-03-21] 開始位置の算出 [2010-03-21] 独自WritableComparator [2010-03-21] Writableの概要 Hadoopでは、ノード(サーバー)間のデータ転送や中間データ(メモリー上のバッファ内や一時ファイル)の保持をバイナリデータ(バイト列byte[])で行う。 その為、データを転送する前(出力前)にバイト配列に変換(シリアライズ)し、転送後(読込時)に復元(デシリアライズ)する必要がある。 Javaには標準でシリアライズ(java.io.Serializable)の仕組み