哪里有零基础网站建设教学公司,兰州网站推广,产品设计个人作品集,格力网站的建设情况序言
持续整理下常用的命令cuiyaonan2000163.com Command
文件拷贝
当从多个源拷贝时#xff0c;如果两个源冲突#xff0c;distcp会停止拷贝并提示出错信息#xff0c;.
如果在目的位置发生冲突#xff0c;会根据选项设置解决。
默认情况会跳过已经存在的目标文件163.com Command
文件拷贝
当从多个源拷贝时如果两个源冲突distcp会停止拷贝并提示出错信息.
如果在目的位置发生冲突会根据选项设置解决。
默认情况会跳过已经存在的目标文件比如不用源文件做替换操作。
每次操作结束时 都会报告跳过的文件数目但是如果某些拷贝操作失败了但在之后的尝试成功了 那么报告的信息可能不够精确。
#这条命令会把master集群的/foo/bar目录下的所有文件或目录名展开并存储到一个临时文件中这些文件内容的#拷贝工作被分配给多个map任务 然后每个TaskTracker分别执行从master1到master2的拷贝操作。注意#distcp使用绝对路径进行操作。hadoop distcp hdfs://master1:8020/foo/bar hdfs://master2:8020/bar/foo#命令行中可以指定多个源目录,但是只能有1个目标地址
hadoop distcp hdfs://master1:8020/foo/a hdfs://master1:8020/foo/b hdfs://master2:8020/bar/foo#-f的作用就是从srclist 这个文件中读取多个数据源地址,复制到目标地址
#比如srclist 的内容是
#hdfs://master1:8020/foo/a
#hdfs://master1:8020/foo/b
hadoop distcp -f hdfs://master1:8020/srclist hdfs://master2:8020/bar/foo 标识描述备注-p[rbugp]Preserve r: replication number b: block size u: user g: group p: permission修改次数不会被保留。并且当指定 -update 时更新的状态不会 被同步除非文件大小不同比如文件被重新创建。-i忽略失败就像在 附录中提到的这个选项会比默认情况提供关于拷贝的更精确的统计 同时它还将保留失败拷贝操作的日志这些日志信息可以用于调试。最后如果一个map失败了但并没完成所有分块任务的尝试这不会导致整个作业的失败。-log logdir记录日志到 logdirDistCp为每个文件的每次尝试拷贝操作都记录日志并把日志作为map的输出。 如果一个map失败了当重新执行时这个日志不会被保留。-m num_maps同时拷贝的最大数目指定了拷贝数据时map的数目。请注意并不是map数越多吞吐量越大。-overwrite覆盖目标如果一个map失败并且没有使用-i选项不仅仅那些拷贝失败的文件这个分块任务中的所有文件都会被重新拷贝。 就像下面提到的它会改变生成目标路径的语义所以 用户要小心使用这个选项。-update如果源和目标的大小不一样则进行覆盖像之前提到的这不是同步操作。 执行覆盖的唯一标准是源文件和目标文件大小是否相同如果不同则源文件替换目标文件。 像 下面提到的它也改变生成目标路径的语义 用户使用要小心。-f urilist_uri使用urilist_uri 作为源文件列表这等价于把所有文件名列在命令行中。 urilist_uri 列表应该是完整合法的URI。
Hbase hbck
hbck工具可以检测hbase集群的region一致性和完整性同时可以修复损坏的集群数据
工作模式两种一致性检测只读模式和多阶段修复模式
集群的一致性状态修复
region一致性: 集群中所有region都被assign且region在Master内存、ZK和hbasemeta表三个地方一致表完整性: 集群中的任意一张表每个rowkey都仅能存在于一个region区间中 #test 是表名
hbase hbck -fixMeta -fixAssignments test
命令
hbase hbck
一般集群规模较大尽量不要直接执行最好是对表进行扫描直接在命令后加表名即可多个表直接空格隔开
返回结果为Status: INCONSISTENT 或者Status: OK ;
如果region在move、split、merger时执行命令是会显示有问题的所以最好多次执行看
常用参数
-details 可以输出更详细的信息-summary 只打印表和状态的的概要信息-metaonly 只检查hbase:meta表的状态 -fixAssignments 用来修复region的分配assign问题如果有region没有assign或者同时assign到多台RS上等问题 -fixMeta 用来修复元数据即HDFS上和元数据表中记录不一致问题原则上是认为HDFS是正确的即如果HDFS中有这个region元数据表中没有就在元数据表中添加如果元数据表多了就删除 -noHdfsChecking 不从hdfs上检查region信息即假设meta表示正确的 -fixHdfsHoles 修复hdfs中的region黑洞一般会和-fixAssignments -fixMeta参数一起用或者使用-repairHoles参数等同于 这三个参数同时使用 -fixRITAssignment 修复长RIT region -repair 如果不知道用什么参数的话就用这个参数包含了常用的修复参数也包含个高危操作 SNAPSHOT快照迁移
总体思路 1、启用快照配置 2、原集群执行快照然后执行ExportSnapshot 导出到老集群。注意权限问题。 3、导出后修改对应的权限然后执行恢复即可
注意点 1、注意文件目录权限 2、注意配置各自的hostname和IP映射 3、注意压缩库是否都配置了 设置支持压缩
在hbase-env.sh中添加如下属性
export JAVA_LIBRARY_PATH/usr/lib/hadoop/lib/native/Linux-amd64-64:/usr/lib/hadoop/lib/native
启用快照 hbase-site.xml中添加 hbase.snapshot.enabled为true
生成快照
生成的快照默认在hbase目录的.hbase-snapshot文件加下cuiyaonan2000163.com su - hbasehbasecreate test_tmp_2017, {NAME F, DATA_BLOCK_ENCODING NONE, BLOOMFILTER ROW,COMPRESSION SNAPPY}hbaseflush ’test_tmp_2017hbasesnapshot ’test_tmp_2017, ’test_tmp_2017_sphbaselist_snapshotshbasedelete_snapshot ’test_tmp_2017_sp 修改新集群快照目录权限hdfs用户执行
su - hdfs
hdfs dfs -chmod -R 777 /apps/hbase/data/.hbase-snapshot ;
hdfs dfs -chmod -R 777 /apps/hbase/data/archive ;