hadoop学习日志

hadoop

Hadoop是一个由Apache基金会所开发的分布式系统基础架构。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储
avatar
Hadoop实现了一个分布式文件系统( Distributed File System),其中一个组件是HDFS(Hadoop Distributed File System

HDFS有高容错性的特点,并且设计用来部署在低廉的(low-cost)硬件上

hadoop框架最核心的设计就是:HDFSMapReduce
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




posted @ 2022-04-25 17:59  InsiApple  阅读(28)  评论(0编辑  收藏  举报