zookeeper
Zookeeper服务器端指令
指令 | 说明 |
---|
sh zkServer.sh start | 启动服务器端 |
sh zkServer.sh stop | 停止服务器端 |
sh zkServer.sh restart | 重启服务器端 |
sh zkServer.sh status | 查看服务器端的状态 |
sh zkCli.sh | 启动客户端 |
Zookeeper客户端指令
指令 | 说明 |
---|
create /node01 “hello” | 在根节点下创建节点node01,并且数据为"hello" |
create -e /node02 ‘’ | 在根节点下创建临时节点node02,并且数据为空。该节点在客户端关闭之后会删除 |
create -s /node03 “hi” | 在根节点下创建顺序节点/node03000000X,并且数据为"hi" |
create -e -s /node04 ‘’ | 在根节点下创建临时顺序节点/node040000000X,并且数据为空。该节点在客户端关闭之后会删除 |
get /node01 | 获取/node01的数据及节点信息 |
delete /node01 | 删除/node01。注意,如果/node01有子节点,那么不能删除 |
rmr /node01 | 删除/node01及其子节点 |
set /node01 “zk” | 将/node01中的数据更新为"zk" |
ls / | 查看/下的所有的子节点 |
quit | 推出客户端 |
Zookeeper集群指令
1.查看节点状态:echo stat|nc ip地址 2181
2. 查看节点是否运行:echo ruok|nc ip地址 2181
测试是否启动了该Server,若回复imok表示已经启动。
3. 查看节点配置信息:echo conf|nc ip地址 2181
4. 关闭指定节点:echo kill|nc ip地址 2181
节点信息
名称 | 说明 |
---|
cZxid | 创建该节点所分配的全局事务id |
ctime | 创建时间 |
mZxid | 更新该节点数据所分配的全局事务id |
mtime | 更新时间 |
pZxid | 子节点的最新事务id |
cversion | 子节点版本,表示对子节点的更改次数 |
dataversion | 数据版本,数据每发生一次变化,数据版本增加1 |
aclVersion | ACL的更新次数,实际上是权限更新的次数 |
ephemeralOwner | 如果不是临时节点,则此值为0;如果是临时节点,则此值是其会话id |
dataLength | 数据的字节个数 |
numChildren | 子节点的个数 |
hadoop
HDFS
命令 | 说明 |
---|
hadoop fs -rmr /park | 删除park目录,即使目录里有文件 |
hadoop fs -rm /park/文件名 | 删除hdfs 的park目录的指定文件 |
hadoop fs -rmdir /park | 删除park目录,但是前提目录里没有文件 |
haddop jar xxx.jar | 执行jar包 |
hadoop fs -touchz /park/2.txt | 创建一个空文件 |
hadoop fs -getmerge /park /root/tmp | 将park目录下的所有文件合并成一个文件,并下载到linux的root目录下的tmp目录 |
hadoop dfsadmin -safemode leave | 离开hadoop安全模式 |
hadoop dfsadmin -safemode enter | 进入安全模式 |
hadoop dfsadmin -rollEdits | 手动执行fsimage文件和Edis文件合并元数据 |
hadoop dfsadmin -report | 查看存活的datanode节点信息 |
hadoop fsck /park | 汇报/park目录 健康状况 |
hadoop fsck /park/1.txt -files -blocks -locations -racks | 查看1.txt 这个文件block信息以及机架信息 |
hadoop fs -expunge | 手动清空hdfs回收站 |
flume
转:Flume 1.8用户手册中文版
在bin目录下./flume-ng agent -n a1 -c ../conf -f ../conf/template.conf -Dflume.root.logger=INFO,console
#template.conf
#配置Agent a1 的组件
a1.sources=r1
a1.sinks=s1
a1.channels=c1
#描述/配置a1的source1
a1.sources.r1.type=netcat
a1.sources.r1.bind=0.0.0.0
a1.sources.r1.port=8888
a1.sources.r1.interceptors=i1
a1.sources.r1.interceptors.i1.type=timestamp
#描述sink
a1.sinks.s1.type=hdfs
a1.sinks.s1.hdfs.path=hdfs://192.168.1.1:9000/weblog/reportTime=%Y-%m-%d
a1.sinks.s1.hdfs.fileType=DataStream
a1.sinks.k1.hdfs.rollInterval=30
a1.sinks.k1.hdfs.rollSize=0
a1.sinks.k1.hdfs.rollCount=1000
#描述内存channel
a1.channels.c1.type=memory
a1.channels.c1.capacity=1000
a1.channels.c1.transactionCapacity=100
#为channel 绑定 source和sink
a1.sources.r1.channels=c1
a1.sinks.s1.channel=c1
hive
命令 | 作用 |
---|
create table stu1(id int,name string) row format delimited fields terminated by ’ '; | 创建stu1表,并指定分割符 空格。 |
load data local inpath ‘/home/software/1.txt’ into table stu; | 通过加载文件数据到指定的表里 1. 在执行完这个指令之后,发现hdfs stu目录下多了一个1.txt文件。由此可见,hive的工作原理实际上就是在管理hdfs上的文件,把文件里数据抽象成二维表结构,然后提供hql语句供程序员查询文件数据2. 可以做这样的实验:不通过load 指令,而通过插件向stu目录下再上传一个文件,看下hive是否能将数据管理到stu表里。 |
create table stu2 like stu | 创建一张stu2表,表结构和stu表结构相同 like只复制表结构,不复制数据 |
insert overwrite table stu2 select * from stu | 把stu表数据插入到stu2表中 |
insert overwrite local directory ‘/home/stu’ row format delimited fields terminated by ’ ’ select * from stu; | 将stu表中查询的数据写到本地的/home/stu目录下 |
insert overwrite directory ‘/stu’ row format delimited fields terminated by ’ ’ select * from stu; | 将stu表中查询的数据写到HDFS的stu目录下 |
from stu insert overwrite table stu1 select * insert overwrite table stu2 select *; | 将stu表中查询的数据写到stu1以及stu2两张表中 |
alter table stu rename to stu2 | 为表stu重命名为stu2 |
alter table stu add columns (age int); | 为表stu增加一个列字段age,类型为int |
外部表创建命令
create external table stu (id int,name string) row format delimited fields terminated by ' ' location 'hdfs目录路径'
分区表指令
命令 | 作用 |
---|
create table book (id int, name string) partitioned by (category string) row format delimited fields terminated by ‘\t’; | 创建book表,以category作为分区 在创建分区表时,partitioned字段可以不在字段列表中。生成的表中自动就会具有该字段。 |
load data local inpath ‘/home/cn.txt’ overwrite into table book partition (category=‘cn’); | 将本地文件cn.txt添加到book表中,分区字段为cn 在HDFS下生成category=cn目录 |
select * from book where category=‘cn’; | 查看分区为cn的数据 |
ALTER TABLE book add PARTITION (category = ‘jp’) location ‘/user/hive/warehouse/park.db/book/category=jp’; | 将指定的目录添加为分区字段 |
show partitions iteblog; | 查看分区 |
msck repair table book; | 修复分区 |
alter table book drop partition(category=‘cn’); | 删除分区 |
alter table book partition(category=‘french’) rename to partition (category=‘hh’); | 修改分区的名字 |
分桶表
命令 | 作用 |
---|
create table teacher(name string) clustered by (name) into 3 buckets row format delimited fields terminated by ’ '; | 创建teacher表,以name作为分桶机制,分为3个桶 |
insert overwrite table teacher select * from tmp; | 将tmp表中的数据添加到teacher表中 实际上是产生了3个文件用于存储不分桶的数据 |
select * from teacher tablesample(bucket 1 out of 3 on name); | 进行抽样 抽样格式为:bucket x out of y on XXX |
抽样描述:
- x表示抽样的起始桶,例如bucket 1 out of 3表示从第1 个桶开始抽取数据
- y决定抽样的比例,要求必须是桶数的因子或者整数倍
a. 如果桶数为6,y为2,则表示抽取6/2=3个桶中的数据
b. 如果桶数为6,y为3,则表示抽取6/3=2个桶中的数据
c. 如果桶数为6,y为12,则表示抽取6/12=0.5个桶中的数据 - 如果桶数为6,抽样为bucket 1 out of 3 on id表示从第1个桶开始抽样,抽取2个桶的数据,所以抽取的样本为1和4桶中的数据
函数
转发冷小鱼:Hive函数大全
sqoop
转:Sqoop用户指南(v1.4.6)
常用命令 | 作用 |
---|
sh sqoop list-databases --connect jdbc:mysql://192.168.150.138:3306/ -username root -password root | 查看mysql所有数据库 |
sh sqoop list-tables --connect jdbc:mysql://hadoop02:3306/hive -username root -password root | 查看指定数据库下的所有表 |
sh sqoop import --connect jdbc:mysql://192.168.150.138:3306/test --username root --password root --table tabx --target-dir ‘/sqoop/tabx’ --fields-terminated-by ‘,’ -m 1; | 关系型数据库 ->hdfs |
sh sqoop export --connect jdbc:mysql://192.168.150.138:3306/test --username root --password root --export-dir ‘/sqoop/tabx/part-m-00000’ --table taby -m 1 --fields-terminated-by ‘,’ | hdfs ->关系型数据库,注:sqoop只能导出数据,不能自动建表。所以在导出之前,要现在mysql数据库里建好对应的表 |
sh sqoop import -help | 查看import的帮助指令 |
hbase
常用命令 | 作用 |
---|
./hbase-daemon.sh start master | 启动集群master |
create ‘tab1’,‘colfamily1’,‘colfamily2’ | 创建表,t1指表名,c1,c2 列族名 |
list | 查看一共有哪些表 |
put ‘tab1’,‘行键名’,‘colfamily1:列名’,‘内容’ | 插入数据,注意,行键名在一张表里要全局唯一 |
get ‘tab1’,‘行键名’ | 根据表名和行键查询 |
scan ‘tab1’ | 扫描所有数据,也可以跟指定条件:如scan 'tab1',{COLUMNS=>['colfamily1']} ,scan 'tab1',{RAW=>true,VERSIONS=>3} |
deleteall ‘tab1’,‘row-1’ | 根据表名、行键删除整行数据 |
disable ‘tab1’ | 禁用表 |
drop ‘tab1’ | 删除表,前提是先禁用表 |
kafka
常用命令 | 作用 |
---|
启动Kafaka | sh kafka-server-start.sh …/config/server.properties |
sh kafka-topics.sh --create --zookeeper zkip地址:2181 --replication-factor 1 --partitions 1 --topic 主题名称 | 创建主题,在创建的时候,复本数量要小于等于节点数量 |
sh kafka-topics.sh --list --zookeeper zkip地址:2181 | 查看所有的topic |
sh kafka-console-producer.sh --broker-list zkip地址:9092 --topic 主题名称 | 启动生产者 |
sh kafka-console-consumer.sh --zookeeper zkip地址:2181 --topic 主题名称 --from-beginning | 启动消费者 |
sh kafka-topics.sh --delete --zookeeper zkip地址:2181 --topic 主题名称 | 删除topic |