云服务器内容精选

  • 回答 BulkLoad程序在客户端启动时会生成一个partitioner文件,用于划分Map任务数据输入的范围。此文件在BulkLoad客户端退出时会被自动删除。一般来说当所有Map任务都启动运行以后,退出BulkLoad客户端也不会导致已提交的作业失败。但由于Map任务存在重试机制和推测执行机制;Reduce任务下载一个已运行完成的Map任务的数据失败次数过多时,Map任务也会被重新执行。如果此时BulkLoad客户端已经退出,则重试的Map任务会因为找不到partitioner文件而执行失败,导致作业执行失败。因此,强烈建议BulkLoad程序在数据导入期间不要结束客户端程序。
  • 回答 在HMaster主备倒换或启动期间,HMaster为先前失败/停用的RegionServer执行WAL splitting及region恢复。 在后台运行有多个监控HMaster启动进程的线程: TableNamespaceManager 这是一个帮助类,用于在HMaster主备倒换或启动期间,管理namespace表及监控表region的分配。如果namespace表在规定时间(hbase.master.namespace.init.timeout,默认为3600000ms)内没有上线,那么它就会异常中断HMaster进程。 InitializationMonitor 这是一个主HMaster初始化线程监控类,用于监控主Master的初始化。如果在规定时间(hbase.master.initializationmonitor.timeout,默认为3600000ms)内初始化线程失败,该线程会异常终止HMaster(如果该hbase.master.initializationmonitor.haltontimeout被启动,默认为false)。 在HMaster主备倒换或启动期间,如果WAL hlog文件存在,它会初始化WAL splitting任务。如果WAL hlog splitting任务完成,它将初始化表region分配任务。 HMaster通过ZooKeeper协调log splitting任务和有效的RegionServer,并追踪任务的发展。如果主HMaster在log splitting任务期间退出,新的主HMaster会尝试重发没有完成的任务,RegionServer从头启动log splitting任务。 HMaster初始化工作完成情况会由于很多原因被延迟: 间歇性的网络故障。 磁盘瓶颈。 log split任务工作负荷较大,RegionServer运行缓慢。 RegionServer(region openning)响应缓慢。 在以上场景中,为使HMaster更早完成恢复任务,建议增加以下配置参数,否则Master将退出导致整个恢复进程被更大程度地延迟。 增加namespace表在线等待超时周期,保证Master有足够的时间协调RegionServer workers split任务,避免一次次重复相同的任务。 “hbase.master.namespace.init.timeout”(默认为3600000ms) 通过RegionServer worker增加并行split任务执行数,保证RegionServer worker能并行处理split work(RegionServer需要有更多的核心)。在“客户端安装路径/HBase/hbase/conf/hbase-site.xml”中添加参数: “hbase.regionserver.wal.max.splitters”(默认为2) 如果所有的恢复过程都需要时间,增加初始化监控线程超时时间。 “hbase.master.initializationmonitor.timeout”(默认为3600000ms)
  • 回答 创建租户的时候需要关联HBase服务和Yarn队列。 例如: 新建用户user并绑定租户同名的角色。 用户user需要使用bulkload功能还需要额外权限。 以下以用户user为例: 参见“批量导入数据”章节举例,以下是一些差异点。 将数据文件目录建在“/tmp”目录下,执行以下命令: hdfs dfs -mkdir /tmp/datadirImport hdfs dfs -put data.txt /tmp/datadirImport 生成HFile的时候使用HDFS的“/tmp”目录: hbase com.huawei.hadoop.hbase.tools.bulkload.ImportData -Dimport.skip.bad.lines=true -Dimport.separator=',' -Dimport.bad.lines.output=/tmp/badline -Dimport.hfile.output=/tmp/hfile configuration.xml ImportTable /tmp/datadirImport 导入HFile的时候使用HDFS的“/tmp”目录: hbase org.apache.hadoop.hbase.mapreduce.LoadIncrementalHFiles /tmp/hfile ImportTable
  • 回答 创建租户的时候需要关联HBase服务和Yarn队列。 租户要操作Phoenix还需要额外操作的权限,即Phoenix系统表的RWX权限。 例如: 创建好的租户为hbase,使用admin用户登录hbase shell,执行scan 'hbase:acl'命令查询租户对应的角色为hbase_1450761169920(格式为:租户名_时间戳)。 执行以下命令进行授权(如果还没有生成Phoenix系统表,请用admin用户登录Phoenix客户端后再回到hbase shell里授权): grant '@hbase_1450761169920','RWX','SYSTEM.CATA LOG ' grant '@hbase_1450761169920','RWX','SYSTEM.FUNCTION' grant '@hbase_1450761169920','RWX','SYSTEM.SEQUENCE' grant '@hbase_1450761169920','RWX','SYSTEM.STATS' 新建用户phoenix并绑定租户hbase,该用户phoenix就可以用来访问Phoenix客户端。