Member since
06-27-2017
25
Posts
2
Kudos Received
0
Solutions
01-03-2024
01:48 PM
you property was removed, removed from what/where? I cannot find it.
... View more
02-25-2022
12:52 PM
part of Split or Merge (Verifiable by HMaster Logs) what log and what in the log lets you know its part of a split or merge?
... View more
01-05-2022
01:39 PM
found https://my.cloudera.com/knowledge/ERROR-quotUpgrade-not-allowed-in-Express-or-Trial-modequot?id=296899
... View more
01-05-2022
12:26 PM
We have a lab cluster. We moved the MySQL DB to Oracle Cloud. The on-prem DBs remained but are now several months old. I am trying to revert back to the on-prem without copying the data back from OCI. The loss of changes in the several months does not matter as this is a lab cluster. The issue is the license was updated in between these DB changes and now SCM will not start. FactoryBean threw exception on object creation; nested exception is java.lang.RuntimeException: Upgrade not allowed in Express or Trial mode What table has the license info. I can grab just that table from OCI?
... View more
Labels:
05-26-2021
01:51 PM
Each time you roll a key you get a new key. The short name is a pointer to the latest, but when deleting a key, it refers to all keys prefaced by the name. If the name is in use, there is no way to delete a key version, even though the key version is not in use. If you roll your keys daily, you end up with 364 keys you cannot delete.
... View more
05-24-2021
02:48 PM
After rolling a key, another version is created, in effect a new key, but same name. After re-encrypting the DEK for the encryption zone, what becomes of the old key version? Does the number just grow and sit there? There does not appear to be a delete except for the key itself.
... View more
Labels:
- Labels:
-
Security
12-17-2020
12:48 PM
solution, change #$admin = HBaseAdmin.new(connection) $admin = connection.getAdmin(); leads to other changes new script # # hbase org.jruby.Main list_small_regions.rb min_siz <namespace.tablename> # # Note: Please replace namespace.tablename with your namespace and table, eg NS1.MyTable. This value is case sensitive. require 'digest' require 'java' java_import org.apache.hadoop.hbase.HBaseConfiguration java_import org.apache.hadoop.hbase.client.HBaseAdmin java_import org.apache.hadoop.hbase.TableName java_import org.apache.hadoop.hbase.HRegionInfo; java_import org.apache.hadoop.hbase.client.Connection java_import org.apache.hadoop.hbase.client.ConnectionFactory java_import org.apache.hadoop.hbase.client.Table java_import org.apache.hadoop.hbase.util.Bytes def list_bigger_regions(table_name) cluster_status = $admin.getClusterStatus() master = cluster_status.getMaster() biggers = [] cluster_status.getServers.each do |s| cluster_status.getLoad(s).getRegionsLoad.each do |r| # getRegionsLoad returns an array of arrays, where each array # is 2 elements # Filter out any regions that don't match the requested # tablename next unless r[1].get_name_as_string =~ /#{table_name}\,/ if r[1].getStorefileSizeMB() > $low_size if r[1].get_name_as_string =~ /\.([^\.]+)\.$/ biggers.push $1 else raise "Failed to get the encoded name for #{r[1].get_name_as_string}" end end end end biggers end def regions_to_merge?(table_name) bigger_regions = list_bigger_regions(table_name) #regions = $admin.getTableRegions(Bytes.toBytes(table_name)); regions = $admin.getTableRegions(table_name); filtered_regions = regions.reject do |r| bigger_regions.include?(r.get_encoded_name) end puts "#{table_name},#{regions.length},#{bigger_regions.length},#{filtered_regions.length-1}" filtered_regions.length end limit_batch = 1000 do_merge = false config = HBaseConfiguration.create() connection = ConnectionFactory.createConnection(config) #$admin = HBaseAdmin.new(connection) $admin = connection.getAdmin(); # Handle command line parameters $low_size = 1 if ARGV[0].to_i >= $low_size $low_size=ARGV[0].to_i end all_tables=$admin.listTableNames if ARGV.length > 1 p "ARGV - #{ARGV[1]}" Table table = connection.getTable(TableName.valueOf("#{ARGV[1]}")); tables.push table else tables=all_tables end puts "TABLE_NAME,TOT_REGIONS,REGIONS_OK,REGIONS_NEED_MERGED" tables.each do |table| #table_name = table.getName() regions_to_merge?(table) end $admin.close
... View more
12-17-2020
10:53 AM
I have a jruby script for hbase, found on internet, I am not a jruby programer, but script was working but now stopped after upgrade from 5.16 to 6.3.4 TypeError: no public constructors for Java::OrgApacheHadoopHbaseClient::HBaseAdmin <main> at list_small_regions.rb:59 # hbase org.jruby.Main list_small_regions.rb min_siz <namespace.tablename> # # Note: Please replace namespace.tablename with your namespace and table, eg NS1.MyTable. This value is case sensitive. require 'digest' require 'java' java_import org.apache.hadoop.hbase.HBaseConfiguration java_import org.apache.hadoop.hbase.client.HBaseAdmin java_import org.apache.hadoop.hbase.TableName java_import org.apache.hadoop.hbase.client.HTable java_import org.apache.hadoop.hbase.HRegionInfo; java_import org.apache.hadoop.hbase.client.Connection java_import org.apache.hadoop.hbase.client.ConnectionFactory java_import org.apache.hadoop.hbase.client.Table java_import org.apache.hadoop.hbase.util.Bytes def list_bigger_regions(table_name) cluster_status = $admin.getClusterStatus() master = cluster_status.getMaster() biggers = [] cluster_status.getServers.each do |s| cluster_status.getLoad(s).getRegionsLoad.each do |r| # getRegionsLoad returns an array of arrays, where each array # is 2 elements # Filter out any regions that don't match the requested # tablename next unless r[1].get_name_as_string =~ /#{table_name}\,/ if r[1].getStorefileSizeMB() > $low_size if r[1].get_name_as_string =~ /\.([^\.]+)\.$/ biggers.push $1 else raise "Failed to get the encoded name for #{r[1].get_name_as_string}" end end end end biggers end def regions_to_merge?(table_name) bigger_regions = list_bigger_regions(table_name) regions = $admin.getTableRegions(Bytes.toBytes(table_name)); filtered_regions = regions.reject do |r| bigger_regions.include?(r.get_encoded_name) end puts "#{table_name},#{regions.length},#{bigger_regions.length},#{filtered_regions.length-1}" filtered_regions.length end limit_batch = 1000 do_merge = false config = HBaseConfiguration.create() connection = ConnectionFactory.createConnection(config) $admin = HBaseAdmin.new(connection) # Handle command line parameters $low_size = 1 if ARGV[0].to_i >= $low_size $low_size=ARGV[0].to_i end puts "TABLE_NAME,TOT_REGIONS,REGIONS_OK,REGIONS_NEED_MERGED" tables=$admin.listTables tables.each do |table| p "#{table}" table_name = table.getNameAsString() regions_to_merge?(table_name) end $admin.close
... View more
Labels:
11-03-2020
07:30 AM
Thanks, What I am experiencing is that the complete file, if 300GB, has to be assembled before upload to S3. This requires either 300GB of memory or disk. Distcp does not create a part file per block. I have not witnessed any file split being done. Multi part uploads require you get an upload ID and upload many part files with a numeric extension and in the end ask S3 to put them back together. I do not see any of this being done. I admit I do not know much about all this and it could be happening out of my sight.
... View more
10-29-2020
10:02 AM
Is it possible that large HDFS file not have to be extracted from HDFS in full to either disk or memory? And uploaded in parts as HDFS blocks are read? Would this take a change to distcp to not be one map per file, but one map per block?
... View more