惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Google Online Security Blog
Google Online Security Blog
G
Google Developers Blog
云风的 BLOG
云风的 BLOG
阮一峰的网络日志
阮一峰的网络日志
L
Lohrmann on Cybersecurity
Security Latest
Security Latest
博客园 - 【当耐特】
Microsoft Security Blog
Microsoft Security Blog
N
Netflix TechBlog - Medium
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
The GitHub Blog
The GitHub Blog
Vercel News
Vercel News
The Register - Security
The Register - Security
T
Tenable Blog
D
Docker
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
有赞技术团队
有赞技术团队
C
CXSECURITY Database RSS Feed - CXSecurity.com
Simon Willison's Weblog
Simon Willison's Weblog
S
Schneier on Security
Scott Helme
Scott Helme
C
Cyber Attacks, Cyber Crime and Cyber Security
C
CERT Recently Published Vulnerability Notes
罗磊的独立博客
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
H
Hackread – Cybersecurity News, Data Breaches, AI and More
K
Kaspersky official blog
Know Your Adversary
Know Your Adversary
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
T
The Blog of Author Tim Ferriss
aimingoo的专栏
aimingoo的专栏
Spread Privacy
Spread Privacy
P
Proofpoint News Feed
博客园 - 聂微东
NISL@THU
NISL@THU
T
Threat Research - Cisco Blogs
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
A
Arctic Wolf
V2EX - 技术
V2EX - 技术
H
Heimdal Security Blog
C
Check Point Blog
D
DataBreaches.Net
H
Help Net Security
www.infosecurity-magazine.com
www.infosecurity-magazine.com
L
LangChain Blog
宝玉的分享
宝玉的分享
V
Vulnerabilities – Threatpost
PCI Perspectives
PCI Perspectives
Recent Announcements
Recent Announcements
Martin Fowler
Martin Fowler

博客园 - 季石磊

jps 报process information unavailable解决办法 Jobtracker重启Job recovery过程分析 Hbase性能优化 Poor performance running Hadoop on RHEL 6.2 or later when transparent hugepage compaction is enabled ldconfig几个需要注意的地方[转] [转]HBase性能优化方法总结 centos 查看版本 关于Hbase集群需要使用DNS域名解析的体会 修改Hadoop集群的备份数 [转载]ext4的noatime 指定HADOOP_HOME位置的三种方法 Windows下 Python 安装包的配置 django1.4测试环境 css样式,图片路径问题解决 Python用subprocess的Popen实现用户切换 CentOS 6安装JDK及系统配置 mapreduce程序运行避免手动删除output目录 HDFS配置设置 Hadoop运维操作 HDFS Permissions & Acls
hadoop & hbase 上下线
季石磊 · 2013-05-27 · via 博客园 - 季石磊

 线上部署hadoop、hbase 一般都是采用存储、计算一对一的方式,即每个节点启动 hadoop 的 datanode(以下简称dn)& tasktracker(以下简称tt) 再加 hbase regionserver(以下简称rs),hadoop namenode(以下简称nn)和 hbase master(以下简称master)一般在负载较轻的情况下可以部署在同一个节点上。

    生产集群在长时间运行过程中不可避免存在机器损坏替换的情况,计算资源需求随着业务数据量的增长也会不断提高,这需要我们对集群进行扩容或缩减。

    集群改变规模后,最为彻底的刷新方式就是重启整个集群,但重启会导致服务中断,hadoop hbase提供了较好的在线动态调整方式,结合网上的资料整理如下。

hadoop节点增删

dn和tt的增加:

参考:

http://www.cnblogs.com/rilley/archive/2012/02/13/2349858.html

http://rritw.com/a/bianchengyuyan/C__/20120815/205760.html

1、修改nn的配置文件 hadoop/conf/slaves ,添加新节点,并同步配置到所有新节点的机器上.

2、启动dn和tt服务:

1

2

hadoop/bin/hadoop-daemon.sh start datanode

hadoop/bin/hadoop-daemon.sh start tasktracker

该步骤如果可以确定 slaves 中节点都正常,也可以直接在 nn 上运行 hadoop/bin/start-all.sh 来启动.

3、开启balancer (默认10%):

1

hadoop/bin/start-balancer.sh ?-threshold 5

dn和tt的删除:

一般如果需要删除的节点较少,那么可以直接在需要删除的节点上stop所有应用即可。

较为安全的方式推荐使用exclude文件,注意在删除对应节点时,添加到exclude中的hostname或ip必须和report中看到的一致,否则会无法踢出,一般都是ip地址.

