hadoop集群维护手册
hadoop—集群维护手册

Had oop部分启动命令:start-all.sh停止命令:stop-all.shHadoop运行增加集群的存储量/节点如果只增加集群的存储量,建议增加Hadoop datanode节点。
步骤:1、停掉集群包括Hadoop和hbase,当然也可以不停掉,直接在hadoop namenode的配置文件Slave里添加新节点的host,别忘了在host文件里也要添加新添加的host名。
2、执行bin/start-all.sh启动集群3、以下选择一种1)如果不手动作平衡,插入的数据将会放在新添加的节点上。
以趋于平衡。
2)如果手动平衡,则 start-balancer.sh和调用bin/sHadoop balancer命令相似,也可加参数-threshold 5(threshold 是平衡阈值,默认是10%,值越低各节点越平衡,但消耗时间也更长)。
在使用start-balancer.sh时,如果在hdfs-site.xml里面没有配置dfs.balance.bandwidthPerSec,那么集群hdfs内部默认使用1M/S的速度移动数据(so slowly...),我们可以通过在hdfs-site.xml 里面配置dfs.balance.bandwidthPerSec来加快balance的速度。
最开始我们配置的是20m/S ,然后结果是导致job运行变得不稳定,出现一些意外的长map单元,某些reduce时间处理变长(整个集群负载满满的情况下,外加20m/s的balance),在前天的中国hadoop年会上听淘宝调整的为10m/s,需要调整后实验,看看情况如何。
另外再修改dfs.balance.bandwidthPerSec参数后,需要在namenode上运行stop-dfs.sh start-dfs.sh重启hdfs生效。
我们可以通过stop-balancer.sh停掉平衡任务。
作完平衡后,启动hbase,正常。
cdh运维手册

cdh运维手册CDH运维手册是一份详细介绍CDH(Cloudera Distribution of Hadoop)运维过程的指南。
本文旨在帮助运维人员更好地掌握CDH的部署、管理、维护及优化方法,以确保集群稳定高效运行。
I.引言CDH是基于Apache Hadoop的分布式大数据处理平台,包括Hadoop、Spark、Hive、Pig等组件。
在实际应用中,CDH面临着复杂的运维挑战。
为了提高运维效率,降低故障风险,我们需要深入了解CDH的运维流程。
II.CDH简介CDH(Cloudera Distribution of Hadoop)是Cloudera公司推出的一款大数据处理平台。
它包含了Hadoop的核心组件,如HDFS、YARN、MapReduce等,以及一系列数据处理工具,如Spark、Hive、Pig等。
CDH 提供了一整套大数据解决方案,满足企业在数据存储、分析、挖掘等方面的需求。
III.CDH运维流程A.环境搭建:根据业务需求,选择合适的硬件资源、网络环境和操作系统。
搭建CDH集群,包括配置核心组件和相关工具。
B.数据迁移:将原始数据迁移至CDH集群,根据数据特点选择合适的存储格式和压缩算法。
C.运维管理:监控CDH集群的运行状态,包括资源使用情况、任务进度、日志等。
定期进行性能评估,优化集群配置。
D.故障排查:遇到问题时,快速定位故障原因,采取相应措施进行解决。
E.性能优化:针对CDH集群的性能瓶颈,采取调整参数、优化任务流程等措施,提高集群性能。
F.安全防护:确保CDH集群的安全性,防范外部攻击和内部安全风险。
IV.运维工具与技巧A.常用工具:掌握CDH运维过程中所需的常用工具,如Hadoop DistCp、Hive Query、Spark Submission等。
B.自动化脚本:编写自动化脚本,实现批量任务调度、日志收集、性能监控等功能。
C.监控与报警:搭建CDH集群监控系统,实现实时报警,确保问题及时发现并处理。
hadoop—集群维护手册.doc

