搭建HDFS的HA环境(HBase安装及配置,启动)

网友投稿 1093 2022-05-30

1、在软件包所在目录解压Hbase压缩包

[root@win1 soft]# tar -zxvf hbase-1.3.2-bin.tar.gz

[root@win1 soft]# ls

hadoop-2.7.7       hbase-1.3.2          jdk1.8.0_161            zookeeper-3.4.12

hadoop-2.7.7.tar.gz  hbase-1.3.2-bin.tar.gz  jdk-8u161-linux-x64.tar.gz  zookeeper-3.4.12.tar.gz

把解压后的hbase-1.3.2传到2和3

[root@win1 conf]# scp -pr /hadoop/soft/hbase-1.3.2 win2:/hadoop/soft

[root@win1 conf]# scp -pr /hadoop/soft/hbase-1.3.2 win3:/hadoop/soft

编辑环境变量/root/.bash_profile

[root@win1 conf]# vi /root/.bash_profile

# .bash_profile

# Get the aliases and functions

if [ -f ~/.bashrc ]; then

. ~/.bashrc

fi

# User specific environment and startup programs

JAVA_HOME=/hadoop/soft/jdk1.8.0_161

ZK_HOME=/hadoop/soft/zookeeper-3.4.12

HADOOP_HOME=/hadoop/soft/hadoop-2.7.7

HBASE_HOME=/hadoop/soft/hbase-1.3.2

PATH=$PATH:$HOME/bin:$JAVA_HOME/bin:$ZK_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$HBASE_HOME/bin

CLASSPATH=$JAVA_HOME/lib:$HADOOP_HOME/lib:$HBASE_HOME/lib

export PATH CLASSPATH

编辑完成后记得使用source /root/.bash_profile把环境变量加载到内存!

命令行输入start-h能够TAB出start-hbase.sh 即为编辑成功,如下↓

[root@win1 conf]# start-hbase.sh

把配置好的环境变量传到2和3

