hadoop学习日志
hadoop
Hadoop是一个由Apache基金会所开发的分布式系统基础架构。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储
Hadoop实现了一个分布式文件系统( Distributed File System),其中一个组件是HDFS(Hadoop Distributed File System
HDFS有高容错性的特点,并且设计用来部署在低廉的(low-cost)硬件上
hadoop框架最核心的设计就是:HDFS 和 MapReduce
HDFS为海量的数据提供了存储
MapReduce则为海量的数据提供了计算
优点
高可靠性、高扩展性、高效性、高容错性、低成本
基本命令
./bin/hdfs namenode -format
格式化
重启网络管理器
service network restart
暂时关闭防火墙
systemctl stop firewalld
start-all.sh
./sbin/start-all.sh
启动所有的Hadoop守护进程。包括NameNode、 Secondary NameNode、DataNode、JobTracker、 TaskTrack
stop-all.sh
停止所有的Hadoop守护进程
start-dfs.sh
启动Hadoop HDFS守护进程NameNode、SecondaryNameNode和DataNode
stop-dfs.sh
停止Hadoop HDFS守护进程NameNode、SecondaryNameNode和DataNode
查看指定目录下内容
hdfs dfs –ls [文件目录]
hdfs dfs -ls -R //显示目录结构
将本地文件存储至hadoop
hdfs dfs –put [本地地址] [hadoop目录]
hdfs dfs –put /home/t/file.txt /user/t
将hadoop上某个文件down至本地已有目录下
hadoop dfs -get [文件目录] [本地目录]
hadoop dfs –get /user/t/ok.txt /home/t
删除hadoop上指定文件
hdfs dfs –rm [文件地址]
hdfs dfs –rm /user/t/ok.txt
在 /home/hadoop/hbase-2.2.3/bin 下 执行
cd $HBASE_HOME
./bin/start-hbase.sh
启动zookeeper
cd /home/hadoop/apache-zookeeper-3.5.7-bin
启动命令:./bin/zkServer.sh start
停止命令:./bin/zkServer.sh stop
重启命令:./bin/zkServer.sh restart
状态查看命令:./bin/zkServer.sh status
HDFS
数据以文件方式直接存储
连续访问效率高
随机访问效率低
HBase
数据以索引格式特殊存储
连续访问效率低
随机访问效率高
HBase
查看hbase服务器状态:status
查询Hbase版本:version
创建表
create ‘表名称’, ‘列族名称1’,‘列族名称2’,‘列族名称N’
create 'user','info'
创建namespace
create_namespace 'test'
删除namespace
drop_namespace 'test'
查看namespace
describe_namespace 'test'
列出全部namespace
list_namespace
在namespace下创建表
create 'test:user', 'info'
查看namespace下的表
list_namespace_tables 'test'
添加数据
put 'user','20070301', 'info:name', 'ljs'
put 'user','20070301', 'info:age', '30'
put 'user','20070301', 'info:sex', '1'
根据键值查询数据
get 'user','20070301'
get 'user','20070301', 'info'
查看所有表
list
查看表结构:
desc 'user'
查看表中的记录总数:
count '表名称'
查看META表数据
scan 'hbase:meta'
scan 'hbase:meta', {COLUMNS => 'info:regioninfo'}
查询整表
scan 'user'
查询多条数据
scan 'user',{COLUMNS =>'info',LIMIT =>2, STARTROW => '20070101',STOPROW=>'20100101'}
scan 'user', {COLUMNS =>'info', TIMERANGE => [1519368887635, 1519369047487]}
根据行的前缀过滤
scan 'user', FILTER => "PrefixFilter ('2007')"
根据列的前缀过滤
scan 'user', FILTER=>"ColumnPrefixFilter('name')"
根据ValueFilter的值过滤
scan 'user', {FILTER=>"ValueFilter(=,'substring:ljs')"}
scan 'user', FILTER=>"ColumnPrefixFilter('name') AND ValueFilter(=,'substring:ljs')"
根据RowFilter的值过滤
scan 'user', FILTER=>"RowFilter(<=,'binary:20170301')"
根据FamilyFilter的值过滤
scan 'user', FILTER=>"FamilyFilter(=,'substring:info')"
根据rowkey里面包含的值过滤
import org.apache.hadoop.hbase.filter.CompareFilter
import org.apache.hadoop.hbase.filter.SubstringComparator
import org.apache.hadoop.hbase.filter.RowFilter
scan 'user', {FILTER => RowFilter.new(CompareFilter::CompareOp.valueOf('EQUAL'), SubstringComparator.new('2007'))}
删除记录
delete '表名' ,'行名称' , '列名称’
delete 'user', '20070301', 'info:age‘
drop 表
disable 'user'
drop 'user'
HBase Shell脚本
可以把所有的HBase Shell命令写入一个文件内,像Linux Shell脚本程序一样,顺序执行所有命令.
hbase shell test.sh
本文来自博客园,作者:InsiApple,转载请注明原文链接:https://www.cnblogs.com/InsiApple/p/16191391.html