Hbase僞分佈式安裝Hadoop2.9.2_Hbase2.0.3並安裝thrift服務器,改裝hbase-thrift庫

1、檢查電腦是否安裝JDK1.8,沒有就安裝
2、設置ssh免密登陸
首先安裝openssh服務
yum install openssh-server
配置可以免密碼登陸本機
ssh-keygen  -t  dsa -P '' -f  ~/.ssh/id_dsa
把id_dsa.pub(公鑰)追加到授權的key中去
cat  ~/.ssh/id_dsa.pub  >>  ~/.ssh/authorized_keys
設置完成,一般第一次設置需要登陸密碼,出現其他選擇yes即可
測試免密登陸
hostname #查看服務器主機名
ssh 服務器主機名
3、安裝Hadoop
參數的詳細信息參考:https://blog.csdn.net/qq_24726509/article/details/85041906
第一步:下載hadoop,解壓,並設置好環境變量
wget http://mirrors.hust.edu.cn/apache/hadoop/common/hadoop-2.9.2/hadoop-2.9.2.tar.gz
tar -zxvf hadoop-2.9.2.tar.gz /usr/local/src/app
在全局區域設置環境變量,雖然還沒有下載Hbase,確定Hbase的安裝目錄,一次性設置好環境變量
vi /etc/profile
export HBASE_HOME= #Hbase的安裝目錄
export HADOOP_HOME=#Hadoop的安裝目錄
export HADOOP_INSTALL=$HADOOP_HOME
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export YARN_HOME=$HADOOP_HOME
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export  HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib:$HADOOP_COMMON_LIB_NATIVE_DIR"
export PATH=$PATH:$JAVA_HOME/bin:/usr/pgsql-9.6/bin:$HADOOP_HOME/sbin:$HADOOP_HOME/bin:$HBASE_HOME/bin

第二步:配置hadoop.env.sh,一般是在/etc/hadoop目錄下
export JAVA_HOME=#jdk的安裝目錄
export HADOOP_PREFIX=#hadoop的安裝目錄
第三步:配置core_site.xml
vi core_site.xml


<property>
  <name>fs.default.name</name>
    <value>hdfs://macxiao:9000</value>  #macxiao爲服務器主機名稱
</property>
<property>
  <name>io.file.buffer.size</name>
    <value>409600</value> #設置序列文件中使用的讀/寫緩衝區的大小
</property>
<property>
  <name>hadoop.tmp.dir</name>
    <value>file:///usr/local/src/app/hadoop/data/tempdata</value> #設置臨時文件的目錄
</property>
<property>
  <name>hadoop.home.dir</name>
    <value>file:///usr/local/src/app/hadoop/data/hdfsdata</value> #設置主目錄的路徑
</property>
第四步:配置mapred-site.xml
cp mapred-site.xml.template mapred-site.xml
vi mapred-site.xml

<property>
  <name>mapreduce.framework.name</name>
  <value>yarn</value>  #執行MapReduce作業的運行時框架.local,classic ,yarn  這裏配置yarn
 </property>
第五步:配置hdfs-site.xml,首先建好data,namenode,datanode文件
mkdir /usr/local/src/app/hadoop/data
mkdir /usr/local/src/app/hadoop/data/namenode
mkdir /usr/local/src/app/hadoop/data/datanode
<property>
 <name>dfs.replication</name>
 <value>1</value>   #設置數據的副本數
</property>
<property>
  <name>dfs.name.dir</name>
  <value>file:///usr/local/src/app/hadoop/data/namenode</value>  #本地磁盤目錄,NN存儲fsimage文件的地方
</property>
<property>
  <name>dfs.data.dir</name>
  <value>file:///usr/local/src/app/hadoop/data/datanode</value>#本地磁盤目錄,HDFS數據應該存儲Block的地方
</property>

第五步:格式化HDFS
在hadoop的bin文件下執行
hdfs namenode -format
第六步:啓動Hadoop
在sbin文件夾下,執行
./start-all.sh
關閉Hadoop
./stop-all.sh
jps#查看啓動文件的個數
Hbase的單節點安裝:
第一步:下載,解壓Hbase
在官網上下載好,傳到服務器,並解壓
tar -zxbf 下載好的Hbase文件
第二步:配置參數
配置文件一般都在Hbase安裝目錄的conf文件下,
vi hbase-env.sh
export JAVA_HOME= #jdk的安裝目錄
export HBASE_HOME=#hbase的安裝目錄
export HBASE_CLASSPATH=$HBASE_HOME/conf
export HBASE_MANAGES_ZK=true  #true表示使用內部的Zookeeper,如果爲false,就需要單獨安裝Zookeeper服務器
保存退出,

vi  hbase-site.xml

<property>
  <name>hbase.cluster.distributed</name>
  <value>true</value># 1、true表示是分佈式  2、false表示單機模式,Hbase和Zookeeper會運行在同一個JVM裏面。
</property>
<property>
  <name>hbase.rootdir</name>
  <value>hdfs://macxiao:9000/hbase</value>  #macxiao爲服務器主機名,配置hbase存儲在hadoop的hdfs的位置
</property>
<property>
  <name>dfs.replication</name>
  <value>1</value>
</property>

第三步:在bin文件夾內執行

./start-hbase.sh

 

4、開始安裝thrift服務器
4.1、thrift是hbase列存儲服務端與客戶端的連接工具,開始安裝thrift依賴包.
yum install automake libtool flex bison pkgconfig gcc-c++ boost-devel libevent-devel zlib-devel python-devel ruby-devel openssl-devel
4.2、開始安裝thrift依賴存儲包

https://sourceforge.net/projects/boost/files/boost/   進入該地址,選擇需要安裝的版本下載好上傳到hbase目錄下解壓,並進入該目錄.

執行./bootstrap.sh
由於是默認路徑,只需把安裝路徑裏的文件轉到/usr/lib下即可

cp /usr/local/lib/libboost_unit_test_framework.a /usr/lib64/
執行sudo ./b2 install     編譯安裝,等待時間比較久
安裝thrift服務器
https://mirrors.tuna.tsinghua.edu.cn/apache/thrift/
下載上傳解壓
進入解壓目錄

./configure
make
make install
安裝完成之後執行thrift -version,查看當前版本號
 

5、python安裝thrift包

pip install thrift
pip install hbase-thrift

然後進入hbase-thrift包安裝目錄
Hbase.py  由於是python2編寫,兼容python3,需要把except 異常處理都修改

  把所有的except IOError,io 替換except IOError as  io     except IllegalArgument,ia 替換except IllegalArgument as ia
然後從路徑導入ttypes 會報沒有該模塊,可通過sys.path.append的方式導入,即可連接
sys.path.append(r"E:\dsxm\py368\Lib\site-packages\hbase")
from ttypes import *

 

------------------

連接示例:
 

from thrift.transport import TSocket

from hbase import Hbase

from hbase import ttypes

host = "*.*.*.*"
port = 9090
framed = False
socket = TSocket.TSocket(host, port)
if framed:
    transport = ttypes.TTransport.TFramedTransport(socket)
else:
   transport = ttypes.TTransport.TBufferedTransport(socket)

protocol = ttypes.TBinaryProtocol.TBinaryProtocol(transport)

client = Hbase.Client(protocol)

print(client)

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章