后续更新
flume(单机):
1.将lib文件夹下的guava包删除,以兼容hadoop3.1.3:
rm /opt/module/flume/lib/guava-11.0.2.jar
2.启动flume监控:
bin/flume-ng agent -n a1 -c conf/ -f job/flume-file-hdfs.conf
3.停止flume监控:
ps -ef kill掉进程即可
hadoop(集群):
1.配置文件:
core-site.xml、hdfs-site.xml、maprd-site.xml、yarn-site.xml
salves/wokers
2.常用端口号说明:
2.X版本:
NameNode通信端口:8020/9000
hdfs文件系统的webUI端口:50070
ResourceManager的webUI端口:8088
历史服务器通信端口:19888
3.X版本:
NameNode通信端口:8020/9000/9820
hdfs文件系统的webUI端口:9870
ResourceManager的webUI端口:8088
历史服务器通信端口:19888
3.启动集群
1.集群第一次启动(首次格式化):
hdfs namenode -format
注意:第一次启动如果报错,需要重新格式化的话,执行以下步骤:
1)保证namenode和datanode进程是停止的
2)删除集群所有机器的data和logs目录
3)重新执行格式化命令
2.启动命令(启动hdfs===>启动yarn===>启动historyserver):
sbin/start-dfs.sh
sbin/start-yarn.sh
bin/mapred --daemon start historyserver
3.停止命令(和启动相反,关闭historyserver===>关闭yarn===>关闭hdfs):
sbin/stop-yarn.sh
sbin/stop-yarn.sh
bin/mapred --daemon stop historyserver
kafka(集群):
1.启动命令:
前台启动:
1)bin/kafka-server-start.sh config/server.properties
后台启动:
1)bin/kafka-server-start.sh -daemon config/server.properties
2)nohup bin/kafka-server-start.sh config/server.properties &
2.停止命令:
bin/kafka-server-stop.sh
3.topic相关命令:
创建topic(一定要带上zk的地址,就算zk在配置文件中已经指定):
bin/kafka-topics.sh -zookeeper localhost:2181 --create --partitions 3 --replication-factor 3 --topic test_kafka_topic
bin/kafka-topics.sh --create --zookeeper localhost:2181/kafka --replication-factor 3 --partitions 3 --topic test_kafka_topic
查询topic列表:
bin/kafka-topics.sh --list --zookeeper localhost:2181
查询某个topic详情:
bin/kafka-topics.sh --describe --zookeeper localhost:2181 --topic test_kafka_topic
增加某个topic的分区数:
bin/kafka-topics.sh --zookeeper localhost:2181 --alter --topic test_kafka_topic --partitions 5
查看 topic 指定分区 offset 的最大值或最小值
最大值:bin/kafka-run-class.sh kafka.tools.GetOffsetShell --topic test_kafka_topic --time -1 --broker-list 127.0.0.1:9092 --partitions 0
最小值:bin/kafka-run-class.sh kafka.tools.GetOffsetShell --topic test_kafka_topic --time -2 --broker-list 127.0.0.1:9092 --partitions 0
删除topic:
bin/kafka-topics.sh --delete --zookeeper localhost:2181 --topic test_kafka_topic
说明:在${KAFKA_HOME}/config/server.properties中配置 delete.topic.enable 为 true,这样才能生效,删除指定的 topic主题
4.消息相关命令:
生产者发送消息:
bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test_kafka_topic
消费者消费消息:
1)(第一次消费)从头开始消费:
bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --from-beginning --topic test_kafka_topic
2)(实时监控消费)从尾开始消费:
bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test_kafka_topic --offset latest
3)(这里设置3个分区演示)从尾开始,并且指定分区:
bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test_kafka_topic --offset latest --partition 0
bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test_kafka_topic --offset latest --partition 1
bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test_kafka_topic --offset latest --partition 2
4)从尾开始,指定分区,指定偏移量:
bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test_kafka_topic --partition 0 --offset 100
5)指定分组消费数据:
bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --from-beginning --topic test_kafka_topic --group t1
6)(用于分析测试)取指定个数:
bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test_kafka_topic --offset latest --partition 0 --max-messages 10
5.消费者组相关命令:
查看消费者Group列表:
bin/kafka-consumer-groups.sh --bootstrap-server localhost:9092 --list
查看Group详情:
bin/kafka-consumer-groups.sh --bootstrap-server localhost:9092 --group test_group --describe
输出日志如下:
Consumer group 'test_group' has no active members.
TOPIC PARTITION CURRENT-OFFSET LOG-END-OFFSET LAG CONSUMER-ID HOST CLIENT-ID
test 0 5 5 0 - - -
说明:
CURRENT-OFFSET: 当前消费者群组最近提交的 offset,也就是消费者分区里读取的当前位置
LOG-END-OFFSET: 当前最高水位偏移量,也就是最近一个读取消息的偏移量,同时也是最近一个提交到集群的偏移量
LAG:消费者的 CURRENT-OFFSET 与 broker 的 LOG-END-OFFSET 之间的差距
删除Group中的Topic:
bin/kafka-consumer-groups.sh --bootstrap-server localhost:9092 --group test_group --topic test_topic --delete
删除Group:
bin/kafka-consumer-groups.sh --bootstrap-server localhost:9092 --group test_group --delete
6.其他命令:
平衡leader:
bin/kafka-preferred-replica-election.sh --bootstrap-server localhost:9092
自带测压工具:
bin/kafka-producer-perf-test.sh --topic test --num-records 100 --record-size 1 --throughput 100 --producer-props bootstrap.servers=localhost:9092
7.配置文件:
zookeeper.properties:
需要修改内容如下:
broker.id=0 #id,集群中每个机器的id一定要不一样
port=9092 #端口号
host.name=localhost #单机可直接用localhost
log.dirs=/opt/monitor/kafka/kafka_dat #日志存放路径可修改可不修改,一般建议修改,需要在kafka根目录创建kafka_data目录
zookeeper.connect=localhost:2181 #zookeeper地址和端口,单机配置部署,localhost:2181
Hive(单机):
1.前置条件:
hdoop正常启动
MySql服务正常:需要create database myhive,在hive-site.xml文件中需要指定;
mysql-connector-java.jar上传到hive的lib目录下
2.配置文件(均需要手动复制样本来创建):
conf/hive-env.sh
conf/hive-site.xml
3.启动命令:
本地shell启动:bin/hive
远程shell启动:bin/beeline
远程shell连接需要启动两个服务:bin/hiveserver2、bin/metastore
使用DataGrip等远程工具连接的原理也是连接beeline客户端,相当于执行了bin/beeline
4.停止命令:
ps -ef kill掉metastore和hiveserver2进程即可
5.Hql命令(这里只列举两个容易混淆的):
1)从hdfs文件中加载数据到hive表中(ods层数据导入常用):
load data inpath '/hgfs/whirehouse/car/data/catInfo.txt' into table ods_test_table
2)从hive表中提取数据到另一张hive表中(ods下层常用):
insert overwrite table dwd_test_table partition(datatime='2024-01-01')
select *
from ods_test_table