常用Hadoop命令

记录下常用的Hadoop相关的命令,忘记了容易找

HDFS命令

  • 某个文件的blocks信息
1
hadoop fsck /user/xx -files -blocks -locations
  • 改变一个文件或者目录的副本因子
1
hadoop fs -setrep -R 3 /user/xx
  • 查看app的log
    yarn logs -applicationId application_1452250357031_0175

  • set datanode 日志级别
    hadoop daemonlog -setlevel namenodeip:50070 datanode DEBUG
    或者 在hadoop-env.sh中添加
    export HADOOP_ROOT_LOGGER=DEBUG,RFA

  • 查看sequence文件
    hadoop dfs -text sequenceFile

  • 查看压缩文件
    lzo文件(先按照lzop命令) hadoop fs -cat /user/2017-03-06/part-r-00255.lzo | lzop -dc | head -1
    gz压缩 hadoop fs -cat /tmp/temp.txt.gz | gzip -d​ 或者 hadoop fs -cat /tmp/temp.txt.gz | zcat

  • lzo建立索引(方便切分多个split,会在当前hdfs目录下创建一个.index文件)
    hadoop jar lib/hadoop-lzo-0.4.15.jar com.hadoop.compression.lzo.DistributedLzoIndexer /user/news_74_8000_201705091820.lzo

kafka&zk命令

  • 启动kafka
    nohup bin/kafka-server-start.sh config/server.properties &
    bin/kafka-server-start.sh -daemon config/server.properties

  • 停止Kafka
    bin/bin/kafka-server-stop.sh

  • 列出kafka的topic
    bin/kafka-topics.sh --list --zookeeper 127.0.0.1:2181,10.xx:2181,10.xx:2181

  • 创建topic
    bin/kafka-topics.sh --create --zookeeper 127.0.0.1:2181,10.xx:2181,10.xx:2181 --topic test --partitions 3 --replication-factor 2

  • 增加topic的partitions
    bin/kafka-topics.sh --zookeeper 127.0.0.1:2181 --alter --topic three_replica --partitions 5

  • topic的描述信息
    bin/kafka-topics.sh --describe --zookeeper 10.xx:2181,10.xx:2181,10.xx:2181 --topic test

  • 命令行生产消息
    bin/kafka-console-producer.sh --broker-list 127.0.0.1:9092,10.xx:9092,10.xx:9092 --topic test

  • 命令行消费消息
    bin/kafka-console-consumer.sh --zookeeper 127.0.0.1:2181,10.xx:2181,10.1xx:2181 --topic test --from-beginning

  • 打开zk客户端
    bin/zkCli.sh -server xxx:2181,xx:2181

  • 删除zk上节点

1
2
delete /path //删除指定节点,只能删除非空节点
rmr /path //删除path节点及子节点
  • 查看zk目录
1
2
ls / //使用ls查看当前zookeeper中所包含的内容
ls2 / //查看当前节点数据并能看到更新次数等数据
  • 查看zk中哪个是leader及follower
    for i in {55..57};do echo stat | nc 10.102.143.$i 2181;done

  • zk

1
2
echo dump| nc 127.0.0.1 2181 //列出未经处理的会话和临时节点
echo conf | nc 127.0.0.1 2181 //输出相关服务配置的详细信息

redis命令

  • redis-cli 进入
1
2
redis-cli # localhost
redis-cli -h hostname -p port -a password

进入之后使用ping命令测试下链接是否成功,返回PONG表示链接成功。

  • 查看redis中的key
1
2
3
$ keys * # redis 中所有的key
$ keys h* # redis 中h开头的所有key
$ randomkey # 随机显示一个key

在client中使用上述命令时,有可能会报Error: Server closed the connection,导致命令无法使用,但其它命令正常,如lrange。

  • 查看key的数据类型
1
$ type xx:xx # xx:xx 为key
  • 使用scan查看匹配key
1
2
3
# SCAN cursor [MATCH pattern] [COUNT count]
scan 107102208 MATCH net:20170830:V* COUNT 1000
#注意:返回的游标不一定是递增的,可能后一次返回的游标比前一次的小。
  • 查看list中key对应的值
1
2
3
$ lrange top:article 1 2 # 显示key为top:article的list中start索引为1到end索引为2的数据
1) "{\"id\":\"CS25FCED05148UNS\",\"value\":[3873,11,64096,0,0,0]}"
2) "{\"id\":\"CS2EK6TU0001875P\",\"value\":[3850,10,94762,0,0,0]}"
  • 查看hash所有的key/value
1
2
3
$ hgetall xx:xx # xx:xx 为key
1) key1 # hash中的key
2) value1 # hash中的value

redis cluster命令

  • 连接客户端命令
    redis-cli -h ip -p port -c
您的肯定,是我装逼的最大的动力!