zoukankan      html  css  js  c++  java
  • Hbase&Hadoop常用命令

    Hbase中根据Rowkey的前缀Prefix查询数据

    scan 'test_xiaomifeng_monitoring_log',{FILTER => "(PrefixFilter ('166_20130816080'))"}

     查看表结构

    describe 'table1'

     创建表:create 'table1','d'

    第一个是表名,第二个是family

    建表时可以设置TTL过期时间:create 'tableName',{NAME=>'cf',TTL=>超时时间秒为单位} 

    后期修改

    首先停表:disable 'tableName'

    然后修改TTL失效时间:alter 'tableName',NAME => 'cf', TTL => 超时时间秒为单位

    恢复表:enable 'tableName'

    查看表元数据:describe 'tableName'

    插入数据:

    put 'tableName', 'RowKey','cf1:qualifier','value'

    删除数据:

    put'tableName', 'RowKey','cf1:qualifier','value'
    delete 'tableName', 'RowKey', 'ColumnFamily:qualifier',
    deleteall 'tableName', 'RowKey'

    在本地和HDFS之间批量拷贝数据

    copyFromLocal

    Usage: hdfs dfs -copyFromLocal <localsrc> URI

    Similar to put command, except that the source is restricted to a local file reference.

    copyToLocal

    Usage: hdfs dfs -copyToLocal [-ignorecrc] [-crc] URI <localdst>

    Similar to get command, except that the destination is restricted to a local file reference.

      

     修改文件副本保存的个数

    配置hadoop的conf目录中的hdfs-site.xml:

    <property>
    <name>dfs.replication</name>
    <value>2</value>
    </property>

    对于已经上传的文件,修改其副本个数

    hadoop fs -setrep [-R] [-w] <rep> <path/file>:  Set the replication level of a file.
                    The -R flag requests a recursive change of replication level
                    for an entire tree.
     
    例如:hadoop fs -setrep -R -w 2 /
    上面的这句话会将HDFS根目录下所有的文件的保存的份数该为2.
     

    手动kill集群上的job: 

    先用hadoop job -list查看任务列表,找到jobid,更直观的做法是到job tracker上查找jobid。再用hadoop job -kill jobId。

    HBase只返回前10行数据

    scan 'tb1', {LIMIT => 10}

    查看某个目录所有文件各自的大小:

    hadoop fs -du URI [URI …]

    查看整个文件夹的大小:

    hadoop fs -dus URI [URI …]

    在普通机器上执行 Hadoop2的MapReduce Job:

    安装完dpl-tools后,java -classpath /opt/hugedata/dpl/lib/*:aaa.jar  com.hugedata.dataanalysis.test.TestMR

     AccessControlException Permission denied: user=root, access=WRITE,异常的解决办法

    异常信息:

    FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. MetaException(message:Got exception: org.apache.hadoop.security.AccessControlException Permission denied: user=root, access=WRITE, inode="/user/hive/warehouse":hive:supergroup:drwxr-xr-x

     原因:以root用户启动的hive shell。因为hadoop2中hdfs增加了权限控制,默认情况下,只有hive才有目录/user/hive/warehouse的写权限,可以通过修改该目录的权限来达到以root用户启动hive shell也可以操作hive数据库的目的。

    解决办法:

    sudo -u hdfs hadoop fs -chmod -R 777 /user/hive/warehouse/

    然后再启动hive,执行create命令等需要写目录的命令就不会报错了。

     查询HBase各个表的大小(最终占用空间需要*备份数):

    hadoop  fs  -du   -h   /hbase/data/default

    非linux的root用户,切换到hdfs用户的方法:

    sudo su - hdfs

    非linux的root用户,切换到hbase用户的方法:

    sudo su -lm hbase

    列出坏块:

    hdfs fsck -list-corruptfileblocks

  • 相关阅读:
    Ubuntu MP4转MP3 软件:soundconverter
    Jupyter 中添加conda环境
    Pandas 比较两个 DataFrames 是否相同
    苹果ID不能登陆:The action could not be completed. Try again
    awsome node.js
    Cygwin
    library dep
    process
    MSCV version
    cmake_host_system_information
  • 原文地址:https://www.cnblogs.com/sixiweb/p/3264777.html
Copyright © 2011-2022 走看看