一、Zookeeper
cd $ZOOKEEPER_HOME/bin
#服务端启动:
zkServer.sh start
#服务端关闭:
zkServer.sh stop
#客户端启动:
zkCli.sh start
#客户端关闭:
zkCli.sh stop
二、MySQL
#服务端启动:
service mysqld start
systemctl start mysql[d]
#服务端关闭:
service mysqld stop
#设置开机自启动
chkconfig mysqld on
三、Hadoop
#启动HDFS集群
start-dfs.sh
#启动yarn集群
start-yarn.sh
#启动日志服务
mr-jobhistory-daemon.sh start historyserver
#关闭HDFS集群
stop-dfs.sh
#关闭yarn集群
stop-yarn.sh
#关闭日志服务
mr-jobhistory-daemon.sh stop historyserver
四、Hive
启动服务:
nohup hive --service metastore & >> nohup.out
nohup hive --service hiveserver2 & >> hiveserver2.out
beeline
!connect jdbc:hive2://node03:10000
关闭服务:
ps -ef | grep hive
kill -9 pid
五、Spark
1. spark-shell
#spark-shell 之本地模式
bin/spark-shell
# 或者
bin/spark-shell \
--master local[2]
#spark-shell 之standalone模式
/export/servers/spark/bin/spark-shell \
--master spark://node03:7077
#spark-shell 之standalone-HA模式
/bin/spark-shell \
--master spark://node03:7077,node02:7077,node01:7077
2. spark-submit
#spark-submit 之本地模式
SPARK_HOME=/export/servers/spark
${SPARK_HOME}/bin/spark-submit \
--master local[2] \
--class org.apache.spark.examples.SparkPi \
${SPARK_HOME}/examples/jars/spark-examples_2.12-3.2.2.jar \
10
#spark-submit 之standalone模式
SPARK_HOME=/export/servers/spark
${SPARK_HOME}/bin/spark-submit \
--master spark://node01:7077 \
--class org.apache.spark.examples.SparkPi \
${SPARK_HOME}/examples/jars/spark-examples_2.12-3.2.2.jar \
3
#spark-submit 之standalone--HA模式
SPARK_HOME=/export/servers/spark
${SPARK_HOME}/bin/spark-submit \
--master spark://node01:7077,node02:7077 \
--class org.apache.spark.examples.SparkPi \
${SPARK_HOME}/examples/jars/spark-examples_2.12-3.2.2.jar \
10
#spark-submit 之Yarn-client模式
SPARK_HOME=/export/servers/spark
${SPARK_HOME}/bin/spark-submit \
--master yarn \
--deploy-mode client \
--driver-memory 512m \
--executor-memory 512m \
--num-executors 3 \
--total-executor-cores 3 \
--class org.apache.spark.examples.SparkPi ${SPARK_HOME}/examples/jars/spark-examples_2.12-3.2.2.jar \
10
#spark-submit 之Yarn-cluster模式
SPARK_HOME=/export/servers/spark
${SPARK_HOME}/bin/spark-submit \
--master yarn \
--deploy-mode cluster \
--driver-memory 512m \
--executor-memory 512m \
--num-executors 3 \
--total-executor-cores 3 \
--class org.apache.spark.examples.SparkPi \
${SPARK_HOME}/examples/jars/spark-examples_2.12-3.2.2.jar \
10
3. spark-sql
#spark-sql 模式(spark on hive)
nohup /export/servers/hive/bin/hive --service metastore &
/export/servers/spark/bin/spark-sql \
--master local[2] \
--conf spark.sql.shuffle.partitions=2
#开启sparksql的thrifserver,Spark Thrift Sevser将Spark Application当作一个服务运行,提供beeline客户端和JDBC方式访问,与Hive中HiveServer2服务一样的
/export/servers/spark/sbin/start-thriftserver.sh \
--hiveconf hive.server2.thrift.port=10001 \
--hiveconf hive.server2.thrift.bind.host=node03 \
--master local[2]
#监控WEB UI界面:
http://node03:4040/jobs/
#在实际大数据分析项目中,使用SparkSQL时,往往启动一个ThriftServer服务,分配较多资源(Executor数目和内存、CPU),不同的用户启动beeline客户端连接,编写SQL语句分析数据。
#停止使用:
/export/servers/spark/sbin/stop-thriftserver.sh
#使用SparkSQL的beeline客户端命令行连接ThriftServer,启动命令如下:
/export/servers/spark/bin/beeline
!connect jdbc:hive2://node03:10001
root
123456
##hive查询##
#方式1:(交互式命令行CLI)
hive
#方式2.1:
hive -e "create database mytest"
#方式2.2:(直接执行sql脚本)
hive -f /export/server/hive.sql
#方式3:(首先启动metastore服务,再启动hiveserver2服务)
beeline
将Hive当作一个服务启动(类似MySQL数据库,启动一个服务)端口号为10000
交互式命令行,CDH版本Hive建议使用此种方式,CLI方式过时。
nohup /export/servers/hive/bin/hive --service metastore &
nohup /export/servers/hive/bin/hive --service hiveserver2 &
JDBC/ODBC方式,类似MySQL中JDBC/ODBC方式
- SparkSQL模块是从Hive框架衍生发展而来,所以Hive提供的所有功能(数据交互方式)都支持
六、Flink
##Flink## node01:8081
-- flink-standalone模式
启动集群 ./bin/start-cluster.sh
停止集群 ./bin/stop-cluster.sh
单独启动:bin/jobmanager.sh start bin/taskmanager.sh start
单独停止:bin/jobmanager.sh stop bin/taskmanager.sh stop
bin/flink run \
/export/servers/flink-1.13.2-standalone/examples/batch/WordCount.jar \
--input hdfs://node01:8020/user/mappoi/data/flink_test/wordcount/
-- flink-standalone-HA模式
bin/flink run \
/export/servers/flink-1.13.2-standalone/examples/batch/WordCount.jar \
--input hdfs://node01:8020/user/mappoi/data/flink_test/wordcount/
>>>>>>>>>>>>>>>>>>>>>>>>>
--***flink-yarn-session模式***
(yarn-session.sh开辟资源 + flink run 提交任务)
./bin/yarn-session.sh
-n (--container) : TaskManager的数量 (1.10已经废弃)
-s (--slots):每个TaskManager的Slot数量,默认一个slot一个core,默认每个taskManager的slot的个数为1,
有时可以多一些taskmanager,做冗余
-jm: JobManager的内存 (单位:MB)
-q:显示可用的Yarn资源(内存,内核)
-tm:每个TaskManager容器的内存(默认值:MB)
-nm:yarn的appName (现在yarn的ui上的名字)
-d:后台执行
bin/yarn-session.sh -tm 1024 -s 2 -d 【yarn-session.sh -n 3 -jm 1024 -tm 1024】
bin/flink run \
-p 6 \
examples/batch/WordCount.jar
yarn application -kill application_xxxxxxx
--***flink-yarn-per_job模式***
上面的yarn session是在Hadoop Yarn环境下启动的一个Flink cluster集群,里面的资源可以共享给其他的Flink作业。
我还可以再Yarn上启动一个Flink作业,这里我们还是使用./bin/flink,但是不需要事先启动YARN session:
bin/flink run \
-m yarn-cluster \
./examples/batch/WordCount.jar
yarn application -kill application_xxxxxxx
常用参数:
--p 程序默认并行度
下面的参数仅可用于 -m yarn-cluster 模式
--yjm JobManager可用内存,单位兆
--ynm YARN程序的名称
--yq 查询YARN可用的资源
--yqu 指定YARN队列是哪一个
--ys 每个TM会有多少个Slot
--ytm 每个TM所在的Container可申请多少内存,单位兆
--yD 动态指定Flink参数
-yd 分离模式(后台运行,不指定-yd, 终端会卡在提交的页面上)
在创建集群的时候,集群的配置参数就写好了,但是往往因为业务需要,要更改一些配置参数,这个时候可以不必因为一个实例的提交而修改conf/flink-conf.yaml;
可以通过:-yD <arg> Dynamic properties
来覆盖原有的配置信息:比如:
bin/flink run -m yarn-cluster -yD fs.overwrite-files=true examples/batch/WordCount.jar
-yD fs.overwrite-files=true -yD taskmanager.network.numberOfBuffers=16368
--***flink-yarn-application模式***
application模式使用bin/flink run-applocation提交作业,通过-t指定部署环境,目前application模式支持部署再yarn上
(-t yarn-application) 和 k8s 上 (-t kubernetes-application);并支持通过 -D 参数只当通用的运行配置,
比如 jobmanager/taskmanager 内存、checkpoint时间间隔等。
通过 bin/flink run-application -h 可以看到 -D/-t 的详细说明: (-e 已经被废弃,可以忽略)
./bin/flink run-application \
-t yarn-application \
-Djobmanager.memory.process.size=1024m \
-Dtaskmanager.memory.process.size=1024m \
-Dyarn.application.name="MyFlinkWordCount" \
./examples/batch/WordCount.jar --output hdfs://node01:8020/wordcount/output_51
./bin/flink run-application \
-t yarn-application \
-p 3 \
-Djobmanager.memory.process.size=1024m \
-Dtaskmanager.memory.process.size=1024m \
-Dyarn.application.name="MyFlinkWordCount" \
-Dtaskmanager.numberOfTaskSlots=3 \
./examples/batch/WordCount.jar --output hdfs://node01:8020/wordcount/output_52
当然,指定并发还可以使用?-Dparallelism.default=3,而且社区目前倾向使用 -D+通用配置代替客户端命令参数(比如 -p)。
所以这样写更符合规范:
./bin/flink run-application \
-t yarn-application \
-Dparallelism.default=3 \
-Djobmanager.memory.process.size=1024m \
-Dtaskmanager.memory.process.size=1024m \
-Dyarn.application.name="MyFlinkWordCount" \
-Dtaskmanager.numberOfTaskSlots=3 \
./examples/batch/WordCount.jar --output hdfs://node01:8020/wordcount/output_53
bin/flink run-application \
-t yarn-application \
-Djobmanager.memory.process.size=1024m \
-Dtaskmanager.memory.process.size=1024m \
-Dtaskmanager.numberOfTaskSlots=1 \
-Dparallelism.default=2 \
-Dyarn.provided.lib.dirs="hdfs://node01:8020/flink/lib;hdfs://node01:8020/flink/plugins" \
-Dyarn.application.name="batchWordCount" \
hdfs://node01:8020/flink/user-tasks/WordCount.jar --output hdfs://node01:8020/wordcount/output_54
可以预先上传 flink 客户端依赖包 (flink-dist/lib/plugin) 到远端存储(一般是 hdfs,或者共享存储),然后通过 yarn.provided.lib.dirs 参数指定这个路径,flink 检测到这个配置时,就会从该地址拉取 flink 运行需要的依赖包,省去了依赖包上传的过程,yarn-cluster/per-job 模式也支持该配置。在之前的版本中,使用 yarn-cluster/per-job 模式,每个作业都会单独上传 flink 依赖包(一般会有 180MB左右)导致 hdfs 资源浪费,而且程序异常退出时,上传的 flink 依赖包往往得不到自动清理。通过指定 yarn.provided.lib.dirs,所有作业都会使用一份远端 flink 依赖包,并且每个 yarn nodemanager 都会缓存一份,提交速度也会大大提升,对于跨机房提交作业会有很大的优化。
也可以将 yarn.provided.lib.dirs 配置到 conf/flink-conf.yaml,这时提交作业就和普通作业没有区别了
./bin/flink run-application \
-t yarn-application \
-Djobmanager.memory.process.size=1024m \
-Dtaskmanager.memory.process.size=1024m \
-Dyarn.application.name="MyFlinkWordCount" \
-Dtaskmanager.numberOfTaskSlots=3 \
/local/path/to/my-application.jar
注意:如果自己指定 yarn.provided.lib.dirs,有以下注意事项:
?需要将 lib 包和 plugins 包地址用;分开,从上面的例子中也可以看到,将 plugins 包放在 lib 目录下可能会有包冲突错误
?plugins 包路径地址必须以 plugins 结尾,例如上面例子中的 hdfs://node01:8020/flink/plugins
?hdfs 路径必须指定 nameservice(或 active namenode 地址),而不能使用简化方式(例如 hdfs://node01:8020/flink/libs)
该种模式的操作使得 flink 作业提交变得很轻量,因为所需的 Flink jar 包和应用程序 jar 将到指定的远程位置获取,而不是由客户端下载再发送到集群。这也是社区在 flink-1.11 版本引入新的部署模式的意义所在。
Application 模式在停止、取消或查询正在运行的应用程序的状态等方面和 flink-1.11 之前的版本一样,可以采用现有的方法。
注意:
如果使用的是flink on yarn方式,想切换回standalone模式的话,需要删除文件:【/tmp/.yarn-properties-root】
因为默认查找当前yarn集群中已有的yarn-session信息中的jobmanager
如果是分离模式运行的YARN JOB后,其运行完成会自动删除这个文件
但是会话模式的话,如果是kill掉任务,其不会执行自动删除这个文件的步骤,所以需要我们手动删除这个文件。
七、Kafka
八、HBase
九、Phoenix
十、Redis
十一、Mongo
十二、ELK
十三、Dolphinscheduler
十四、Zeppelin
十五、Superset
十六、NetCat