注意:Hbase安装需要修改hbase-env.sh、hbase-site.xml、regionservers 配置文件,(默认没有backup_masters,需要自己创建

具体如下↓

3、修改hbase-env.sh配置文件

A、[root@win1 conf]# vi hbase-env.sh 编辑修改hbase-env.sh配置文件

(修改jdk的位置,由于使用的jdk1.8,需要注释PerSize,由于Hbase默认使用自带的zookeeper,在这里我们需要启用外部zookeeper,需要将HBASE_MANAGES_ZK设置为false)

export JAVA_HOME=/hadoop/soft/jdk1.8.0_161 如下图↓

B、注释PerSize 如下图↓

# export HBASE_MASTER_OPTS="$HBASE_MASTER_OPTS -XX:PermSize=128m -XX:MaxPermSize=128m -XX:ReservedCodeCacheSize=256m"

# export HBASE_REGIONSERVER_OPTS="$HBASE_REGIONSERVER_OPTS -XX:PermSize=128m -XX:MaxPermSize=128m -XX:ReservedCodeCacheSize=256m"

修改export HBASE_PID_DIR路径,且需要在hbase-1.3.2下创建pids文件夹

export HBASE_PID_DIR=/hadoop/soft/hbase-1.3.2/pids

把HBASE_MANAGES_ZK设置为false 具体如下图↓

export HBASE_MANAGES_ZK=false

4、编辑hbase-site.sh配置文件,最少配置以下内容↓

搭建HDFS的HA环境(HBase安装及配置,启动)

[root@win1 conf]# vi hbase-site.xml

hbase.rootdir

hdfs://hahadoop/hbase

hbase.cluster.distributed

true

hbase.zookeeper.quorum

win1:2181,win2:2181,win3:2181

hbase.zookeeper.property.dataDir

/hadoop/soft/zookeeper-3.4.12

hbase.zookeeper.property.clientPort

2181

编辑regionservers配置文件

列出你希望运行的全部HRegionServer,一行写一个主机名(就像Hadoop里的slaves一样)。列在这里的server会随着集群的启动而启动,集群的停止而停止。

[root@win1 conf]# vi regionservers

win1

win2

win3

6、创建并编辑backup-masters,里面指定备份的Hmaster

[root@win1 conf]# vi backup-masters

win2

由于Hbase依赖于hdfs,为保证hbase的副本数和hdfs一致,需要集群运行hdfs-site.xml复制到habse的conf目录下。结果如下↓

[root@win1 conf]# cp /hadoop/soft/hadoop-2.7.7/etc/hadoop/hdfs-site.xml (空格)/hadoop/soft/hbase-1.3.2/conf/

二、Hadoop启动

以下配置需保证前面配置无误,且需要JN、ZK、都已启动且环境变量正确无误,使用jps显示以下信息:↓

[root@win1 ~]# jps

1891 JournalNode

1944 Jps

1774 QuorumPeerMain

1、格式化namenode

[root@win1 ~]# hdfs namenode -format 格式化hdfs文件系统

(仅在第一次启动之前需要格式化,后面启动不需要格式化)

2、启动namenode

[root@win1 ~]# hadoop-daemon.sh start namenode 在节点1启动namenode

[root@win1 ~]# jps

2368 Jps

1891 JournalNode

2293 NameNode

1774 QuorumPeerMain

3、同步第一个namenode的生成元信息

[root@win2 ~]# hdfs namenode -bootstrapStandby 用第二个namenode同步第一个namenode的生成元信息,正确输出如下图↓。

(如果不进行这一步备namenode由于缺少元信息无法启动,在hadoop2的namnode日志中会出现ERROR namenode.NameNode: Failed to start namenode.

org.apache.hadoop.hdfs.server.common.InconsistentFSStateException: Directory /hadoop/nn is in an inconsistent state: storage directory does not exist or is not accessible.)

4、格式化zkfc

[root@win1 ~]# hdfs zkfc -formatZK 格式化zkfc无报错即为成功

(仅在第一次启动之前需要格式化,后面启动不需要格式化)。(如果不进行这一步,会出现namenode无法向zookeeper注册,会出现两个namenode都为备的状态。)

格式化如下图↓

没有报错即为成功,如下图:↓

5、使用start-all.sh同时启动hdfs及yarn,如下图↓

(若没有配置ssh互信,启动时需要输入每一台机器的密码),可能节点二的resourcemanager没有启动,必须要手动启动。

Win1:↓

Win2:↓手动启动resourcemanager

[root@win2 ~]# yarn-daemon.sh start resourcemanager

6、启动JobHistoryServer

[root@win1 ~]# mr-jobhistory-daemon.sh start historyserver 启动JobHistoryServer,这样mapreduce运行历史任务可以查看。(可选)

启动成功可运行jps查看每个节点上运行的进程,正常情况如下。↓

[root@win1 ~]# jps

9个进程↑

[root@win2 ~]# jps

8个进程↑

7、查看namenode状态

使用hdfs haadmin -getServiceState nn1和hdfs haadmin -getServiceState nn2查看准备namenode的状态,如下图↓

[root@win1 ~]# hdfs haadmin -getServiceState nn1

[root@win1 ~]# hdfs haadmin -getServiceState nn2

8、访问hdfs的web界面

访问hdfs的web界面,使用浏览器打开http://125.221.44.11:50070和http://125.221.44.12结果如下图↓,能看到datanode的数据和启动datanode相同,表示启动成功。

9、查看ResourceManager状态

[root@win1 ~]# yarn rmadmin -getServiceState rm1

standby

[root@win1 ~]# yarn rmadmin -getServiceState rm2

active

10、访问yarn的web界面

访问yarn的web界面,使用浏览器打开http://125.221.44.11:8088,结果如下图↓,表示yarn正常启动。(如果resourcemanager是主备部署,登录备resourcemanager时候会自动跳转到主。)

三、HBASE的启动

注意:hbase依赖于zookeeper以及hdfs,需要保证hdfs及zookeeper已经正常运行,才可以开始启动hbase

1、使用start-hbase.sh启动hbase的HMaster、RegionServer。

[root@win1 ~]# start-hbase.sh 如下图↓

2、使用jps确保每个节点上对应的进程已成功启动。

Win1如下图↓

Win2如下图↓

Win3如下图↓

3、使用Web输入

http

://192.168.10.30:16010

,登录hbase的web界面。如下图↓

四、HDFS HA测试

本实验为搭建HDFS的HA环境,现测试HDFS的HA,

最小化系统需要安装组件,命令如→: yum -y install psmisc

下载完成后,必须重启集群→(关闭集群stop-all.sh 启动集群start-all.sh)

查看hadoop1为active,杀掉hadoop1的namenode,hadoop2的namenode自动升级为active,如下图↓

[root@win1 ~]# hdfs haadmin -getServiceState nn1

active

[root@win1 ~]# hdfs haadmin -getServiceState nn2

standby

五、YARN HA测试

1、查看Win1的ResourceManager为active,杀掉Win1的ResourceManager,Win2的ResourceManager自动升级为active,如下图↓

在Win1使用yarn-daemon.sh start resourcemanager启动resourcemanager,

并使用yarn rmadmin -getServiceState rm1和yarn rmadmin -getServiceState rm2查看yarn状态,如下图↓

[root@win1 conf]# yarn-daemon.sh start resourcemanager 开启resourcemanager,关闭用stop

[root@win1 conf]# yarn rmadmin -getServiceState rm1

[root@win1 conf]# yarn rmadmin -getServiceState rm2

六、HBase HA测试

1、打开hbase的web界面,查看主备的hbase。

http://125.221.44.11:16010

2、在win1使用jps查看HMaster的进程id,并使用kill杀掉HMaster。

[root@win1 ~]# kill 19371 杀掉HMaster

使用web界面查看备用HMaster的状态,如下图,备用Hmaster已经成功提升为主Hmaster

七、HDFS测试

1、在hadoop1上使用hdfs 命令上传文件到hdfs文件系统,执行hdfs dfs -put /etc/passwd  / 上传文件到hdfs的跟目录,使用hdfs dfs –ls /  查看hdfs跟下面的文件,正确结果如下下图。

[root@win1 etc]# hdfs dfs -put /etc/passwd / 用hdfs 命令上传文件到hdfs文件系统

[root@win1 etc]# hdfs dfs -ls / 查看hdfs跟下面的文件

(passwd是etc目录下已有的,若上传目录里没有的文件则不行,如下图↓)

2、下载文件到家目录

[root@win2 ~]# hdfs dfs -get /passwd /root/ 下载刚刚上传的文件到家目录

八、Hbase测试

1、使用hbase shell进入hbase的shell命令行。(上述会有一个jar冲突的警告,如果需要消除,需要移除hbase上那个jar包即可)

[root@win1 etc]# hbase shell 进入hbase的shell命令行

2、查看集群状态和节点数量,使用status

hbase(main):001:0> status

3、创建表,create ‘test’,‘c1’( hbase创建表create命令语法为:表名、列名1、列名2、列名3……)

hbase(main):005:0> create 'test','c1'

4、查看表,list

hbase(main):006:0> list

5、给表写入数据

hbase(main):003:0> put 'test','rowkey','c1','test'

导入数据的命令put的语法为表名、行值、列名(列名可加冒号,表示这个列簇下面还有子列)、列数据。如图

6、全表扫描数据(scan 'test')

hbase(main):006:0> scan 'test'

7、查询表的数据(get ‘test’,’rowkey’),根据条件查询,查询test表中row为rowkey的值。

hbase(main):008:0>  get 'test','rowkey'

8、删除表,在删除表之前需要先让表失效才能删除。使用disable ‘test’,使表失效。drop ‘test’删除表。

hbase(main):009:0> disable 'test'

hbase(main):010:0> drop 'test'

hbase(main):011:0> list

九、Yarn2.0测试(wordcount任务)

1、原文件位于本机,执行如下命令:↓

[root@hadoop etc]# hadoop jar /hadoop/soft/hadoop-2.7.7/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.7.jar wordcount  file:///etc/passwd hdfs://125.221.44.11:8020/wordcount 任务完成如下图↓

2、使用hdfs dfs -cat hdfs://125.221.44.11:8020/wordcount/part-r-00000,查看输出结果如下

3、将文件上传到hdfs,使用hdfs dfs -put /etc/passwd hdfs://192.168.10.30/ 执行命令如下

[root@hadoop ~]# hadoop jar /hadoop/soft/hadoop-2.7.7/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.7.jar wordcount /passwd  /wordcountpasswd

4、使用hdfs dfs -cat hdfs://125.221.44.11:8020/wordcountpasswd/part-r-00000,查看输出结果,如下图↓

#——————————————————————————————————

[root@hadoop ~]# hdfs dfs -cat hdfs://125.221.44.11:8020/wordcountpasswd/part-r-00000

cat: Operation category READ is not supported in state standby

原因:NameNode处于standby状态

#——————————————————————————————————

附件: 搭建HDFS的HA环境(HBase安装及配置,启动).docx 1.42MB 下载次数:0次

Hadoop HBase 大数据

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:JSR - 133 都解决了哪些问题?
下一篇:java成神之路——网络编程
相关文章