• HiveはHiveQLというSQL風の言語でHadoop上のデータを操作できます。
    Hadoop上のデータベースというとHBaseが有名ですが、
    HiveはHDFSに対してよりユーザーフレンドリなインターフェイスを提供するもので、
    HBaseとは根本的に存在意義が異なります。

    Hadoop+Hive検証環境を構築してみる
    SQLライクにHadoop Hiveを使い倒す!

    [root@colinux ~]# vi /home/hiveuser/.bashrc

    hive user

    hive user

    【/home/hiveuser/.bashrcに追記】
    export PATH=$PATH:/usr/java/latest/bin
    export JAVA_HOME=/usr/java/latest
    export HADOOP_HOME=/usr/local/hadoop

    Hive Download Site

    http://www.apache.org/dyn/closer.cgi/hive/

    Hive Install

    [root@colinux ~]# su – hadoop
    [hadoop@colinux ~]$ pwd
    /home/hadoop
    [hiveuser@colinux ~]$ wget http://ftp.kddilabs.jp/infosystems/apache/hive/stable/hive-0.8.1.tar.gz
    –2012-05-20 14:50:13– http://ftp.kddilabs.jp/infosystems/apache/hive/stable/hive-0.8.1.tar.gz
    ftp.kddilabs.jp をDNSに問いあわせています… 192.26.91.193, 2001:200:601:10:206:5bff:fef0:466c
    ftp.kddilabs.jp|192.26.91.193|:80 に接続しています… 接続しました。
    HTTP による接続要求を送信しました、応答を待っています… 200 OK
    長さ: 31325840 (30M) [application/x-gzip]
    `hive-0.8.1.tar.gz’ に保存中

    100%[================================================================================>] 31,325,840 2.90M/s 時間 11s

    2012-05-20 14:50:24 (2.81 MB/s) – `hive-0.8.1.tar.gz’ へ保存完了 [31325840/31325840]
    [hadoop@colinux ~]$

    hive install

    hive install

    [hadoop@colinux ~]$ tar xvfz hive-0.8.1.tar.gz

    [root@colinux ~]# mv /home/hadoop/hive-0.8.1 /usr/local/
    [root@colinux ~]# cd /usr/local/
    [root@colinux local]# ln -s hive-0.8.1 hive

    [root@colinux local]# ls -l
    合計 88
    drwxr-xr-x 2 root root 4096 2011-12-10 10:12 bin
    drwxr-xr-x 2 root root 4096 2011-12-10 10:12 etc
    drwxr-xr-x 2 root root 4096 2007-04-17 21:46 games
    lrwxrwxrwx 1 root root 23 2012-05-12 12:17 hadoop -> /usr/local/hadoop-1.0.1
    drwxr-xr-x 15 hadoop hadoop 4096 2012-05-12 13:06 hadoop-1.0.1
    lrwxrwxrwx 1 root root 10 2012-05-20 18:37 hive -> hive-0.8.1
    drwxr-xr-x 9 root root 4096 2012-05-20 18:36 hive-0.8.1

    [root@colinux local]# chown -R hadoop:hadoop hive/

    hive> CREATE TABLE pref (id int, pref STRING)
    > ROW FORMAT DELIMITED FIELDS TERMINATED BY ‘,’ LINES TERMINATED BY ‘\n’;

    hive create table

    hive create table

    Tags: ,


  • RDBMS(MS SQL,Oracle,MYSQL等)はOLTP等のリアルタイムのデータ分析、
    またNoSQLが最近の世の中のコンテンツリッチ化や大容量データ分析(NOT REALTIME)
    のDWH系選択肢として話題になっているので少しレビューしてみたいと思います。
    まずは自分のクライアントで手軽に試せるのでWindows版でテストしてみました。

    MongoDB is an open source, document-oriented database designed with both scalability
    and developer agility in mind. Instead of storing your data in tables and rows as you
    would with a relational database, in MongoDB you store JSON-like documents with dynamic schemas.
    The goal of MongoDB is to bridge the gap between key-value stores (which are fast and scalable)
    and relational databases (which have rich functionality).

    MongoDBは、Shardingによって水平スケーリングが可能である。
    これはBigTableやPNUTSのスケーリングモデルに非常に良く似ている。
    開発者はshardキーを選択し、このキーがデータをどのように分散させるかを決める。
    データ中のキーを元にデータを分散させるshardが決められる。

    関連ドキュメント
    Presentations Matching: MongoDB Tokyo 2012

    http://www.10gen.com/
    http://www.mongodb.org/
    http://www.mongodb.org/downloads

    対応OS
    OS X 32-bit
    note OS X 64-bit Linux 32-bit
    note Linux 64-bit Windows 32-bit
    note Windows 64-bit Solaris i86pc
    note Solaris 64 Source

    MongoDB on Windows

    http://www.mongodb.org/downloads

    Windows7での利用
    mongodb-win32-x86_64-2.0.5.zipダウンロード

    インストール手順

    http://www.mongodb.org/display/DOCS/Quickstart+Windows

    ① Unzip
    Unzip the downloaded binary package to the location of your choice.
    You may want to rename mongo-xxxxxxx to just “mongo” for convenience.

    ② Create a data directory
    By default MongoDB will store data in \data\db, but it won’t automatically
    create that folder.

    ※If you prefer to place datafiles elsewhere,
     use the –dbpath command line parameter when starting mongod.exe.
     他のパスにデータを配置したい場合は、MYSQLでいうdatadirのようにデータパスを
     起動時に指定してあげれば良いようです。

    ダウンロードした実行ファイルとデータ用にフォルダーを作成しました。

    mongodb install

    ③ Run and connect to the server

    C:\mongodb\bin>mongod
    mongod –help for help and startup options
    Sun May 20 08:20:03 [initandlisten] MongoDB starting : pid=10660 port=27017 dbpath=/data/db 64-bit host=any-place
    Sun May 20 08:20:03 [initandlisten] db version v2.0.5, pdfile version 4.5
    Sun May 20 08:20:03 [initandlisten] git version: 1bb4de4630302fad8af53824ca4f627db490b753
    Sun May 20 08:20:03 [initandlisten] build info: windows sys.getwindowsversion(major=6, minor=1, build=7601, platform=2, service_pack=’Service Pack 1′) BOOST_LIB_VERSION=1_42
    Sun May 20 08:20:03 [initandlisten] options: {}
    Sun May 20 08:20:03 [initandlisten] journal dir=/data/db/journal
    Sun May 20 08:20:03 [initandlisten] recover : no journal files present, no recovery needed
    Sun May 20 08:20:04 [initandlisten] waiting for connections on port 27017
    Sun May 20 08:20:04 [websvr] admin web console waiting for connections on port 28017
    Sun May 20 08:21:04 [clientcursormon] mem (MB) res:20 virt:82 mapped:0

    Note: It is also possible to run the server as a Windows Service.

    mongod start

    ④ Start the administrative shell

    C:\mongodb\bin>mongo
    MongoDB shell version: 2.0.5
    connecting to: test
    > 3+3
    6
    > db
    test
    > db.foo.insert( { a : 1 } )
    > db.foo.find()
    { “_id” : ObjectId(“4fb82c2961d4fad4249cd4a5″), “a” : 1 }
    > show dbs
    local (empty)
    test 0.078125GB
    > show collections
    foo
    system.indexes
    >

    データをINSERT,SAVE,FIND出来ます。
    基本的には、”Key”と”Value”がペアになっています。

    > db.foo.insert( { d : 4 } )
    > db.foo.insert( { e : 5 } )
    > db.foo.find()
    { “_id” : ObjectId(“4fb82c2961d4fad4249cd4a5″), “a” : 1 }
    { “_id” : ObjectId(“4fb832e8606ee417ccf80408″), “b” : 2 }
    { “_id” : ObjectId(“4fb8331c606ee417ccf80409″), “c” : 3 }
    { “_id” : ObjectId(“4fb833a4606ee417ccf8040a”), “d” : 4 }
    { “_id” : ObjectId(“4fb833ab606ee417ccf8040b”), “e” : 5 }

    > db.foo.save( { f : 6 } )
    > db.foo.find()
    { “_id” : ObjectId(“4fb82c2961d4fad4249cd4a5″), “a” : 1 }
    { “_id” : ObjectId(“4fb832e8606ee417ccf80408″), “b” : 2 }
    { “_id” : ObjectId(“4fb8331c606ee417ccf80409″), “c” : 3 }
    { “_id” : ObjectId(“4fb833a4606ee417ccf8040a”), “d” : 4 }
    { “_id” : ObjectId(“4fb833ab606ee417ccf8040b”), “e” : 5 }
    { “_id” : ObjectId(“4fb834a3606ee417ccf8040c”), “f” : 6 }
    >

    > db.foo.find({“e”:5})
    { “_id” : ObjectId(“4fb833ab606ee417ccf8040b”), “e” : 5 }
    >

    mongod and mongo

    mongod and mongo

    ———————————————————–
    HELP内容
    ———————————————————–
    db.help() help on db methods
    db.mycoll.help() help on collection methods
    rs.help() help on replica set methods
    help admin administrative help
    help connect connecting to a db help
    help keys key shortcuts
    help misc misc things to know
    help mr mapreduce

    show dbs show database names
    show collections show collections in current database
    show users show users in current database
    show profile show most recent system.profile entries with time >= 1ms
    show logs show the accessible logger names
    show log [name] prints out the last segment of log in memory, ‘global’ is default
    use set current database
    db.foo.find() list objects in collection foo
    db.foo.find( { a : 1 } ) list objects in foo where a == 1
    it result of the last line evaluated; use to further iterate
    DBQuery.shellBatchSize = x set default number of items to display on shell
    exit quit the mongo shell
    ———————————————————–

    データフォルダーの確認

    mongodb data dir

    mongodb data dir

    http://localhost:28017/にて状況確認

    mongodb process confirmation

    mongodb process confirmation

    Drivers
    MongoDB currently has client support for the following programming languages:

    http://www.mongodb.org/display/DOCS/Drivers

    mongodb.org Supported

    C
    C++
    Erlang
    Haskell
    Java
    Javascript
    .NET (C# F#, PowerShell, etc)
    Node.js
    Perl
    PHP
    Python
    Ruby
    Scala

    Community Supportedには,その他色々あるようです。
    Linux版、Hadoopとの連携等はまた後日確認。

    Tags: ,


  • 【オリジナルサイト】
    Welcome to Apache™ Hadoop™!
    Hadoop Common Releases

    Other Info
    Linux と Hadoop による分散コンピューティング

    【JAVAのインストール】
    ■ JDKインストール Java SE Development Kit(JDK、v1.6以上推奨)

    http://www.oracle.com/technetwork/java/javase/downloads/index.html

    http://www.oracle.com/technetwork/java/javase/downloads/jdk-6u32-downloads-1594644.html

    [root@colinux hadoop]# ls -l
    合計 67060
    -rw-rw-r– 1 root root 68593311 2012-05-12 08:03 jdk-6u32-linux-i586-rpm.bin
    [root@colinux hadoop]# chmod 755 jdk-6u32-linux-i586-rpm.bin

    [root@colinux hadoop]# ./jdk-6u32-linux-i586-rpm.bin
    Unpacking…
    Checksumming…
    Extracting…
    UnZipSFX 5.50 of 17 February 2002, by Info-ZIP (Zip-Bugs@lists.wku.edu).
    inflating: jdk-6u32-linux-i586.rpm
    inflating: sun-javadb-common-10.6.2-1.1.i386.rpm
    inflating: sun-javadb-core-10.6.2-1.1.i386.rpm
    inflating: sun-javadb-client-10.6.2-1.1.i386.rpm
    inflating: sun-javadb-demo-10.6.2-1.1.i386.rpm
    inflating: sun-javadb-docs-10.6.2-1.1.i386.rpm
    inflating: sun-javadb-javadoc-10.6.2-1.1.i386.rpm
    準備中… ########################################### [100%]
    1:jdk ########################################### [100%]
    Unpacking JAR files…
    rt.jar…
    jsse.jar…
    charsets.jar…
    tools.jar…
    localedata.jar…
    plugin.jar…
    javaws.jar…
    deploy.jar…
    Installing JavaDB
    準備中… ########################################### [100%]
    1:sun-javadb-common ########################################### [ 17%]
    2:sun-javadb-core ########################################### [ 33%]
    3:sun-javadb-client ########################################### [ 50%]
    4:sun-javadb-demo ########################################### [ 67%]
    5:sun-javadb-docs ########################################### [ 83%]
    6:sun-javadb-javadoc ########################################### [100%]

    Java(TM) SE Development Kit 6 successfully installed.

    Product Registration is FREE and includes many benefits:
    * Notification of new versions, patches, and updates
    * Special offers on Oracle products, services and training
    * Access to early releases and documentation

    [root@colinux hadoop]# java -version
    java version “1.6.0_32″
    Java(TM) SE Runtime Environment (build 1.6.0_32-b05)
    Java HotSpot(TM) Client VM (build 20.7-b02, mixed mode, sharing)
    [root@colinux hadoop]#

    【 Hadoopインストール】
    ※2012年5月現在

    http://hadoop.apache.org/common/releases.html#Download

    http://ftp.kddilabs.jp/infosystems/apache/hadoop/common/

    http://ftp.kddilabs.jp/infosystems/apache/hadoop/common/stable/

    1.0.X – current stable version, 1.0 release
    1.1.X – current beta version, 1.1 release
    0.23.X – current alpha version, MR2
    0.22.X – does not include security
    0.20.203.X – legacy stable version
    0.20.X – legacy version

    リリースノート

    http://ftp.kddilabs.jp/infosystems/apache/hadoop/common/stable/RELEASE_NOTES_HADOOP-1.0.1.html

    [root@colinux hadoop]# wget http://ftp.kddilabs.jp/infosystems/apache/hadoop/common/stable/hadoop-1.0.1.tar.gz
    –2012-05-12 12:11:03– http://ftp.kddilabs.jp/infosystems/apache/hadoop/common/stable/hadoop-1.0.1.tar.gz
    ftp.kddilabs.jp をDNSに問いあわせています… 192.26.91.193, 2001:200:601:10:206:5bff:fef0:466c
    ftp.kddilabs.jp|192.26.91.193|:80 に接続しています… 接続しました。
    HTTP による接続要求を送信しました、応答を待っています… 200 OK
    長さ: 60811130 (58M) [application/x-gzip]
    `hadoop-1.0.1.tar.gz’ に保存中

    100%[=============================================================================================================================>] 60,811,130 3.24M/s 時間 21s

    2012-05-12 12:11:24 (2.72 MB/s) – `hadoop-1.0.1.tar.gz’ へ保存完了 [60811130/60811130]

    [root@colinux hadoop]#

    [root@colinux hadoop]# mv hadoop-1.0.1.tar.gz /usr/local/
    [root@colinux local]# pwd
    /usr/local
    [root@colinux local]# tar zxf hadoop-1.0.1.tar.gz
    [root@colinux local]#

    [root@colinux local]# ls -l
    合計 84
    drwxr-xr-x 2 root root 4096 2011-12-10 10:12 bin
    drwxr-xr-x 2 root root 4096 2011-12-10 10:12 etc
    drwxr-xr-x 2 root root 4096 2007-04-17 21:46 games
    drwxr-xr-x 14 root root 4096 2012-02-14 17:18 hadoop-1.0.1
    drwxr-xr-x 3 root root 4096 2011-11-05 09:00 include
    drwxr-xr-x 2 root root 4096 2007-04-17 21:46 lib
    drwxr-xr-x 2 root root 4096 2007-04-17 21:46 libexec
    lrwxrwxrwx 1 root root 38 2009-12-26 01:40 mysql -> mysql-5.5.0-m2-linux-i686-icc-glibc23/
    drwxr-xr-x 14 mysql mysql 4096 2009-12-22 00:23 mysql-5.1.41-linux-i686-icc-glibc23
    drwxr-xr-x 14 mysql mysql 4096 2009-12-26 01:37 mysql-5.5.0-m2-linux-i686-icc-glibc23
    drwxr-xr-x 2 root root 4096 2007-04-17 21:46 sbin
    drwxr-xr-x 6 root root 4096 2011-12-10 10:12 share
    drwxr-xr-x 2 root root 4096 2011-01-09 17:14 src
    drwxrwxrwt 2 root root 40 2012-05-12 06:49 tmp
    [root@colinux local]# ln -s /usr/local/hadoop-1.0.1 /usr/local/hadoop
    [root@colinux local]# ls -l
    合計 84
    drwxr-xr-x 2 root root 4096 2011-12-10 10:12 bin
    drwxr-xr-x 2 root root 4096 2011-12-10 10:12 etc
    drwxr-xr-x 2 root root 4096 2007-04-17 21:46 games
    lrwxrwxrwx 1 root root 23 2012-05-12 12:17 hadoop -> /usr/local/hadoop-1.0.1
    drwxr-xr-x 14 root root 4096 2012-02-14 17:18 hadoop-1.0.1
    drwxr-xr-x 3 root root 4096 2011-11-05 09:00 include
    drwxr-xr-x 2 root root 4096 2007-04-17 21:46 lib
    drwxr-xr-x 2 root root 4096 2007-04-17 21:46 libexec
    lrwxrwxrwx 1 root root 38 2009-12-26 01:40 mysql -> mysql-5.5.0-m2-linux-i686-icc-glibc23/
    drwxr-xr-x 14 mysql mysql 4096 2009-12-22 00:23 mysql-5.1.41-linux-i686-icc-glibc23
    drwxr-xr-x 14 mysql mysql 4096 2009-12-26 01:37 mysql-5.5.0-m2-linux-i686-icc-glibc23
    drwxr-xr-x 2 root root 4096 2007-04-17 21:46 sbin
    drwxr-xr-x 6 root root 4096 2011-12-10 10:12 share
    drwxr-xr-x 2 root root 4096 2011-01-09 17:14 src
    drwxrwxrwt 2 root root 40 2012-05-12 06:49 tmp
    [root@colinux local]#

    【Hadoopサービスアカウント設定(パス無し鍵認証)】

    [root@colinux local]# /usr/sbin/useradd hadoop
    [root@colinux local]# chown -R hadoop:hadoop /usr/local/hadoop-1.0.1
    [root@colinux local]#
    [root@colinux local]# passwd hadoop
    Changing password for user hadoop.
    新しいUNIX パスワード:
    新しいUNIX パスワードを再入力してください:
    passwd: all authentication tokens updated successfully.
    [root@colinux local]#
    [root@colinux local]# id hadoop
    uid=503(hadoop) gid=503(hadoop) 所属グループ=503(hadoop)
    [root@colinux local]#

    [root@colinux local]# su – hadoop
    [hadoop@colinux ~]$ ssh-keygen -t dsa -P ” -f ~/.ssh/id_dsa
    Generating public/private dsa key pair.
    Created directory ‘/home/hadoop/.ssh’.
    Your identification has been saved in /home/hadoop/.ssh/id_dsa.
    Your public key has been saved in /home/hadoop/.ssh/id_dsa.pub.
    The key fingerprint is:
    d0:5c:57:22:9b:8e:38:97:e4:47:0f:ac:08:13:4c:ae hadoop@colinux
    [hadoop@colinux ~]$ cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
    [hadoop@colinux ~]$ chmod 600 ~/.ssh/authorized_keys
    [hadoop@colinux ~]$

    [hadoop@colinux ~]$ ssh localhost
    The authenticity of host ‘localhost (127.0.0.1)’ can’t be established.
    RSA key fingerprint is a2:b7:25:e3:78:61:15:2a:59:ed:fb:9f:1c:e7:94:db.
    Are you sure you want to continue connecting (yes/no)? yes
    Warning: Permanently added ‘localhost’ (RSA) to the list of known hosts.
    [hadoop@colinux ~]$exit
    [hadoop@colinux ~]$ ssh localhost
    Last login: Sat May 12 12:31:20 2012 from localhost.localdomain
    [hadoop@colinux ~]$

    [hadoop@colinux ~]$ ls -l /usr/java/
    合計 4
    lrwxrwxrwx 1 root root 16 2012-05-12 08:11 default -> /usr/java/latest
    drwxr-xr-x 7 root root 4096 2012-05-12 08:11 jdk1.6.0_32
    lrwxrwxrwx 1 root root 21 2012-05-12 08:11 latest -> /usr/java/jdk1.6.0_32
    [hadoop@colinux ~]$

    【HADOOP設定ファイル変更】

    [hadoop@colinux ~]$ cd /usr/local/hadoop-1.0.1/conf/

    [hadoop@colinux conf]$ vi hadoop-env.sh
    # Set Hadoop-specific environment variables here.
    —————————————————-
    # The java implementation to use. Required.
    # export JAVA_HOME=/usr/lib/j2sdk1.5-sun
    export JAVA_HOME=/usr/java/default
    # Extra Java CLASSPATH elements. Optional.
    # export HADOOP_CLASSPATH=
    —————————————————-
    [hadoop@colinux conf]$ vi core-site.xml
    [hadoop@colinux conf]$ cat core-site.xml

    <?xml version="1.0"?>
    <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
    <!-- Put site-specific property overrides in this file. -->
    <configuration>
        <property>
            <name>fs.default.name</name>
            <value>hdfs://localhost:9000</value>
        </property>
    </configuration>
    

    [hadoop@colinux conf]$
    [hadoop@colinux conf]$ vi hdfs-site.xml
    [hadoop@colinux conf]$ cat hdfs-site.xml

    <?xml version="1.0"?>
    <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
    <!-- Put site-specific property overrides in this file. -->
    <configuration>
        <property>
            <name>dfs.replication</name>
            <value>1</value>
        </property>
    </configuration>
    

    [hadoop@colinux conf]$
    [hadoop@colinux conf]$ vi mapred-site.xml
    [hadoop@colinux conf]$ cat mapred-site.xml

    <?xml version="1.0"?>
    <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
    <!-- Put site-specific property overrides in this file. -->
    <configuration>
         <property>
             <name>mapred.job.tracker</name>
             <value>localhost:9001</value>
         </property>
    </configuration>
    

    [hadoop@colinux conf]$

    【初期設定とサービスの開始】

    [hadoop@colinux conf]$ /usr/local/hadoop/bin/hadoop namenode -format
    12/05/12 13:05:05 INFO namenode.NameNode: STARTUP_MSG:
    /************************************************************
    STARTUP_MSG: Starting NameNode
    STARTUP_MSG: host = colinux/127.0.0.1
    STARTUP_MSG: args = [-format]
    STARTUP_MSG: version = 1.0.1
    STARTUP_MSG: build = https://svn.apache.org/repos/asf/hadoop/common/branches/branch-1.0 -r 1243785; compiled by ‘hortonfo’ on Tue Feb 14 08:15:38 UTC 2012
    ************************************************************/
    12/05/12 13:05:06 INFO util.GSet: VM type = 32-bit
    12/05/12 13:05:06 INFO util.GSet: 2% max memory = 19.33375 MB
    12/05/12 13:05:06 INFO util.GSet: capacity = 2^22 = 4194304 entries
    12/05/12 13:05:06 INFO util.GSet: recommended=4194304, actual=4194304
    12/05/12 13:05:08 INFO namenode.FSNamesystem: fsOwner=hadoop
    12/05/12 13:05:08 INFO namenode.FSNamesystem: supergroup=supergroup
    12/05/12 13:05:08 INFO namenode.FSNamesystem: isPermissionEnabled=true
    12/05/12 13:05:08 INFO namenode.FSNamesystem: dfs.block.invalidate.limit=100
    12/05/12 13:05:08 INFO namenode.FSNamesystem: isAccessTokenEnabled=false accessKeyUpdateInterval=0 min(s), accessTokenLifetime=0 min(s)
    12/05/12 13:05:08 INFO namenode.NameNode: Caching file names occuring more than 10 times
    12/05/12 13:05:09 INFO common.Storage: Image file of size 112 saved in 0 seconds.
    12/05/12 13:05:10 INFO common.Storage: Storage directory /tmp/hadoop-hadoop/dfs/name has been successfully formatted.
    12/05/12 13:05:10 INFO namenode.NameNode: SHUTDOWN_MSG:
    /************************************************************
    SHUTDOWN_MSG: Shutting down NameNode at colinux/127.0.0.1
    ************************************************************/
    [hadoop@colinux conf]$

    [hadoop@colinux conf]$ /usr/local/hadoop/bin/start-all.sh
    starting namenode, logging to /usr/local/hadoop-1.0.1/libexec/../logs/hadoop-hadoop-namenode-colinux.out
    localhost: starting datanode, logging to /usr/local/hadoop-1.0.1/libexec/../logs/hadoop-hadoop-datanode-colinux.out
    localhost: starting secondarynamenode, logging to /usr/local/hadoop-1.0.1/libexec/../logs/hadoop-hadoop-secondarynamenode-colinux.out
    starting jobtracker, logging to /usr/local/hadoop-1.0.1/libexec/../logs/hadoop-hadoop-jobtracker-colinux.out
    localhost: starting tasktracker, logging to /usr/local/hadoop-1.0.1/libexec/../logs/hadoop-hadoop-tasktracker-colinux.out
    [hadoop@colinux conf]$

    [hadoop@colinux conf]$ jps
    4689 Jps
    4313 SecondaryNameNode
    4062 NameNode
    4186 DataNode
    4561 TaskTracker
    4399 JobTracker
    [hadoop@colinux conf]$

    【基本設定確認】
    NameNode
    $ http://localhost:50070/
     例) http://192.168.0.2:50070/dfshealth.jsp

    JobTracker
    $ http://localhost:50030/
     例)http://192.168.0.2:50030/jobtracker.jsp

    【サンプルテスト】

    [hadoop@colinux hadoop]$ ./bin/hadoop jar hadoop-examples-1.0.1.jar pi 4 1000
    Number of Maps = 4
    Samples per Map = 1000
    Wrote input for Map #0
    Wrote input for Map #1
    Wrote input for Map #2
    Wrote input for Map #3
    Starting Job
    12/05/12 13:24:36 INFO mapred.FileInputFormat: Total input paths to process : 4
    12/05/12 13:24:37 INFO mapred.JobClient: Running job: job_201205121308_0001
    12/05/12 13:24:38 INFO mapred.JobClient: map 0% reduce 0%
    12/05/12 13:25:35 INFO mapred.JobClient: map 25% reduce 0%
    12/05/12 13:25:50 INFO mapred.JobClient: map 50% reduce 0%
    12/05/12 13:26:35 INFO mapred.JobClient: map 75% reduce 0%
    12/05/12 13:26:54 INFO mapred.JobClient: map 75% reduce 16%
    12/05/12 13:27:09 INFO mapred.JobClient: map 100% reduce 25%
    12/05/12 13:27:16 INFO mapred.JobClient: map 100% reduce 33%
    12/05/12 13:27:29 INFO mapred.JobClient: map 100% reduce 100%
    12/05/12 13:27:43 INFO mapred.JobClient: Job complete: job_201205121308_0001
    12/05/12 13:27:45 INFO mapred.JobClient: Counters: 30
    12/05/12 13:27:45 INFO mapred.JobClient: Job Counters
    12/05/12 13:27:45 INFO mapred.JobClient: Launched reduce tasks=1
    12/05/12 13:27:45 INFO mapred.JobClient: SLOTS_MILLIS_MAPS=245935
    12/05/12 13:27:45 INFO mapred.JobClient: Total time spent by all reduces waiting after reserving slots (ms)=0
    12/05/12 13:27:45 INFO mapred.JobClient: Total time spent by all maps waiting after reserving slots (ms)=0
    12/05/12 13:27:45 INFO mapred.JobClient: Launched map tasks=4
    12/05/12 13:27:45 INFO mapred.JobClient: Data-local map tasks=4
    12/05/12 13:27:45 INFO mapred.JobClient: SLOTS_MILLIS_REDUCES=110001
    12/05/12 13:27:45 INFO mapred.JobClient: File Input Format Counters
    12/05/12 13:27:45 INFO mapred.JobClient: Bytes Read=472
    12/05/12 13:27:45 INFO mapred.JobClient: File Output Format Counters
    12/05/12 13:27:45 INFO mapred.JobClient: Bytes Written=97
    12/05/12 13:27:45 INFO mapred.JobClient: FileSystemCounters
    12/05/12 13:27:45 INFO mapred.JobClient: FILE_BYTES_READ=94
    12/05/12 13:27:45 INFO mapred.JobClient: HDFS_BYTES_READ=964
    12/05/12 13:27:45 INFO mapred.JobClient: FILE_BYTES_WRITTEN=108240
    12/05/12 13:27:45 INFO mapred.JobClient: HDFS_BYTES_WRITTEN=215
    12/05/12 13:27:45 INFO mapred.JobClient: Map-Reduce Framework
    12/05/12 13:27:45 INFO mapred.JobClient: Map output materialized bytes=112
    12/05/12 13:27:45 INFO mapred.JobClient: Map input records=4
    12/05/12 13:27:45 INFO mapred.JobClient: Reduce shuffle bytes=112
    12/05/12 13:27:45 INFO mapred.JobClient: Spilled Records=16
    12/05/12 13:27:45 INFO mapred.JobClient: Map output bytes=72
    12/05/12 13:27:45 INFO mapred.JobClient: Total committed heap usage (bytes)=816316416
    12/05/12 13:27:45 INFO mapred.JobClient: CPU time spent (ms)=44840
    12/05/12 13:27:45 INFO mapred.JobClient: Map input bytes=96
    12/05/12 13:27:45 INFO mapred.JobClient: SPLIT_RAW_BYTES=492
    12/05/12 13:27:45 INFO mapred.JobClient: Combine input records=0
    12/05/12 13:27:45 INFO mapred.JobClient: Reduce input records=8
    12/05/12 13:27:45 INFO mapred.JobClient: Reduce input groups=8
    12/05/12 13:27:45 INFO mapred.JobClient: Combine output records=0
    12/05/12 13:27:45 INFO mapred.JobClient: Physical memory (bytes) snapshot=451342336
    12/05/12 13:27:45 INFO mapred.JobClient: Reduce output records=0
    12/05/12 13:27:45 INFO mapred.JobClient: Virtual memory (bytes) snapshot=1873936384
    12/05/12 13:27:45 INFO mapred.JobClient: Map output records=8
    Job Finished in 189.673 seconds
    Estimated value of Pi is 3.14000000000000000000
    [hadoop@colinux hadoop]$

    [hadoop@colinux hadoop]$ /usr/local/hadoop/bin/stop-all.sh
    stopping jobtracker
    localhost: stopping tasktracker
    stopping namenode
    localhost: stopping datanode
    localhost: stopping secondarynamenode
    [hadoop@colinux hadoop]$

    ジョブ実行中の管理画面①

    ジョブ実行中の管理画面②

    ジョブ実行中の管理画面③ 実行時間など

    ジョブ実行中の管理画面④ その他詳細

    ジョブ実行中の管理画面⑤ 

    参考サイト
    Apache Hadoopプロジェクトとは何か?

    Tags:


  • Google Maps API Version 3についての確認

    1)API Key不要(V2までは取得が必要だった)
    2)iPhone/Android対応
    3)JavaScriptの書き方変更

      ヘッダーに以下のGoogle Map API V3の指定箇所を追記。

    それぞれ、”script”タグで閉じる。

    個人の場合
    src=”http://maps.google.com/maps/api/js?v=3&sensor=false type=”text/javascript”

    Googleと契約している場合
    src=”http://maps.google.com/maps/api/js?v=3&sensor=false&client=gme-指定されたID&channel=チャネル指定用” type=”text/javascript”

    function initialize() {
    var latlng = new google.maps.LatLng(35.710269,139.811146);
    var opts = {
    zoom: 15,
    center: latlng,
    mapTypeId: google.maps.MapTypeId.ROADMAP
    };
    var map = new google.maps.Map(document.getElementById(“map_v3″), opts);
    }

    sensor=
    位置検知センサー(GPS)があるスマートフォンなどの機器ではsensor=true
    一般的なパソコン用の地図なら、sensor=false とするそうです。

      BODYに以下のGoogle Map APIを呼び出す追記

    BODY BGCOLOR=”#ffffee” onload=”initialize()”
    ………………………….
    div id=”map_v3″ style=”width: 500px; height: 500px”
    ………………………….

    Google Map Ver3

    Google Map Ver3

    参考:緯度経度
    http://www.geocoding.jp/

    Tags: , , ,


  • クラウドのレスポンスはそれぞれの地域やサービスによって様々です。
    本格的にクラウドのレスポンスを測定する前に、リサーチとして以下のサイトを確認してみては如何でしょうか?
    海外展開する場合にもユーザーへのレスポンスでサービスレベルを計測出来るので、
    指標の一つとして参考になるかと思います。

    IIJ GIO記事

    このサイトはCompuware社が運営しており、Gomezパフォーマンスネットワークを使って各IaaS, PaaSに対する
    レスポンスタイムと稼働率の測定を行っています。
    具体的にレスポンスタイムを取るやり方は、全世界の主要都市(30都市のうちアメリカが18都市ですが)に配置された
    測定箇所から定期的に各IaaS, PaaS上に作ったサイトへアクセスし、そのレスポンスタイムを計測するというものです。
    60秒以上応答がなければダウンしているとみなします。この時、IaaS、PaaS上にはCloudSleuthが模擬ECサイトを構築し、
    まずは40枚程度のサムネイル画像を表示させ、その中から1つの商品をクリックして大きな画像を表示するという
    2つの動作が完了するまでの時間を計測しているとの事

    Global Provider View

    Cloudsleuth Applications

    Cloudsleuth Response

    Cloudsleuth Response

    Cloudsleuth Chart

    Cloudsleuth Response Tables

    Cloudsleuth Response Tables

    Cloudsleuth Availability

    Cloudsleuth Availability

    Tags: , ,


  • コンパイルしたファイルをCacheして、phpの動作を速くする
    APC(Alternative PHP Cache)。
    IISでコンパイル済みASP、ASPX等をCacheするのと同じような設定という認識。

    http://php.net/manual/ja/book.apc.php

    [root@ip-xxxxxxxxx ec2-user]# yum install php-pear php-devel http-devel
    Loaded plugins: fastestmirror, priorities, security, update-motd
    Loading mirror speeds from cached hostfile
    * amzn-main: packages.ap-northeast-1.amazonaws.com
    * amzn-updates: packages.ap-northeast-1.amazonaws.com
    Setting up Install Process
    No package http-devel available.
    Resolving Dependencies
    –> Running transaction check
    —> Package php-devel.x86_64 0:5.3.10-1.18.amzn1 will be installed
    –> Processing Dependency: autoconf for package: php-devel-5.3.10-1.18.amzn1.x86_64
    –> Processing Dependency: automake for package: php-devel-5.3.10-1.18.amzn1.x86_64
    —> Package php-pear.noarch 1:1.9.4-4.8.amzn1 will be installed
    –> Running transaction check
    —> Package autoconf.noarch 0:2.63-5.1.7.amzn1 will be installed
    —> Package automake.noarch 0:1.11.1-2.9.amzn1 will be installed
    –> Finished Dependency Resolution

    その他、gcc,make,PHP dev,apache dev,pcre,apxs関係など
    不足していたパッケージインストール。

    [root@ip-xxxxxxxxx ec2-user]# pecl install APC
    downloading APC-3.1.9.tgz …
    Starting to download APC-3.1.9.tgz (155,540 bytes)
    ……………………………done: 155,540 bytes
    54 source files, building
    running: phpize
    Configuring for:
    PHP Api Version: 20090626
    Zend Module Api No: 20090626
    Zend Extension Api No: 220090626
    config.m4:180: warning: AC_CACHE_VAL(PHP_APC_GCC_ATOMICS, …): suspicious cache-id, must contain _cv_ to be cached
    ../../lib/autoconf/general.m4:1974: AC_CACHE_VAL is expanded from…
    ../../lib/autoconf/general.m4:1994: AC_CACHE_CHECK is expanded from…
    config.m4:180: the top level
    config.m4:180: warning: AC_CACHE_VAL(PHP_APC_GCC_ATOMICS, …): suspicious cache-id, must contain _cv_ to be cached
    ../../lib/autoconf/general.m4:1974: AC_CACHE_VAL is expanded from…
    ../../lib/autoconf/general.m4:1994: AC_CACHE_CHECK is expanded from…
    config.m4:180: the top level
    Enable internal debugging in APC [no] :
    Enable per request file info about files used from the APC cache [no] :
    Enable spin locks (EXPERIMENTAL) [no] :
    Enable memory protection (EXPERIMENTAL) [no] :
    Enable pthread mutexes (default) [yes] :
    Enable pthread read/write locks (EXPERIMENTAL) [no] :
    building in /var/tmp/pear-build-rootBND1Ww/APC-3.1.9

    …… 省略

    Build process completed successfully
    Installing ‘/usr/lib64/php/modules/apc.so’
    Installing ‘/usr/include/php/ext/apc/apc_serializer.h’
    install ok: channel://pecl.php.net/APC-3.1.9
    configuration option “php_ini” is not set to php.ini location
    You should add “extension=apc.so” to php.ini

    [root@ip-xxxxxxxxx ec2-user]# echo “extension=apc.so” > /etc/php.d/apc.ini
    [root@ip-xxxxxxxxx ec2-user]# pecl list
    Installed packages, channel pecl.php.net:
    =========================================
    Package Version State
    APC 3.1.9 stable
    [root@ip-xxxxxxxxx ec2-user]#

    [root@ip-xxxxxxxxx ec2-user]# /etc/init.d/httpd restart
    Stopping httpd: [ OK ]
    Starting httpd: [ OK ]
    [root@ip-xxxxxxxxx ec2-user]#

    APCの状況確認用ページ 「httpでアクセス出来るところにコピー」
    [root@ip-xxxxxxxxx ec2-user]# ls -l /usr/share/pear/apc.php
    -rw-r–r– 1 root root 46148 Apr 7 09:17 /usr/share/pear/apc.php
    [root@ip-xxxxxxxxx ec2-user]#

    APC

    APC

    [ec2-user@ip-xxxxxxxxx ec2-user]$ php -i | grep apc
    Additional .ini files parsed => /etc/php.d/apc.ini,
    apc
    apc.cache_by_default => On => On
    apc.canonicalize => On => On
    apc.coredump_unmap => Off => Off
    apc.enable_cli => Off => Off
    apc.enabled => On => On
    apc.file_md5 => Off => Off
    apc.file_update_protection => 2 => 2
    apc.filters => no value => no value
    apc.gc_ttl => 3600 => 3600
    apc.include_once_override => Off => Off
    apc.lazy_classes => Off => Off
    apc.lazy_functions => Off => Off
    apc.max_file_size => 1M => 1M
    apc.mmap_file_mask => no value => no value
    apc.num_files_hint => 1000 => 1000
    apc.preload_path => no value => no value
    apc.report_autofilter => Off => Off
    apc.rfc1867 => Off => Off
    apc.rfc1867_freq => 0 => 0
    apc.rfc1867_name => APC_UPLOAD_PROGRESS => APC_UPLOAD_PROGRESS
    apc.rfc1867_prefix => upload_ => upload_
    apc.rfc1867_ttl => 3600 => 3600
    apc.serializer => default => default
    apc.shm_segments => 1 => 1
    apc.shm_size => 32M => 32M
    apc.slam_defense => On => On
    apc.stat => On => On
    apc.stat_ctime => Off => Off
    apc.ttl => 0 => 0
    apc.use_request_time => On => On
    apc.user_entries_hint => 4096 => 4096
    apc.user_ttl => 0 => 0
    apc.write_lock => On => On
    [ec2-user@ip-xxxxxxxxx ec2-user]$

    Tags: ,


  • INNODBのデータファイルは,後から追加することが可能。その場合には,innodb_data_file_pathの最後に
    追加すれば可能です。また,最後が自動拡張(autoextend)の場合には,自動拡張(autoextend)指定と
    なっているデータファイルの容量を初期値+8MB倍数で近い値に指定すれば容量固定のデータファイルと
    して運用でき,その後に新たなデータファイルを追加できる。
    運用開始後に削除やサイズの変更はできない。その場合には,InnoDBの再構築が必要となる。

    innodb_grep

    innodb_log_files_in_group=2の設定を変更して、innodb_log_files_in_group = 3に設定変更してみました。

    ————————————————————————————
    [root@colinux DB01]# grep -v ^# /etc/my.cnf | grep innodb
    innodb_data_home_dir = /usr/local/mysql/data/
    innodb_data_file_path = ibdata1:10M;ibdata2:30M:autoextend:max:60M
    innodb_file_per_table
    innodb_log_group_home_dir = /usr/local/mysql/data/
    innodb_log_file_size = 8M
    innodb_buffer_pool_size = 16M
    innodb_log_buffer_size = 32M
    innodb_log_files_in_group = 3
    [root@colinux DB01]# l
    ————————————————————————————

    innodb_grep_option

    ログのオプション追加後

    [root@colinux DB01]# ls -l /usr/local/mysql/data/ib*
    -rw-rw—- 1 mysql mysql 8388608 2009-07-20 23:31 /usr/local/mysql/data/ib_logfile0
    -rw-rw—- 1 mysql mysql 8388608 2009-03-18 00:55 /usr/local/mysql/data/ib_logfile1
    -rw-rw—- 1 mysql mysql 0 2009-07-20 23:31 /usr/local/mysql/data/ib_logfile2
    -rwxrwxrwx 1 root mysql 10485760 2009-07-20 23:31 /usr/local/mysql/data/ibdata1
    -rw-rw—- 1 mysql mysql 31457280 2009-07-20 23:31 /usr/local/mysql/data/ibdata2
    [root@colinux DB01]#

    logtuika

    既にトランザクションログが存在していて,innodb_log_file_sizeの設定値の方が大きい場合,
    サイズアンマッチでInnoDBが起動しないので注意が必要だ。
    トランザクションログは,サイズを大きくすることによって,ローテーション(チェックポイント)の発生回数
    を減らすことが可能だ。トランザクションログのデフォルトは,10MBが2個であるから,
    大量のデータ更新を行う場合などは拡大することを薦める。

    以前社内で運用していたオラクルのREDO LOGは、1024Mを3つ程作成して利用していました。
    ここら辺はパフォーマンスやデータ保護の観点で考えれば良いかと思います。

    MySQL は .frm ファイル内のテーブルのデータ ディレクトリ情報をデータベース ディレクトリに格納します。
    これは全ての MySQL ストレージ エンジンに言える事です。しかし全ての InnoDB テーブルも
    テーブルスペースの内側にある InnoDB 内部データ ディレクトリ内にそれ自体のエントリ
    を持っています。MySQL がテーブルやデータベースをドロップする時、それは .frm ファイルと InnoDB データ
    ディレクトリ内の対応するエントリの両方を削除する必要があります。
    これが、単に .frm ファイルを移動するだけで InnoDB テーブルをデータベース間で移動する事が
    できない理由です。

    InnoDBのクラスタードインデックスの値としては、プライマリキーが使用されるため、プライマリキーの
    値順にレコードが並んだ構成のテーブルとなります。プライマリキーが定義されていないテーブルの場合は、
    InnoDBが自動的に6バイトのローIDと呼ぶフィールドをレコードに追加し、このローID を用いて
    クラスタードインデックスを構成します。

    全ての InnoDB テーブルは、行のデータが格納されている clustered index と呼ばれる特別な
    インデックスを持っています。もし PRIMARY KEY をテーブル上で定義したら、主キーのインデックスは
    集合インデックスになります。

    InnoDB では、非集合インデックス(セカンダリ インデックスとも呼ばれる)内のレコードは、
    行に対して主キー値も含んでいます
    InnoDB は、この主キー値を集合インデックスから行を検索するのに利用します。
    もし主キーが長いと、セカンダリ インデックスがより多くの領域を利用する事に注意しなければならない。

    ————————————————————
    InnoDBのトランザクション機能
    ————————————————————
    ※ 読み込み一貫性機能を持つ
    ※ ロック単位はレコード単位で、ロックのエスカレーションがない
    ※トランザクションの分離レベルは4つ持つ
    ━ リードアンコミッティド
    ━ リードコミッティド
    ━ リピータブルリード
    ━ シリアライザブル

    InnoDBの読み込み一貫性機能の仕組みは、変更前データをロールバックセグメントに格納することに
    よって実現しています。このロールバックセグメント(RBS)は、テーブルスペース内に格納されます。

    ロックエスカレーションが発生しない理由は、少ないリソースを個々のロックを実現しているため。
    ※ 実際には5.0.13以前では、ロックエスカレーションが起こるようです。

    InnoDB は、短い方の文字列の残りの長さが領域で詰められたかのように扱われるように、
    長さの異なる CHAR と VARCHAR 文字列を比較します

    InnoDB テーブルの物理的なレコード構造は、テーブルが作成された時に指定された行フォーマットによって
    決まります。MySQL 5.1 ではデフォルトで InnoDB が

      COMPACT フォーマット

    を利用しますが、
    MySQL の古いバージョンとの

      互換性を保持する為にはREDUNDANT

    フォーマットが有効です。

      参考サイト

    13.5.13. InnoDB テーブルとインデックス構造

    13.5.13.4. 物理的なレコード構造


  • wgetのバージョンにより、cssの扱い方が変わると聞いたので確認してみた。

    http://ja.wikipedia.org/wiki/GNU_Wget
    Wget 1.12 (2009年9月リリース)ウェブ上のCSSからのURL解析機能と国際化資源識別子(IRI)の取り扱いが追加された。

    http://wget.addictivecode.org/FrequentlyAskedQuestions?action=show&redirect=Faq

    5.2. Can Wget download links found in CSS?
    Thanks to code supplied by Ted Mielczarek, Wget can now parse embedded CSS stylesheet data
    and text/css files to find additional links for recursion, as of version 1.12.

    ■比較
    ——————————————————————————–

    [root@colinux tools]# wget --version
    GNU Wget 1.10.2 (Red Hat modified)
    [root@colinux 1.10.2]# wget -p -H http://kakaku.com/

    終了しました --10:09:00--
    ダウンロード完了: 519,822 バイト、76 ファイル
    [root@colinux 1.10.2]#

    [root@colinux wget-1.13]# wget --version
    GNU Wget 1.13 built on linux-gnu.
    [root@colinux 1.13]# wget -p -H http://kakaku.com/

    FINISHED --2011-12-10 10:15:15--
    Total wall clock time: 4.6s
    Downloaded: 121 files, 601K in 0.3s (2.35 MB/s)

    [root@colinux test]# wget -p -H -e robots=off http://kakaku.com/

    FINISHED --2011-12-10 11:09:12--
    Total wall clock time: 6.1s
    Downloaded: 136 files, 727K in 0.3s (2.54 MB/s)
    [root@colinux test]#

    ——————————————————————————–


    CSS1.13ではCSSに書かれている画像全てをダウンロードしてきている。
    htmlを表示する為に、必要な画像以外もダウンロードしてきている?

    [root@colinux wget_compare]# ls -l 1.10.2/ 1.13/
    1.10.2/:
    合計 24
    drwxr-xr-x 3 root root 4096 2011-12-10 10:23 image.akiba.kakaku.com
    drwxr-xr-x 5 root root 4096 2011-12-10 10:23 img.kakaku.com
    drwxr-xr-x 3 root root 4096 2011-12-10 10:23 img2.kakaku.k-img.com
    drwxr-xr-x 4 root root 4096 2011-12-10 10:23 kakaku.com
    drwxr-xr-x 2 root root 4096 2011-12-10 10:23 notice.kakaku.com
    drwxr-xr-x 2 root root 4096 2011-12-10 10:23 www.googleadservices.com

    1.13/:
    合計 24
    drwxr-xr-x 3 root root 4096 2011-12-10 10:28 image.akiba.kakaku.com
    drwxr-xr-x 5 root root 4096 2011-12-10 10:28 img.kakaku.com
    drwxr-xr-x 3 root root 4096 2011-12-10 10:28 img2.kakaku.k-img.com
    drwxr-xr-x 4 root root 4096 2011-12-10 10:28 kakaku.com
    drwxr-xr-x 2 root root 4096 2011-12-10 10:28 notice.kakaku.com
    drwxr-xr-x 2 root root 4096 2011-12-10 10:28 www.googleadservices.com
    [root@colinux wget_compare]#

    [root@colinux wget_compare]# cat wget_1.10.log | egrep -i http:// | awk ‘{print $2}’ > wget_1.10_http.log
    [root@colinux wget_compare]# cat wget_1.13.log | egrep -i http:// | awk ‘{print $3}’ > wget_1.13_http.log

    [root@colinux wget_compare]# diff wget_1.10_http.log wget_1.13_http.log
    77a78,122
    > http://img.kakaku.com/images/home/home_header_bg.gif
    > http://img.kakaku.com/images/icon_login.gif
    > http://img.kakaku.com/images/icon_guide.gif
    > http://img.kakaku.com/images/icon_register.gif
    > http://img.kakaku.com/images/icon_mypage.gif
    > http://img.kakaku.com/images/icon_history.gif
    > http://img.kakaku.com/images/h1_btm.gif
    > http://img.kakaku.com/images/h1bg.gif
    > http://img.kakaku.com/images/itemview/item/bm_tweetn-ja.png
    > http://img.kakaku.com/images/itemview/item/icon_guide.gif
    > http://img.kakaku.com/images/dot_999999.gif
    > http://img.kakaku.com/images/itemview/item/arrow_pagetop.gif
    > http://img.kakaku.com/images/article/pickup/template/link_bk.jpg
    > http://img.kakaku.com/images/home/arrow_next01.gif
    > http://img.kakaku.com/images/itemview/item/tab_bar_default.gif
    > http://img.kakaku.com/images/balloonhelp/balloon_tp.png
    > http://img.kakaku.com/images/balloonhelp/balloon_tp2.png
    > http://img.kakaku.com/images/balloonhelp/balloon_tp3.png
    > http://img.kakaku.com/images/balloonhelp/balloon_md.png
    > http://img.kakaku.com/images/balloonhelp/balloon_bt.png
    > http://img.kakaku.com/images/balloonhelp/balloon_bt2.png
    > http://img.kakaku.com/images/balloonhelp/balloon_bt3.png
    > http://img.kakaku.com/images/category/btn_search_sub.gif
    > http://img.kakaku.com/images/itemlist/btn_search.gif
    > http://img.kakaku.com/images/home/icon_all.png
    > http://img.kakaku.com/images/home/box_bg_in.png
    > http://img.kakaku.com/images/home/box_bg.png
    > http://img.kakaku.com/images/home/h2_top_all.png
    > http://img.kakaku.com/images/home/dotline01.gif
    > http://img.kakaku.com/images/home/bg_search.png
    > http://img.kakaku.com/images/home/bg_category.png
    > http://img.kakaku.com/images/home/home_icon_category.png
    > http://img.kakaku.com/images/home/home_icon_group.png
    > http://img.kakaku.com/images/home/icon_all.gif
    > http://img.kakaku.com/images/home/icon_slider.png
    > http://img.kakaku.com/images/home/h2_sub_all.png
    > http://img.kakaku.com/images/home/icon_reviewall.gif
    > http://img.kakaku.com/images/home/icon_mag.png
    > http://img.kakaku.com/images/home/icon_akiba_all.png
    > http://img.kakaku.com/images/home/trendnews_category.png
    > http://img.kakaku.com/images/home/icon_tv.png
    > http://img.kakaku.com/images/home/menu_boxall_h2.png
    > http://img.kakaku.com/images/home/dotline02.gif
    > http://img.kakaku.com/images/home/attention_arrow.gif
    > http://img.kakaku.com/images/home/menu_group_h2.gif
    [root@colinux wget_compare]#

    [root@colinux css]# cat global_new.css | grep home_header_bg.gif
    background: url(http://img.kakaku.com/images/home/home_header_bg.gif) repeat-x left bottom;
    [root@colinux css]#

    [root@colinux css]# cat home_common.css | grep attention_arrow.gif
    background:url(http://img.kakaku.com/images/home/attention_arrow.gif) no-repeat left top;
    [root@colinux css]#

    wgetのバージョンによって挙動がかわっている事は確認出来た。

    ■インストール
    ——————————————————————————–

    [root@colinux wget-1.13]# wget http://ftp.gnu.org/gnu/wget/wget-1.13.tar.gz
    [root@colinux wget-1.13]# tar zxvf wget-1.13.tar.gz
    [root@colinux wget-1.13]# ./configure --with-ssl=openssl
    [root@colinux wget-1.13]# make
    [root@colinux wget-1.13]# make install
    [root@colinux wget-1.13]# whereis wget
    wget: /usr/local/bin/wget
    [root@colinux wget-1.13]# ln -s /usr/local/bin/wget /usr/bin/wget
    [root@colinux wget-1.13]# wget --version
    GNU Wget 1.13 built on linux-gnu.

    ■古いwgetをアンインストール
    ———————————————————————————

    [root@colinux wget-1.13]# yum list installed | grep wget
    wget.i386 1.10.2-15.fc7 installed
    [root@colinux wget-1.13]# yum remove wget.i386
    Setting up Remove Process
    fedora 100% |=========================| 2.1 kB 00:00
    updates 100% |=========================| 2.3 kB 00:00
    Resolving Dependencies
    --> Running transaction check
    ---> Package wget.i386 0:1.10.2-15.fc7 set to be erased
    --> Finished Dependency Resolution

    Transaction Test Succeeded
    Running Transaction
    Erasing : wget ######################### [1/1]

    Removed: wget.i386 0:1.10.2-15.fc7
    Complete!
    [root@colinux wget-1.13]# yum list installed | grep wget
    [root@colinux wget-1.13]#

    ■その他必要だったパツケージの事前インストール
    ———————————————————————————

    [root@colinux wget-1.13]# yum search openssl | grep dev
    openssl-devel.i386 : Files for development of applications which will use OpenSSL
    openssl-devel.i386 : Files for development of applications which will use OpenSSL
    xmlsec1-openssl-devel.i386 : OpenSSL crypto plugin for XML Security Library
    tcltls-devel.i386 : Header files for the OpenSSL extension for Tcl
    [root@colinux wget-1.13]# yum install openssl-devel.i386 xmlsec1-openssl-devel.i386 tcltls-devel.i386
    Setting up Install Process
    Parsing package install arguments
    Resolving Dependencies
    --> Running transaction check
    ---> Package tcltls-devel.i386 0:1.5.0-11.fc6 set to be updated
    --> Processing Dependency: tcltls = 1.5.0-11.fc6 for package: tcltls-devel
    ---> Package xmlsec1-openssl-devel.i386 0:1.2.9-8.1 set to be updated
    --> Processing Dependency: libxslt-devel >= 1.1.0 for package: xmlsec1-openssl-devel
    --> Processing Dependency: libxml2-devel >= 2.6.0 for package: xmlsec1-openssl-devel
    --> Processing Dependency: xmlsec1 = 1.2.9 for package: xmlsec1-openssl-devel
    --> Processing Dependency: xmlsec1-devel = 1.2.9 for package: xmlsec1-openssl-devel
    --> Processing Dependency: libxmlsec1-openssl.so.1 for package: xmlsec1-openssl-devel
    --> Processing Dependency: xmlsec1-openssl = 1.2.9 for package: xmlsec1-openssl-devel
    ---> Package openssl-devel.i386 0:0.9.8b-15.fc7 set to be updated
    --> Processing Dependency: zlib-devel for package: openssl-devel
    --> Processing Dependency: krb5-devel for package: openssl-devel
    --> Running transaction check
    ---> Package libxslt-devel.i386 0:1.1.24-1.fc7 set to be updated
    --> Processing Dependency: libgcrypt-devel for package: libxslt-devel
    ---> Package libxml2-devel.i386 0:2.6.31-1.fc7 set to be updated
    ---> Package xmlsec1.i386 0:1.2.9-8.1 set to be updated
    ---> Package tcltls.i386 0:1.5.0-11.fc6 set to be updated
    ---> Package krb5-devel.i386 0:1.6.1-9.fc7 set to be updated
    --> Processing Dependency: e2fsprogs-devel for package: krb5-devel
    ---> Package xmlsec1-devel.i386 0:1.2.9-8.1 set to be updated
    ---> Package zlib-devel.i386 0:1.2.3-10.fc7 set to be updated
    ---> Package xmlsec1-openssl.i386 0:1.2.9-8.1 set to be updated
    --> Running transaction check
    ---> Package e2fsprogs-devel.i386 0:1.40.2-3.fc7 set to be updated
    ---> Package libgcrypt-devel.i386 0:1.2.4-1 set to be updated
    --> Processing Dependency: libgpg-error-devel for package: libgcrypt-devel
    --> Running transaction check
    ---> Package libgpg-error-devel.i386 0:1.4-2 set to be updated
    --> Finished Dependency Resolution

    Dependencies Resolved

    =============================================================================
    Package Arch Version Repository Size
    =============================================================================
    Installing:
    tcltls-devel i386 1.5.0-11.fc6 fedora 4.3 k
    xmlsec1-openssl-devel i386 1.2.9-8.1 fedora 87 k
    Installing for dependencies:
    e2fsprogs-devel i386 1.40.2-3.fc7 updates 627 k
    krb5-devel i386 1.6.1-9.fc7 updates 1.1 M
    libgcrypt-devel i386 1.2.4-1 fedora 274 k
    libgpg-error-devel i386 1.4-2 fedora 17 k
    libxml2-devel i386 2.6.31-1.fc7 updates 2.1 M
    libxslt-devel i386 1.1.24-1.fc7 updates 324 k
    openssl-devel i386 0.9.8b-15.fc7 updates 1.8 M
    tcltls i386 1.5.0-11.fc6 fedora 28 k
    xmlsec1 i386 1.2.9-8.1 fedora 176 k
    xmlsec1-devel i386 1.2.9-8.1 fedora 667 k
    xmlsec1-openssl i386 1.2.9-8.1 fedora 71 k
    zlib-devel i386 1.2.3-10.fc7 fedora 81 k

    Transaction Summary
    =============================================================================
    Install 14 Package(s)
    Update 0 Package(s)
    Remove 0 Package(s)

    Total download size: 7.4 M
    Is this ok [y/N]:

    その他参考になるURL
    Compare cURL Features with Other Download Tools

    http://curl.haxx.se/docs/comparison-table.html

    Tags:


  • MYSQLでの日付比較演算子の確認

    ## 月跨ぎでページがエラーになってしまっていた。


    $query = "select GET_D,TRUNCATE(avg(TAKEN),2) AVGT from T_Confirmation
    where GET_D > CURDATE() - 8 group by GET_D";

    ## DB側にてデータの確認

    mysql> select GET_D,TRUNCATE(avg(TAKEN),2) AVGT from T_Confirmation
    where GET_D > CURDATE() - 8 group by GET_D;
    Empty set, 1 warning (0.02 sec)

    ## データはあるので、where句の部分を確認。
    ## 実際にQueryを実行してみると以下のような日付が返ってきた。


    mysql>select CURDATE() - 8;
    +---------------+
    | CURDATE() - 8 |
    +---------------+
    | 20100893 |
    +---------------+
    1 row in set (0.00 sec)


    mysql> select CURRENT_DATE() - 8;
    +--------------------+
    | CURRENT_DATE() - 8 |
    +--------------------+
    | 20100893 |
    +--------------------+
    1 row in set (0.00 sec)

    ## 日付の表示を正しいものに修正する為に、DATA_ADDを利用する事にした。

    mysql> SELECT DATE_ADD(CURRENT_DATE,INTERVAL 8 DAY);
    +—————————————+
    | DATE_ADD(CURRENT_DATE,INTERVAL 8 DAY) |
    +—————————————+
    | 2010-09-09 |
    +—————————————+
    1 row in set (0.00 sec)

    mysql> SELECT DATE_ADD(CURRENT_DATE,INTERVAL -8 DAY);
    +—————————————-+
    | DATE_ADD(CURRENT_DATE,INTERVAL -8 DAY) |
    +—————————————-+
    | 2010-08-24 |
    +—————————————-+
    1 row in set (0.00 sec)

    mysql>

    ## 正しくデータが表示される事を確認

    mysql> select GET_D,TRUNCATE(avg(TAKEN),2) AVGT from T_Confirmationwhere GET_D > DATE_ADD(CURRENT_DATE,INTERVAL -8 DAY) group by GET_D;
    +————+——+
    | GET_D | AVGT |
    +————+——+
    | 2010-08-25 | 0.77 |
    | 2010-08-26 | 0.48 |
    | 2010-08-27 | 0.32 |
    | 2010-08-28 | 0.30 |
    | 2010-08-29 | 0.28 |
    | 2010-08-30 | 0.35 |
    | 2010-08-31 | 0.34 |
    +————+——+
    7 rows in set (0.02 sec)

    mysql>


    select substring(GET_T,1,2) as GET_T,COUNT(*) as TOTAL from
    T_Confirmation where MONTH(GET_D)= MONTH(DATE_ADD(CURRENT_DATE,INTERVAL -1 DAY))
    AND TAKEN >= 10 Group by substring(GET_T,1,2);

    MONTH(DATE_ADD(CURRENT_DATE,INTERVAL -1 DAY))

    ## 全てのPHPファイルを修正する為に、ワンライナーで一気に書き換えで終了。
    ## ワンライナーでフォルダー配下のPHPを全て修正して解決!!

    perl -pi -e 's/CURDATE\(\) - 8/DATE_ADD\(CURRENT_DATE,INTERVAL -8 DAY\)/' *.php

    Tags: , , , , ,


  • MYSQLにてテーブルサイズの調査を行う。


    select
    table_name, engine, table_rows as tbl_rows, avg_row_length as rlen,
    floor((data_length+index_length)/1024/1024) as allMB,
    floor((data_length)/1024/1024) as dMB,
    floor((index_length)/1024/1024) as iMB
    from information_schema.tables
    where table_schema=database()
    order by (data_length+index_length) desc;


    +------------------+--------+----------+-------+-------+------+------+
    | table_name | engine | tbl_rows | rlen | allMB | dMB | iMB |
    +------------------+--------+----------+-------+-------+------+------+
    | mt_searchlog | MyISAM | 2799447 | 146 | 418 | 390 | 27 |
    | mt_entry | MyISAM | 9434 | 12629 | 114 | 113 | 1 |
    | mt_log | MyISAM | 59543 | 257 | 17 | 14 | 3 |
    | mt_entryphotoAll | MyISAM | 80260 | 47 | 5 | 3 | 1 |
    | mt_trackback | MyISAM | 8908 | 278 | 2 | 2 | 0 |
    | mt_template | MyISAM | 373 | 2870 | 1 | 1 | 0 |
    | mt_placement | MyISAM | 9447 | 18 | 0 | 0 | 0 |
    | mt_entryphoto | MyISAM | 9079 | 37 | 0 | 0 | 0 |
    | mt_session | MyISAM | 2536 | 96 | 0 | 0 | 0 |
    | mt_tbping | MyISAM | 493 | 473 | 0 | 0 | 0 |
    | mt_rfdata | MyISAM | 256 | 288 | 0 | 0 | 0 |
    | mt_plugindata | MyISAM | 7 | 3074 | 0 | 0 | 0 |
    | mt_category | MyISAM | 151 | 52 | 0 | 0 | 0 |
    | mt_errorlist | MyISAM | 19 | 572 | 0 | 0 | 0 |
    | mt_blog | MyISAM | 4 | 379 | 0 | 0 | 0 |
    | mt_tag | MyISAM | 5 | 22 | 0 | 0 | 0 |
    | mt_templatemap | MyISAM | 12 | 77 | 0 | 0 | 0 |
    | mt_author | MyISAM | 3 | 114 | 0 | 0 | 0 |
    | mt_permission | MyISAM | 14 | 88 | 0 | 0 | 0 |
    | mt_categoryinfo | MyISAM | 11 | 207 | 0 | 0 | 0 |
    | mt_config | MyISAM | 1 | 80 | 0 | 0 | 0 |
    | test2 | MyISAM | 2 | 7 | 0 | 0 | 0 |
    | mt_accessranking | MyISAM | 0 | 0 | 0 | 0 | 0 |
    | mt_comment | MyISAM | 0 | 0 | 0 | 0 | 0 |
    | mt_notification | MyISAM | 0 | 0 | 0 | 0 | 0 |
    | mt_objecttag | MyISAM | 0 | 0 | 0 | 0 | 0 |
    | mt_fileinfo | MyISAM | 0 | 0 | 0 | 0 | 0 |
    | mt_ipbanlist | MyISAM | 0 | 0 | 0 | 0 | 0 |
    | mt_sendping | MyISAM | 0 | 0 | 0 | 0 | 0 |
    +------------------+--------+----------+-------+-------+------+------+
    29 rows in set (0.00 sec)

    mysql>

    ■参考

    http://opendatabaselife.blogspot.com/2009_08_01_archive.html

    http://webmemo.uzuralife.com/category/pkweryrfvid.html/?search=&opt=0&order=0&from=380

    Tags: , ,

« Previous Entries   

Recent Comments