복붙노트

[HADOOP] HBase를, 하둡은 : 어떻게 HBase를 테이블이나 하둡 파일 시스템 경로의 크기를 추정 할 수 있습니까?

HADOOP

HBase를, 하둡은 : 어떻게 HBase를 테이블이나 하둡 파일 시스템 경로의 크기를 추정 할 수 있습니까?

나는 어떻게 자바를 사용하여 테이블의 대략적인 크기를 추정 할 수있다, 여러 HBase를 테이블을 가지고?

해결법

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

    1.한 가지 방법은 자바 클라이언트 일반적으로 아래를 사용하여 HDFS에 액세스해야 / HBase를 폴더입니다 모든 테이블 정보. 존재할 것이다.

    한 가지 방법은 자바 클라이언트 일반적으로 아래를 사용하여 HDFS에 액세스해야 / HBase를 폴더입니다 모든 테이블 정보. 존재할 것이다.

    당신은 하둡 FS를 사용하는 것을 확인할 수 있습니다 -du -h ** HBase와 경로 ** / HBase를

    / HBase를 아래에 각 테이블은 한 번 더 폴더를 차지하고 ...

    하둡 FS -ls -R ** HBase와 경로 ** / HBase를

    하둡 FS -du -h ** HBase와 경로 ** / HBase를 / TABLENAME

    똑같은 아래처럼 HBase를 루트 디렉토리 아래에 각 테이블의 경로를 전달하여 자바 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-hadoop-how-can-i-estimate-the-size-of-a-hbase-table-or-hadoop-file-syst by cc-by-sa and MIT license