Had oop部分启动命令:start-all.sh停止命令:stop-all.shHadoop运行增加集群的存储量/节点如果只增加集群的存储量,建议增加Hadoop datanode节点。
步骤:1、停掉集群包括Hadoop和hbase,当然也可以不停掉,直接在hadoop namenode的配置文件Slave里添加新节点的host,别忘了在host文件里也要添加新添加的host名。
2、执行bin/start-all.sh启动集群3、以下选择一种1)如果不手动作平衡,插入的数据将会放在新添加的节点上。
以趋于平衡。
2)如果手动平衡,则start-balancer.sh和调用bin/sHadoop balancer命令相似,也可加参数-threshold 5(threshold 是平衡阈值,默认是10%,值越低各节点越平衡,但消耗时间也更长)。
在使用start-balancer.sh时,如果在hdfs-site.xml里面没有配置dfs.balance.bandwidthPerSec,那么集群hdfs内部默认使用1M/S的速度移动数据(so slowly...),我们可以通过在hdfs-site.xml里面配置dfs.balance.bandwidthPerSec来加快balance的速度。
最开始我们配置的是20m/S ,然后结果是导致job运行变得不稳定,出现一些意外的长map单元,某些reduce时间处理变长(整个集群负载满满的情况下,外加20m/s的balance),在前天的中国hadoop年会上听淘宝调整的为10m/s,需要调整后实验,看看情况如何。
另外再修改dfs.balance.bandwidthPerSec参数后,需要在namenode上运行stop-dfs.sh start-dfs.sh重启hdfs生效。
我们可以通过stop-balancer.sh停掉平衡任务。
作完平衡后,启动hbase,正常。
Hadoop集群管理和运维

本地计算文件夹剩余空间低 于该值则不再申请新的任务, 字节数
60000
TT在这个时间内没有发送心 跳,则认为TT已经挂了。单
位毫秒
默认每个job所使用的map数,
意思是假设设置dfs块大小为
2
64M,需要排序一个60M的文 件,也会开启2个map线程,
当jobtracker设置为本地是不
起作用。
专注开源技术在线培训
fs.checkpoຫໍສະໝຸດ nt.dir/opt/data/hadoop1/hdfs/n amesecondary1
定义hadoop的name备份 的路径,官方文档说是读
取这个,写入 .dir
fs.checkpoint.period
1800
定义name备份的备份间 隔时间,秒为单位,只对
snn生效,默认一小时
org.apache. hadoop.ma pred. JobQueueT askSchedul er
LOGO
Hadoop集群管理和运维
廖旻可
专注开源技术在线培训
培训调查
• 1.关注 hadoop集群架构?开发? • 2.单位业务有集群否?有的话,规模? • 3.本次培训期望收获?
专注开源技术在线培训
议程
• 1.hadoop规划,集群安装及配置 • 2.hadoop配置讲解 • 3.hadoop集群正式环境快速安装 • 4.hadoop集群管理 • 5.hadoop集群调优 • 6.hadoop运维常见故障
1073741824
本地运算文件夹剩余空间低 于该值则不在本地做计算。 字节配置
mapred.local.dir. minspacekill
mapred.tasktrack er.expiry.interval
hadoop集群的基本操作

hadoop集群的基本操作
Hadoop是一个开源的分布式计算系统,采用HDFS存储数据,通过MapReduce实现大规模数据处理和分析。
以下是Hadoop集群的一些基本操作:
1. 启动与关闭Hadoop集群:使用start-all.sh脚本启动Hadoop集群,使用stop-all.sh脚本关闭Hadoop集群。
2. 管理HDFS文件系统:使用hadoop fs命令可以对HDFS文件系统进行管理,如创建目录、上传下载文件、删除文件等。
3. 提交MapReduce作业:使用hadoop jar命令提交MapReduce 作业,需要指定作业的jar包、输入输出路径、作业配置等参数。
4. 监控Hadoop集群:可以通过Web界面查看Hadoop集群的运行状态,包括HDFS存储容量、MapReduce作业状态等。
5. 配置Hadoop集群:可以通过修改Hadoop集群的配置文件来改变集群运行的参数,如增加数据备份、优化作业调度等。
6. 维护Hadoop集群:定期进行日志清理、备份数据、优化集群配置等操作,保证集群的高可靠性和高性能。
以上是Hadoop集群的一些基本操作,可以帮助用户快速上手Hadoop分布式计算系统。
Hadoop集群配置详细解读

