Alan Moment
  • Introduction
  • 智慧家庭
    • Fibaro 系統整合便宜的 IP Cam
  • Life
    • 用AWS Glacier做最後的冷資料備份
    • 如何在macOS修改影音檔日期
  • 3D Printer
    • Atom2.5EX 之血淚組裝
    • 列印經驗紀錄
      • SpoolHolder
    • 製圖經驗
      • Turntable
      • 重製Atom3散熱風扇
    • 線材經驗
      • PETG
        • 首測
  • Kubernetes
    • 使用Kops建立Kubernetes
    • 使用HelmV2
    • Kubernetes的技術問題排解技巧
  • PHP
    • 管理PHP Library的利器Composer
    • PHP安裝JSON
    • Phalcon首發
    • Gearman Job Worker for PHP
    • Laravel 首發 !!!
    • Data Encrypt & Decrypt
  • Python
    • Django + Python 開發環境建置
  • Android
    • Android zipcode library of maven
    • Android use foreign object of OrmLite
    • ProgressBar while loading ListView of Android
    • AsyncTask download image by the Android
    • Use Thread control Android UI
    • Android Universal Image Loader
  • Ruby on Rails
    • Install rmagick on the Windows of Ruby on Rails
    • Ruby on Rails deploy on Heroku
    • Ruby on Rails 小問題
  • React
    • Ditched AngularJS for React
  • Tessel
    • 很潮的 Tessel
    • Connect to Slack on Tessel
    • Baby Help on Tessel
  • Node.js
    • CentOS 安装 Node.js 0.8.5
  • OOAD
    • Injection Principle Design Pattern
  • Linux
    • SSH免密碼登入遠端電腦
    • Apache與Tomcat的結合
    • The bash auto build
  • Hadoop
    • CentOS 5.5 + Hadoop 0.20
    • CentOS 5.5 + Hbase 0.94.8
    • Hadoop + Hbase 叢集環境
    • Hadoop 溝通橋梁之 Thrift 0.7
    • 使用MapReduce之替代方案Hive
    • 使用Sqoop將MySQL資料匯入Hbase
  • Database
    • 吃足苦頭的Mssql
  • IDE
    • Netbeans console中文亂碼解決方法
    • 用NetBeans開發Ruby On Rails
  • Agile
    • 淺談我的Agile
  • 協作工具
    • 建置專屬自己的Github之Gitlab
    • Gitlab 4.1 upgrade to Gitlab 6.0超偷懶方法
    • Install Phabricator and run on the Gitlab
    • Phabricator 基本應用
    • Phabricator review code應用
    • Redmine之基本建置與Scrum應用
    • Omnibus Gitlab 7 基礎操作
    • Git Push Notify to Slack on Gitlab
    • phabricator-extensions-Sprint 無法抓到正確的 Story Points
  • 其他
    • 慶祝Octopress開張
    • 走在時尚的尖端! Ghost
    • 大搬家
    • 網頁教學初體驗
    • 網路攻擊很猖狂
Powered by GitBook
On this page
  • 檢查並安裝依賴的函式庫
  • 建立Thrift
  • Generate code
  • 檢查環境
  • 複製產生的PHP程式碼到專案
  • 啟動Thrift
  • 測試
  • 發生錯誤

Was this helpful?

  1. Hadoop

Hadoop 溝通橋梁之 Thrift 0.7

PreviousHadoop + Hbase 叢集環境Next使用MapReduce之替代方案Hive

Last updated 3 years ago

Was this helpful?

會建置是因為我希望用PHP向溝通。Thrift是全世界第一大國Facebook釋出的開源項目之一,主要用來串接不同語言,讓他們之間能互相溝通。

這裡我就是用來讓PHP也能使用MapReduce和Hbase溝通的。在安裝的時候吃了不少苦頭阿...腦細胞死了不少。就算現在再架設一遍,我相信會再痛苦一次的。

檢查並安裝依賴的函式庫

$ yum search libboost

libboost c++的函式庫

$ yum search yacc
$ yum search flex

make時會用到

$ yum search autoconf
$ yum search automake 

automake 1.9以上actomake必須安裝2.6以上版本否則Compiler出錯。如果没有可自行編譯安装

$ yum search libtool
$ yum search flex
$ yum search bison
$ yum search g++
$ yum search gcc-c++
$ yum search python-devel
$ yum search libevent-devel
$ yum search zlib-devel
$ yum search ruby-devel

$ yum install automake libtool flex bison pkgconfig g++ gcc-c++ boost-devel libevent-devel zlib-devel python-devel ruby-devel

安裝全部套件後還是不能用再試試看,這個Compiler會超久

$ wget 'http://downloads.sourceforge.net/project/boost/boost/1.45.0/boost_1_45_0.tar.bz2'
$ tar jxf boost_1_45_0.tar.bz2
$ cd boost_1_45_0
Build Boost:
$ ./bootstrap.sh
$ ./bjam

建立Thrift

$ cd /opt
$ wget 'http://apache.stu.edu.tw//thrift/0.7.0/thrift-0.7.0.tar.gz'
$ mv thrift-0.7.0 /opt/thrift

沒錯,我通通都放到opt底下囉。

5.0以後的版本應該不用底下的檢查了(可見得我已經記錄多久了) 檢查/opt/thrift/底下有沒有bootstrap.sh,沒有再複製

$ cp /opt/thrift/contrib/fb303/bootstrap.sh /opt/thrift/

執行bootstrap.sh

$ ./bootstrap.sh
$ cd /opt/thrift
$ cp -r /opt/hbase/src/main/java/org/apache/hadoop/hbase/thrift ./hbase_thrift_src
$ cd hbase_thrift_src

Generate code

$ thrift --gen php /opt/hbase/src/main/resources/org/apache/hadoop/hbase/thrift/Hbase.thrift

檢查環境

檢查hbase-env.sh

$ vim /opt/hbase/conf/hbase-env.sh
export JAVA_HOME=/usr/java/jdk1.6.0_26

檢查.bashrc

$ vim ~/.bashrc
JAVA=$JAVA_HOME/bin/java
export JAVA_HOME=/usr/java/jdk1.6.0_26

複製產生的PHP程式碼到專案

複製到/var/www/hbase內

$ mkdir /var/www/hbase
$ chown $USER:$USER /var/www/hbase
$ cp -r /opt/thrift/lib/php/src /var/www/hbase/thrift
$ mkdir /var/www/hbase/thrift/packages
$ cp -r /opt/thrift/hbase_thrift_src/gen-php/* /var/www/hbase/thrift/packages/

啟動Thrift

$ /opt/hbase/bin/hbase thrift start

要在背景執行請在start加上&

測試

複製DemoClient.php 到測試目錄/var/www/hbase/

$ cp /opt/hbase/src/examples/thrift/DemoClient.php /var/www/hbase/DemoClient.php

發生錯誤

發生過無法啟動的時候,我是重新複製lib

$ rm /opt/hbase/lib/hadoop-core-0.20-*
$ cp /opt/hadoop/hadoop-0.20.2-core.jar  ./

參考教學:

Jun 18th, 2013 11:57:00am

官網或是

忘了的同學請回顧

Thrift
Hadoop + Hbase 叢集環境
下載
CentOS 5.5 + Hadoop
http://sites.google.com/site/waue0920/Home/hbase/hadoop-hbase-thrift-php-an-zhuang-she-ding-cheng-shi-she-ji
http://blog.sina.com.cn/s/blog_5dce657a0100f0ou.html