복붙노트

[HADOOP] HBase : HBase 테이블의 크기를 어떻게 추정 할 수 있습니까?

HADOOP

HBase : HBase 테이블의 크기를 어떻게 추정 할 수 있습니까?

여러 개의 HBase 테이블이 있는데 Java에서 사용하는 테이블의 대략적인 크기를 어떻게 추정 할 수 있습니까?

해결법

  1. ==============================

    1.한 가지 방법은 일반적으로 / hbase 폴더 아래에서 Java 클라이언트를 사용하여 hdfs에 액세스해야합니다. 모든 테이블 정보. 나타납니다.

    한 가지 방법은 일반적으로 / hbase 폴더 아래에서 Java 클라이언트를 사용하여 hdfs에 액세스해야합니다. 모든 테이블 정보. 나타납니다.

    hadoop fs -du -h ** hbase 경로 ** / hbase를 사용하여 확인할 수 있습니다.

    / hbase 아래에서 각 테이블은 하나 이상의 폴더를 차지합니다 ...

    hadoop fs -ls -R ** hbase 경로 ** / hbase

    hadoop fs -du -h ** hbase 경로 ** / hbase / tablename

    아래처럼 hbase root dir 아래에 각 테이블 경로를 전달하여 Java hdfs 클라이언트를 사용할 수있는 것과 같은 것 ... getSizeOfPaths 및 getSizeOfDirectory 메소드 확인

    public class HdfsUtil {
        /**
         * Estimates the number of splits by taking the size of the paths and dividing by the splitSize.
         *
         * @param paths
         * @param configuration
         * @param splitSize
         * @return
         * @throws IOException
         */
        public static long getNumOfSplitsForInputs(Path[] paths, Configuration configuration, long splitSize) throws IOException
        {
            long size = getSizeOfPaths(paths, configuration);
            long splits = (int) Math.ceil( size / (splitSize)) ;
            return splits;
        }
    
        public static long getSizeOfPaths(Path[] paths, Configuration configuration) throws IOException
        {
            long totalSize = 0L;
    
            for(Path path: paths)
            {
               totalSize += getSizeOfDirectory(path, configuration);
            }
            return totalSize;
        }
    // here you can give hbase path folder which was described through shell
            public static long getSizeOfDirectory(Path path, Configuration configuration) throws IOException {
                //Get the file size of the unannotated Edges
                FileSystem fileSystem = FileSystem.get(configuration);
                long size  = fileSystem.getContentSummary(path).getLength();
    /**static String    byteCountToDisplaySize(BigInteger size)
    Returns a human-readable version of the file size, where the input represents a specific number of bytes.**/
    System.out.println(FileUtils.byteCountToDisplaySize(size))
                return size;
            }
        }
    
  2. from https://stackoverflow.com/questions/40608992/hbase-how-can-i-estimate-the-size-of-a-hbase-table by cc-by-sa and MIT license