从当前用户切换root用户的命令如下:
Linux系统配置
操作步骤需要在HadoopMaster和HadoopSlave节点
上分别完整操作,都是用root用户。 从当前用户切换root用户的命令如下:
su root
从当前用户切换root用户的命令如下:
Linux系统配置
1拷贝软件包和数据包 mv ~/Desktop/software ~/
所有的操作都是用自定义用户(dhx)
su dhx
Hadoop安装包解压
cp hadoop-1.2.1.tar.gz ~/
cd
tar -zxvf hadoop-1.2.1.tar.gz
cd hadoop-1.2.1
从当前用户切换root用户的命令如下: 编辑主机名列表的命令
Hadoop集群配置手册(详细) 太原理工大学 邓红霞
提 纲
启动两台虚拟客户机
Linux系统配置 Hadoop配置部署 启动Hadoop集群 HDFS下的文件操作 Eclipse在Hadoop中的使用及配置
启动两台虚拟客户机
打开VMware Workstation10,打开已经安装好 的虚拟机HadoopMaster和HadoopSlave 。 如果之前没有打开过两个虚拟机,请使用文件 ->打开选项,选择之前的虚拟安装包。
Linux系统配置
6配置hosts列表 编辑主机名列表的命令,并添加如下两行到文件 gedit /etc/hosts 192.168.58.128 master 192.168.58.129 slave ping master ping slave
从当前用户切换root用户的命令如下: 编辑主机名列表的命令
Hadoop手册_v0.2

Hadoop 手册 .................................................错误!未定义书签。
1.大数据理论 (2)2.Hadoop的背景及知识体系 (4)3.Hadoop集群的安装 (8)3.1 Hadoop集群的系统及软件版本 (8)3.2 安装Hadoop集群前的准备 (8)3.3 网络配置 (9)3.3.1 配置hosts文件 (10)3.3.2 配置SSH无密码验证 (10)3.4 Java环境安装 (14)3.5 Hadoop的安装 (15)3.3.3 Hadoop的基础配置 (16)3.3.4 启动及验证 (18)3.6 HBase集群的安装 (20)1.大数据理论大数据是什么?IBM在2012年中期对95个国家中26个行业的1144名专业人员的进行的Big Data研究。
受访者来自多个学科,包括业务专业人员(占总样本的54%)和IT专业人员(占总样本的46%)。
受访者对大数据的理解如下图描述:这些结果与确定大数据的三个维度的有用方式相一致–即“3V”:数量(volume)、多样性(variety)和速度(velocity)。
尽管这些涵盖大数据本身的关键属性,但IBM认为,企业需要考虑一个重要的第四维度:精确性(veracity)。
将精确性作为大数据的第四个属性凸显了应对与管理某些类型数据中固有的不确定性的重要性。
在国内业内讨论中认为,精确性和价值(value)相关,而价值(value)的产生才是大数据体系存在的意义。
涵盖这四个维度有助于定义和区分大数据:数量:数据量。
数量也许是与大数据最相关的特征,指企业为了改进企业中的决策而试图利用的大量数据。
数据量持续以前所未有的速度增加。
多样性:不同类型的数据和数据源。
多样性是指管理多种数据类型的复杂性,包括结构化、半结构化和非结构化数据。
企业需要整合并分析来自复杂的传统和非传统信息源的数据,包括企业内部和外部的数据。
大数据技术基础培训-Hadoop集群管理与维护