一、删除dn:

1、修改nn conf/hdfs-site.xml文件, 指定exclude文件位置:

1

2

3

4

<property>

    <name>dfs.hosts.exclude</name>

    <value>/home/admin/hadoop/conf/dfs_excludes</value>

</property>

2、dfs_excludes中添加需要下线的dn,如:

1

2

3

4

vi /home/admin/hadoop/conf/dfs_excludes

172.16.1.10

172.16.1.11

172.16.1.12

3、在nn上执行下面指令开始迁移数据,完成后这些服务器上的 DataNode 将被停掉:

1

hadoop/bin/hadoop dfsadmin -refreshNodes

4、通过下面方法检查下线是否完成:

1

2

3

4

5

hadoop/bin/hadoop dfsadmin -report

# 正在执行的会显示:Decommission Status : Decommission in progress

# 执行完毕后会显示:Decommission Status : Decommissioned

# 正常服务节点显示:Decommission Status : Normal

也可以通过 web-UI 以下两个状态值来查看剩余需要balance的块数和进度:

1

2

Decommissioning Nodes              : 0

Number of Under-Replicated Blocks  : 0

二、删tt


1、修改 jobtracker(一般和nn部署在一起)的配置文件 hadoop/conf/mapred-site.xml,指定exclude文件位置:

1

2

3

4

<property>

    <name>mapred.hosts.exclude</name>

    <value>/home/admin/hadoop/conf/tt_excludes</value>

</property>

2、编辑 tt_excludes中添加需要下线的tt:

1

2

3

4

/home/admin<span style="background-color:#ffd700;">/</span>hadoop/conf/tt_excludes

hadoop-server-10

hadoop-server-11

hadoop-server-12

3、在jobtracker上执行下面命令下线列表里面的JobTracker:

1

2

<pre class="brush:as3;">hadoop/bin/hadoop mradmin -refreshNodes</pre>

4、验证结果:

操作后会立即生效,可以到 hadoop 的 web-UI 中查看节点的个数是否已经如期变化.

***** 以上操作完成后,可以清空两个 exclude 文件,并修改 slaves 文件为最新.

HBase 节点增删

    基于hadoop hdfs部署后本身的存储容灾完全由hdfs接管,master结合zookeeper(以下简称zk)监控所有的在线rs保证所有的region在线正 常服务,rs将region信息都加载到内存中,一旦某个rs异常,master检测到该rs不可用后(该rs原先负责的region会转到zk中的 /hbase/unassigned)会及时重新分配unassigned region,让其他在线rs接管下线的rs服务的region;如果新增一个rs节点,master检测到新节点后,会在较短的时间段内启动 balancer,达到在线rs的region负载均衡(所有region平等,不管真实大小,只按region数量做均衡,更精细化的均衡策略在 0.92版本之后可以自己定制 可以参考 http://www.searchtb.com/2012/05/hbase_loadbalance_plugins.html   https://issues.apache.org/jira/browse/HBASE-3373)
    在增删hbase rs时,最好避开高峰期,并确认 如果删掉的rs是服务META 、ROOT表,master log中成功切换至别的rs,如果有异常需要立即处理。

RS 增加:

1、在 HMaster 上(一般和nn部署在同一节点) 的 hbase/conf/regionservers 中增加需要增加的节点.

2、重新启动加载 RegionServer 配置列表(执行前需要确认是否已经有死掉的节点仍在列表之中):

3、可以在 hbase 的 web-UI 中查看增加的节点是否生效.

RS 删除:

1、在 HMaster 上(一般和nn部署在同一节点) 执行下面命令下线对应服务器上的 ReginServer:

1

2

3

4

for HOSTNAME in `cat exclude_list`;do

    hbase/bin/graceful_stop.sh $HOSTNAME

    sleep 5

done

2、由于下线 RS 时会关闭 hbase 的 LB,所以完成后要手工打开 balance:

1

2

hbase(main):001:0> balance_switch true

3、可以在 hbase 的 web-UI 中查看删除的节点是已经在 Dead Region Servers 的列表里.

Hadoop & Hbase 单台节点启动和关闭:

1

2

3

4

5

6

7

8

9

# 停止:

hbase/bin/hbase-daemon.sh stop regionserver

hadoop/bin/hadoop-daemon.sh stop tasktracker

hadoop/bin/hadoop-daemon.sh stop datanode

# 启动:

hadoop/bin/hadoop-daemon.sh start datanode

hadoop/bin/hadoop-daemon.sh start tasktracker

hbase/bin/hbase-daemon.sh start regionserver