1.hadoop已经安装
我是三台虚拟机hadoop102、hadoop103、hadoop104
2.zookeeper已经安装
##二、 zookeeper安装
安装文件apche-zookeeper-bin.tar.gz(看清楚是带bin的!!)
清华源下载
# 解压 tar zxvf apche-zookeeper-bin-***.tar.gz -C /opt/module/ # 改名 mv zookeeper-版本号 zookeeper # 改掉zookeeper的conf文件名,因为zookeeper默认使用zoo.cfg 配置文件 如果没有回提示找不到配置文件 #在/zookeeper/conf目录下 cp zoo_sample.cfg zoo.cfg # zookeeper下创建 mkdir -p zkdata sudo chmod 766 zkdata # 修改zoo.cfg dataDir=/opt/module/zookeeper/zkdata # 增加下面配置 #######################cluster########################## server.2=hadoop102:2888:3888 server.3=hadoop103:2888:3888 server.4=hadoop104:2888:3888 #其中 dataDir是zookeeper数据存放位置,server.y=XXXX:2888:3888是zookeeper每台配置的信息,y代表zookeeper编号及myid文件对应的内容,XXXX是服务器对应的IP地址或者主机名
在/opt/module/zookeeper/zkData目录下创建一个myid的文件
touch myid
vi myid
添加对应id,比如2
xsync同步(分布式必要):没有同步脚本就要scp传送了
xsync /opt/module # scp scp -r /opt/module/zookeeper ownyoung@hadoop103:/opt/module scp -r /opt/module/zookeeper ownyoung@hadoop104:/opt/module
再把hadoop103的myid改成3,hadoop104的myid改成4
启动zookeeperbin/zkServer.sh start
关闭:bin/zkServer.sh stop
每台都要单独启动
成功!
可以看到选出三号为leader
参考:
https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/119511593
安装hbasehadoop版本和hbase有对应关系,我是3.1.3和hbase2.2.2
同样,下载完hbase进行tar解压到/opt/module/
tar zxvf hbase-2.2.2-bin.tar.gz -C /opt/module/
然后mv改名
mv hbase-2.2.2 hbase配置环境变量
这里可能会有差异,要看你的配置文件是哪个了
一般是/etc/profile,我是sudo vim /etc/profile.d/my_env.sh
vim /etc/profile # 添加 export Hbase_HOME=/opt/module/hbase export PATH=$PATH:$Hbase_HOME/bin # wq保存退出,更新环境变量使生效 source /etc/profile # 就可以查看hbase version hbase version配置文件修改
hbase目录下有个conf
cd conf
我们要修改hbase-site.xml和hbase-env.sh
1)修改hbase-env.sh
#添加环境变量 export JAVA_HOME=/opt/module/jdk1.8.0_212 export HADOOP_HOME=/opt/module/hadoop-3.1.3 export Hbase_HOME=/opt/module/hbase # 修改Hbase_MANAGES_ZK的值为false export Hbase_MANAGES_ZK=false # export Hbase_MANAGES_ZK=true,如果为true,表示hbase使用自带的zookeeper,这种只适合单机模式
(2)配置文件hbase-site.xml
hbase.zookeeper.quorum hadoop102,hadoop103,hadoop104 hbase.zookeeper.property.dataDir /export/zookeeper hbase.rootdir hdfs://hadoop102:8020/hbase hbase.cluster.distributed true hbase.unsafe.stream.capability.enforce false
回到hadoop的core-site.xml文件:
fs.defaultFS hdfs://hadoop102:8020
(3)conf目录下修改regionservers文件,从节点的主机名
hadoop102 hadoop103 hadoop104
(4)(可省略)添加backup-masters,配置hmaster的备份节点
$ vim backup-masters
hadoop104
(5)(必要,避免后面的拒绝连接问题)将hadoop的hdfs-site.xml 和 core-site.xml 放在hbase的conf目录下
cp /opt/module/hadoop-3.1.3/etc/hadoop/core-site.xml /opt/module/hbase/conf/ cp /opt/module/hadoop-3.1.3/etc/hadoop/hdfs-site.xml /opt/module/hbase/conf/同步,文件较大时间挺长
xsync /opt/module/hbase
启动hbase集群:
start-hbase.sh
可能报错:
SLF4J: Class path contains multiple SLF4J bindings. SLF4J: Found binding in [jar:file:/opt/module/hadoop-3.1.3/share/hadoop/common/lib/slf4j-log4j12-1.7.25.jar!/org/slf4j/impl/StaticLoggerBinder.class]
都是关于SLF4J的,说的是jar包有重复,我们删掉hbase目录下的就行,根据提示的路径:
# 进到目录 cd /opt/module/hbase/lib/client-facing-thirdparty # 删除,建议mv命令,慎用rm sudo mv slf4j-log4j12-1.7.25.jar /home/ # 三台都要这么操作
解决后成功启动:
[ownyoung@hadoop102 bin]$ jps 11076 HMaster 11557 Jps 8006 NodeManager 7704 DataNode 11258 HRegionServer 8172 QuorumPeerMain 7533 NameNode启动顺序:
|-------zookeeper------zkServer.sh start--------zkServer.sh stop—|
|-------dfs-------------start-dfs.sh-------------stop-dfs.sh---------|
|-------yarn-----------start-yarn.sh------------stop-yarn.sh------- |
|-------hbase----------start-hbase.sh ---------stop-hbase.sh------|
|------spark—/opt/module/spark/sbin/start-all.sh–stop–all.sh-|



