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)