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)

 

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