Changes between Version 15 and Version 16 of waue/2010/0401
- Timestamp:
- Sep 27, 2010, 5:25:59 PM (15 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
TabularUnified waue/2010/0401
v15 v16 22 22 23 23 1. 將原始碼解壓縮後的完整路徑為 /opt/thrift,並進入該目錄 24 24 25 {{{ 25 26 $ cd /opt/thrift … … 27 28 28 29 2. 安裝之前請先確定有裝了 libboost (c++的函式庫),以及make時會用到的yacc flex 30 29 31 {{{ 30 32 $ sudo apt-get install libboost-dev automake libtool flex bison g++ python python-all-dev … … 32 34 33 35 3. 接著編譯與安裝thrift 36 34 37 {{{ 35 38 $ ./bootstrap.sh … … 39 42 }}} 40 43 41 4. 產生 出可以存取hbase的php44 4. 產生可以存取hbase的php函式庫 42 45 43 46 {{{ … … 47 50 }}} 48 51 49 *以上若動作都確實完成,可以看到已經產生出一個資料夾: gen-php/Hbase/ 並且包含兩個php檔案,此兩個php檔可以幫助你存取hbase,不過此 php 檔還是需要其他檔案當函式庫52 以上若動作都確實完成,可以看到已經產生出一個資料夾: gen-php/Hbase/ 並且包含兩個php檔案,此兩個php檔可以幫助你存取hbase,不過此 php 檔還是需要其他檔案當函式庫 50 53 51 = 三、透過 thrift 存取 hbase = 52 53 == 檢查hadoop 與 hbase 是否正常運作中 == 54 5. 在/var/www內產放入php的thrift函式庫 54 55 55 56 {{{ 56 $ jps 57 26582 HQuorumPeer 58 26658 HMaster 59 16222 TaskTracker 60 16138 JobTracker 61 15952 NameNode 62 16047 DataNode 57 $ mkdir /var/www/hbase 58 $ cp -r /opt/hbase/thrift/lib/php/src /var/www/hbase/thrift 59 $ chown -R $USER:$USER /var/www/hbase 60 $ mkdir /var/www/hbase/thrift/packages 61 $ cp -r hbase_thrift_src/gen-php/* /var/www/hbase/thrift/packages/ 63 62 }}} 64 63 65 == 啟動 hbase 的 thrift daemon == 64 65 = 三、測試 php -> thrift -> hbase = 66 67 1. 複製範例程式 DemoClient.php 68 69 {{{ 70 $ cp /opt/hbase/src/examples/thrift/DemoClient.php /var/www/hbase/DemoClient.php 71 }}} 72 73 2. 修改 /var/www/hbase/DemoClient.php 74 75 {{{ 76 $GLOBALS['THRIFT_ROOT'] = '/var/www/hbase/thrift'; 77 ..... 78 $socket = new TSocket( 'localhost’', 9090 ); 79 ..... 80 }}} 81 82 83 3. 啟動hbase 的 thrift 服務 66 84 67 85 {{{ … … 69 87 }}} 70 88 71 == 複製 thrift 的php 專案到網頁伺服器 == 72 * 複製到 /var/www/hbase 內 89 4. 用瀏覽器開啟 [http://localhost/hbase/DemoClient.php] 73 90 74 91 {{{ 75 $ cp -r /opt/thrift-0.2.0/lib/php/src /var/www/hbase/thrift76 $(請用 chown 指令來改/var/www/hbase 下的權限)77 $ mkdir /var/www/hbase/thrift/packages78 $ cp -r hbase_thrift_src/gen-php/* /var/www/hbase/thrift/packages/79 }}}80 81 * 完成後/var/www/hbase /的目錄結構為82 {{{83 92 #!text 84 ./85 |-- DemoClient.php (下一節會提到)86 `-- thrift87 |-- Thrift.php88 |-- autoload.php89 |-- ext90 | `-- thrift_protocol91 | |-- config.m492 | |-- php_thrift_protocol.cpp93 | `-- php_thrift_protocol.h94 |-- packages95 | `-- Hbase96 | |-- Hbase.php97 | `-- Hbase_types.php98 |-- protocol99 | |-- TBinaryProtocol.php100 | `-- TProtocol.php101 `-- transport102 |-- TBufferedTransport.php103 |-- TFramedTransport.php104 |-- THttpClient.php105 |-- TMemoryBuffer.php106 |-- TNullTransport.php107 |-- TPhpStream.php108 |-- TSocket.php109 |-- TSocketPool.php110 `-- TTransport.php111 }}}112 113 = 四、測試 =114 115 == 複製DemoClient.php 到測試目錄/var/www/hbase/ ==116 {{{117 $ cp /opt/hbase/src/examples/thrift/DemoClient.php /var/www/hbase/DemoClient.php118 }}}119 120 == 修改 /var/www/hbase/DemoClient.php 的THRIFT_ROOT 參數 ==121 122 {{{123 #!php124 $GLOBALS['THRIFT_ROOT'] = '/var/www/hbase/thrift';125 126 $socket = new TSocket( 'localhost', 9090 );127 }}}128 129 == 執行 ==130 * 用瀏覽器打開 http://localhost/hbase/DemoClient.php 並檢視網頁內容131 * 出現錯誤訊息為正常現象,可修改程式碼解決132 {{{133 #!php134 PHP Warning: Module 'mcrypt' already loaded in Unknown on line 0135 <html>136 <head>137 <title>DemoClient</title>138 </head>139 <body>140 <pre>141 93 scanning tables... 94 found: t1 95 found: t2 142 96 creating table: demo_table 143 97 column families in demo_table: 144 98 column: entry, maxVer: 10 145 99 column: unused, maxVer: 3 146 147 Fatal error: Uncaught exception 'Exception' with message 'shouldn't get here!' in /var/www/DemoClient.php:158148 Stack trace:149 #0 {main}150 thrown in /var/www/DemoClient.php on line 158151 100 }}} 152 101