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)