dfs.replication
•
dfs.blocksize
—
TRANSWARP © 2013
17
hdfs-site.xml高级配置参数
• • • node.handler.count
— NameNode处理DataNode RPC请求的线程数,默认值为10,推荐为DataNode节点数的10%
TRANSWARP © 2013
3
Hadoop集群优化配置和部署
• • • Hadoop集群规划 Hadoop集群基本配置参数 Hadoop集群高级配置参数
TRANSWARP © 2013
4
Hadoop集群规划
• • 规划集群需要使用的Hadoop的服务
— 服务包括:ZooKeeper,HDFS,MapReduce,Inceptor,HBase,Hive等
规划集群的节点角色
— 根据需要使用的服务为节点指定角色,如NameNode、Inceptor Master等
•
规划集群的硬件配置
— 如服务器数量,机架分布,每台机器的CPU型号以及磁盘、内存的大小
•
规划集群的网络
— 包括网络拓扑,交换机型号以及机器网卡型号
TRANSWARP © 2013
5
集群服务角色规划
ZooKeeper,NameNode,Secondary NameNode,Journal Node,JobTracker, HBase Master,Hive Metastore,Hive Server,Inceptor Master
•
从节点角色包括:
DataNode,TaskTracker,HBase RegionServer,Inceptor Worker
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Hadoop部分启动命令:停止命令:Hadoop运行增加集群的存储量/节点如果只增加集群的存储量,建议增加Hadoop datanode节点。
步骤:1、停掉集群包括Hadoop和hbase,当然也可以不停掉,直接在hadoop namenode的配置文件Slave里添加新节点的host,别忘了在host文件里也要添加新添加的host名。
2、执行bin/启动集群3、以下选择一种1)如果不手动作平衡,插入的数据将会放在新添加的节点上。
以趋于平衡。
2)如果手动平衡,则和调用bin/sHadoop balancer命令相似,也可加参数 -threshold 5(threshold 是平衡阈值,默认是10%,值越低各节点越平衡,但消耗时间也更长)。
在使用时,如果在里面没有配置,那么集群hdfs内部默认使用1M/S的速度移动数据(so slowly...),我们可以通过在里面配置来加快balance的速度。
最开始我们配置的是20m/S ,然后结果是导致job运行变得不稳定,出现一些意外的长map单元,某些reduce时间处理变长(整个集群负载满满的情况下,外加20m/s的balance),在前天的中国hadoop年会上听淘宝调整的为10m/s,需要调整后实验,看看情况如何。
另外再修改参数后,需要在namenode上运行重启hdfs生效。
我们可以通过停掉平衡任务。
作完平衡后,启动hbase,正常。
果cluster设置的副本数不为3(默认),需要先运行命令hadoop fs –setrep [-R] <path> ;进行设置一个文件的副本系数。
如果默认为3则不必。
如果执行完平衡以后才改变副本数,会将新加入到新节点上的所有数据删除。
设置的副本系数只在文件系统写入时有效,并不影响在新添加节点时,平衡时的副本数;另外:由于还有hbase数据库,因此,在运行完平衡以后,将hbase 下的.META.文件删除(防止出错),启动hbase,执行hbase add_table /表名来进行hbase表恢复;Hadoop1升级1.运行dfsadmin -upgradeProgress status 检查是否存在备份如果是第一次升级就不存在备份(在升级Hadoop前,如果已经存在备份,需要先结束 finalize 它。
)2.备份下文件,同时要备份下hdfs的文件目录的元数据信息:bin/hadoop fsck / -files -blocks -locations >bin/hadoop dfs -lsr / >bin/hadoop dfsadmin -report >3.停止所有节点 bin/4.在所有节点上重新部署hadoop 并替换conf文件夹下所有文件(就是将原有的更名为然后解压将中的conf文件替换为中的conf文件夹)并且要对照修改中的路径指定是否正确5.使用 bin/ -upgrade 进行升级(DFS从一个版本升级到另外一个版本的时候,NameNode和DataNode使用的文件格式有可能会改变。
当你第一次使用新版本的时候,你要告诉Hadoop 去改变HDFS版本,否则,新版本不会生效)6.监控升级情况和升级问题处理开始升级,你可以通过bin/hadoop dfsadmin -upgradeProgress命令来查看版本升级的情况。
当然你可以使用bin/hadoop dfsadmin -upgradeProgress details来查看更多的详细信息。
当升级过程被阻塞的时候,你可以使用bin/hadoop dfsadmin -upgradeProgress force来强制升级继续执行(当你使用这个命令的时候,一定要慎重考虑)。
当HDFS升级完毕后,Hadoop依旧保留着旧版本的有关信息,以便你可以方便的对HDFS进行降级操作。
可以使用bin/ -rollback来执行降级操作。
7.对比现有hdfs的文件目录的元数据信息和升级的差异。
8.升级完成,Hadoop一次只保存一个版本的备份,当新版本运行几天以后还是没有出现什么问题,你就可以使用运行一段时间后没有问题再执行升级终结操作bin/hadoop dfsadmin -finalizeUpgrade命令把旧版本的备份从系统中删掉了。
删除以后rollback 命令就失效了。
HdfsMapreduceHbase部分启动命令:如果一个regionserver死掉了,可以执行该命令启动,也可以启动整个hbase;停止命令:停止hbase运行的命令.日常维护1.基本命令建表:create 'testtable','coulmn1','coulmn2'也可以建表时加coulmn的属性如:create 'testtable',{NAME => 'coulmn1', BLOOMFILTER => 'NONE', REPLICATION_SCOPE => '0', VERSIONS => '10', COMPRESSION => 'LZO', TTL => '30000', IN_MEMORY => 'false', BLOCKCACHE => 'false'}, {NAME => 'coulmn', BLOOMFILTER => 'NONE', REPLICATION_SCOPE => '0', VERSIONS => '30', COMPRESSION => 'LZO', TTL => '30000', IN_MEMORY => 'true'} (其中的属性有versions:设置历史版本数,TTL:过期时间,COMPRESSION:压缩方式,当配置lzo的情况)删除表:drop 'testtable' (删除表之前先要禁用表,命令disable 'testtable')启用和禁用表: enable 'testtable' 和disable 'testtable'其它的基本命令:describe 'testtable'(查看表结构),alert 修改表结构,list 列出所有表。
2.维护命令1,major_compact 'testtable',通常生产环境会关闭自动major_compact(配置文件中设为0),选择一个晚上用户少的时间窗口手工major_compact,如果hbase更新不是太频繁,可以一个星期对所有表做一次 major_compact,这个可以在做完一次major_compact后,观看所有的storefile数量,如果storefile数量增加到 major_compact后的storefile的近二倍时,可以对所有表做一次major_compact,时间比较长,操作尽量避免高锋期。
2,flush 'testtable',将所有memstore刷新到hdfs,通常如果发现regionserver的内存使用过大,造成该机的 regionserver很多线程block,可以执行一下flush操作,这个操作会造成hbase的storefile 数量剧增,应尽量避免这个操作,还有一种情况,在hbase进行迁移的时候,如果选择拷贝文件方式,可以先停写入,然后flush所有表,拷贝文件。
3,balance_switch true或者balance_switch flase,配置master 是否执行平衡各个regionserver的region数量,当我们需要维护或者重启一个regionserver时,会关闭balancer,这样就使得region在regionserver上的分布不均,这个时候需要手工的开启balance。
3.重启一个regionserverbin/ --restart --reload --debug nodename这个操作是平滑的重启regionserver进程,对服务不会有影响,他会先将需要重启的regionserver上面的所有 region迁移到其它的服务器,然后重启,最后又会将之前的region迁移回来,但我们修改一个配置时,可以用这种方式重启每一台机子,这个命令会关闭balancer,所以最后我们要在hbase shell里面执行一下balance_switch true,对于hbase regionserver重启,不要直接kill进程,这样会造成在这个时间长的中断,也不要通过 bin/ stop regionserver去重启,如果运气不太好,-ROOT-或者.META.表在上面的话,所有的请求会全部失败。
4.关闭下线一台regionserverbin/ --stop nodename和上面一样,系统会在关闭之前迁移所有region,然后stop进程,同样最后我们要手工balance_switch true,开启master的region均衡。
5.检查region是否正常以及修复bin/hbase hbck (检查)bin/hbase hbck -fix (修复)会返回所有的region是否正常挂载,如没有正常挂载可以使用下一条命令修复,如果还是不能修复,那需要看日志为什么失败,手工处理。
6.hbase的迁移copytable方式bin/hbase =zookeeper1,zookeeper2,zookeeper3:/hbase'testtable'目前之前的版本的不支持多版本的复制,已经支持多个版本的复制。
当然这个操作需要添加hbase目录里的conf/,可以复制hadoop的过来。
Export/Importbin/hbase testtable /user/testtable [versions] [starttime] [stoptime]bin/hbase testtable /user/testtable跨版本的迁移,我觉得是一个不错的选择,而且copytable不支持多版本,而export支持多版本,比copytable更实用一些。
直接拷贝hdfs对应的文件首先拷贝hdfs文件,如bin/hadoop distcp 然后在目的hbase上执行bin/hbase bin/ /hbase/testtable生成meta信息后,重启hbase这个操作是简单的方式,操作之前可以关闭hbase的写入,执行flush所有表(上面有介绍),再distcp拷贝,如果hadoop版本不一致,可以用hftp接口的方式,我推荐使用这种方式,成本低。