zookeeper
---------------
协同服务系统。
分布式系统协同处理。
小集群.
配置完全分布式zk集群
---------------------
1.挑选3台主机
s201 ~ s203
2.每台机器都安装zk
tar
环境变量
3.配置zk配置文件
s201 ~ s203
[/soft/zk/conf/zoo.cfg]
...
dataDir=/home/centos/zookeeper
server.1=s201:2888:3888
server.2=s202:2888:3888
server.3=s203:2888:3888
4.在每台主机的/home/centos/zookeeper中添加myid,内容分别是1,2,3
[s201]
$>echo 1 > /home/centos/zookeeper/myid
[s202]
$>echo 2 > /home/centos/zookeeper/myid
[s203]
$>echo 3 > /home/centos/zookeeper/myid
5.启动服务器集群
$>zkServer.sh start
...
6.查看每台服务器的状态
$>zkServer.sh status
7.修改zk的log目录
部署细节
----------------
1.在jn节点分别启动jn进程
$>hadoop-daemon.sh start journalnode
2.启动jn之后,在两个NN之间进行disk元数据同步
a)如果是全新集群,先format文件系统,只需要在一个nn上执行。
[s201]
$>hadoop namenode -format
b)如果将非HA集群转换成HA集群,复制原NN的metadata到另一个nn.
1.步骤一
[s201]
$>scp -r /home/centos/hadoop/dfs centos@s206:/home/centos/hadoop/
2.步骤二
在新的nn(未格式化的nn)上运行一下命令,实现待命状态引导。
[s206]
$>hdfs namenode -bootstrapStandby //需要s201为启动状态,提示是否格式化,选择N.
3)在一个NN上执行以下命令,完成edit日志到jn节点的传输。
$>hdfs namenode -initializeSharedEdits
#查看s202,s203是否有edit数据.
4)启动所有节点.
[s201]
$>hadoop-daemon.sh start namenode //启动名称节点
$>hadoop-daemons.sh start datanode //启动所有数据节点
[s206]
$>hadoop-daemon.sh start namenode //启动名称节点
HA管理
-----------------
$>hdfs haadmin -transitionToActive nn1 //切成激活态
$>hdfs haadmin -transitionToStandby nn1 //切成待命态
$>hdfs haadmin -transitionToActive --forceactive nn2//强行激活
$>hdfs haadmin -failover nn1 nn2 //模拟容灾演示,从nn1切换到nn2
完全0开始部署hadoop HDFS的HA集群,使用zk实现自动容灾
-------------------------------------------------
1.停掉hadoop的所有进程
2.删除所有节点的日志和本地数据.
3.改换hadoop符号连接为ha
4.登录每台JN节点主机,启动JN进程.
[s202-s204]
$>hadoop-daemon.sh start journalnode
5.登录其中一个NN,格式化文件系统(s201)
$>hadoop namenode -format
6.复制201目录的下nn的元数据到s206
$>scp -r ~/hadoop/* centos@s206:/home/centos/hadoop
7.在未格式化的NN(s206)节点上做standby引导.
7.1)需要保证201的NN启动
$>hadoop-daemon.sh start namenode
7.2)登录到s206节点,做standby引导.
$>hdfs namenode -bootstrapStandby
7.3)登录201,将s201的edit日志初始化到JN节点。
$>hdfs namenode -initializeSharedEdits
8.启动所有数据节点.
$>hadoop-daemons.sh start datanode
9.登录到206,启动NN
$>hadoop-daemon.sh start namenode
10.查看webui
http://s201:50070/
http://s206:50070/
11.自动容灾
11.1)介绍
自动容灾引入两个组件,zk quarum + zk容灾控制器(ZKFC)。
运行NN的主机还要运行ZKFC进程,主要负责:
a.健康监控
b.session管理
c.选举
11.2部署容灾
a.停止所有进程
$>stop-all.sh
b.配置hdfs-site.xml,启用自动容灾.
[hdfs-site.xml]
<property>
<name>dfs.ha.automatic-failover.enabled</name>
<value>true</value>
</property>
c.配置core-site.xml,指定zk的连接地址.
<property>
<name>ha.zookeeper.quorum</name>
<value>s201:2181,s202:2181,s203:2181</value>
</property>
d.分发以上两个文件到所有节点。
12.登录其中的一台NN(s201),在ZK中初始化HA状态
$>hdfs zkfc -formatZK
13.启动hdfs进程.
$>start-dfs.sh
14.测试自动容在(206是活跃节点)
$>kill -9
配置RM的HA自动容灾
----------------------
1.配置yarn-site.xml
<property>
<name>yarn.resourcemanager.ha.enabled</name>
<value>true</value>
</property>
<property>
<name>yarn.resourcemanager.cluster-id</name>
<value>cluster1</value>
</property>
<property>
<name>yarn.resourcemanager.ha.rm-ids</name>
<value>rm1,rm2</value>
</property>
<property>
<name>yarn.resourcemanager.hostname.rm1</name>
<value>s201</value>
</property>
<property>
<name>yarn.resourcemanager.hostname.rm2</name>
<value>s206</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address.rm1</name>
<value>s201:8088</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address.rm2</name>
<value>s206:8088</value>
</property>
<property>
<name>yarn.resourcemanager.zk-address</name>
<value>s201:2181,s202:2181,s203:2181</value>
</property>
2.使用管理命令
//查看状态
$>yarn rmadmin -getServiceState rm1
//切换状态到standby
$>yarn rmadmin -transitionToStandby rm1
3.启动yarn集群
$>start-yarn.sh
4.hadoop没有启动两个resourcemanager,需要手动启动另外一个
$>yarn-daemon.sh start resourcemanager
5.查看webui
6.做容灾模拟.
kill -9
hive的注意事项
------------------
如果配置hadoop HA之前,搭建了Hive的话,在HA之后,需要调整路径信息.
主要是修改mysql中的dbs,tbls等相关表。
Hbase
--------------------
hadoop数据库,分布式可伸缩大型数据存储。
用户对随机、实时读写数据。
十亿行 x 百万列。
版本化、非关系型数据库。
Feature
----------------
Linear and modular scalability. //线性模块化扩展方式。
Strictly consistent reads and writes. //严格一致性读写
Automatic and configurable sharding of tables //自动可配置表切割
Automatic failover support between RegionServers. //区域服务器之间自动容在
Convenient base classes for backing Hadoop MapReduce jobs with Apache HBase tables. //
Easy to use Java API for client access. //java API
Block cache and Bloom Filters for real-time queries //块缓存和布隆过滤器用于实时查询
Query predicate push down via server side Filters //通过服务器端过滤器实现查询预测
Thrift gateway and a REST-ful Web service that supports XML, Protobuf, and binary data encoding options //
Extensible jruby-based (JIRB) shell //
Support for exporting metrics via the Hadoop metrics subsystem to files or Ganglia; or via JMX //可视化
面向列数据库。
hbase存储机制
-------------------
面向列存储,table是按row排序。
搭建hbase集群
---------------
0.选择安装的主机
s201 ~ s204
1.jdk
略
2.hadoop
略
3.tar
略
4.环境变量
略
5.验证安装是否成功
$>hbase version
5.配置hbase模式
5.1)本地模式
[hbase/conf/hbase-env.sh]
EXPORT JAVA_HOME=/soft/jdk
[hbase/conf/hbase-site.xml]
...
<property>
<name>hbase.rootdir</name>
<value>file:/home/hadoop/HBase/HFiles</value>
</property>
5.2)伪分布式
[hbase/conf/hbase-env.sh]
EXPORT JAVA_HOME=/soft/jdk
[hbase/conf/hbase-site.xml]
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property
<property>
<name>hbase.rootdir</name>
<value>hdfs://localhost:8030/hbase</value>
</property>
5.3)完全分布式(必做)
[hbase/conf/hbase-env.sh]
export JAVA_HOME=/soft/jdk
export HBASE_MANAGES_ZK=false
[hbse-site.xml]
<!-- 使用完全分布式 -->
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<!-- 指定hbase数据在hdfs上的存放路径 -->
<property>
<name>hbase.rootdir</name>
<value>hdfs://s201:8020/hbase</value>
</property>
<!-- 配置zk地址 -->
<property>
<name>hbase.zookeeper.quorum</name>
<value>s201:2181,s202:2181,s203:2181</value>
</property>
<!-- zk的本地目录 -->
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/home/centos/zookeeper</value>
</property>
6.配置regionservers
[hbase/conf/regionservers]
s202
s203
s204
7.启动hbase集群(s201)
$>start-hbase.sh
8.登录hbase的webui
http://s201:16010
zookeeper01 详解、安装与配置、集群
最新推荐文章于 2021-11-27 12:52:25 发布