Hbase中根據Rowkey的前綴Prefix查詢數據:html
scan 'test_xiaomifeng_monitoring_log',{FILTER => "(PrefixFilter ('166_20130816080'))"}java
查看錶結構:node
describe 'table1'linux
建立表:create 'table1','d'shell
第一個是表名,第二個是family數據庫
建表時能夠設置TTL過時時間:create 'tableName',{NAME=>'cf',TTL=>超時時間秒爲單位} apache
後期修改oop
首先停表:disable 'tableName'spa
而後修改TTL失效時間:alter 'tableName',NAME => 'cf', TTL => 超時時間秒爲單位rest
恢復表: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之間批量拷貝數據 :
Usage: hdfs dfs -copyFromLocal <localsrc> URI
Similar to put command, except that the source is restricted to a local file reference.
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>
對於已經上傳的文件,修改其副本個數:
手動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