1.Kerberos介绍
Kerberos是一种计算机网络授权协议,用来在非安全网络中,对个人通信以安全的手段进行身份认证。这个词又指麻省理工学院为这个协议开发的一套计算机软件。软件设计上采用客户端/服务器结构,并且能够进行相互认证,即客户端和服务器端均可对对方进行身份认证。可以用于防止窃听、防止重放攻击、保护数据完整性等场合,是一种应用对称密钥体制进行密钥管理的系统。
将downstream和recursive按钮的点击状态取消,然后点击clear,最后选择Ignore All Deps,然后点击run
将downstream和recursive按钮的点击状态取消,然后点击clear,最后选择Ignore Task Deps,然后点击run
1 | https://airflow.apache.org/docs/apache-airflow/stable/cli-and-env-variables-ref.html#dags |
1 | airflow users create --username airflow --role Admin --password airflow --email airflow@xxx.com --lastname airflow --firstname airflow |
1 | airflow dags delete {dag_id} |
1 | airflow dags trigger --help |
注意execution_time要在start_date和end_date之间,否则会报
1 | ValueError: The execution_date [2022-07-19T08:00:00+00:00] should be >= start_date [2022-07-20T00:00:00+00:00] from DAG's default_args |
1 | airflow dags backfill -s 2022-01-01 -e 2022-01-10 DAG_ID |
执行的任务是从2022-01-01到2022-01-09,包含startr_date,不包含end_date
1 | from airflow.hooks.base import BaseHook |
点击DAG Runs
1.在uri中配置 hive://localhost:10000/default
2.查询
3.如果你的hive集群是带有kerberos认证的,hive数据源需要这样配置
1 | hive://xxx:xxx/default?auth=KERBEROS&kerberos_service_name=hive |
如果在连接的时候报了如下的错
1 | Could not start SASL: b'Error in sasl_client_start (-1) SASL(-1): generic failure: GSSAPI Error: Unspecified GSS failure |
那就就是你没有用keytab进行认证
1 | kinit -kt xxx.keytab xxx@XXXX |
1.添加mysql数据源
测试连接的时候遇到
1 | No module named 'MySQLdb'" |
安装mysqlclient
1 | pip install mysqlclient |
如果遇到
1 | ERROR: /bin/sh: 1: mysql_config: not found |
安装
1 | sudo apt-get install libmysqlclient-dev python3-dev |
添加mysql的url
1 | mysql://root:xxxx@localhost/mysql?charset=utf8 |
测试ok
1.查看hdfs文件的block信息
不正常的文件
1 | hdfs fsck /logs/xxx/xxxx.gz.gz -files -blocks -locations |
**Superset **是Airbnb 开源的大数据可视化平台
其支持的datasource
1 | https://superset.incubator.apache.org/index.html?highlight=datasource |
类似的开源项目Zeppelin所支持的datasource
1 | https://zeppelin.apache.org/docs/0.8.0/quickstart/sql_with_zeppelin.html |
CDH安装官方参考文档:
1 | https://www.cloudera.com/documentation/enterprise/5-16-x/topics/configure_cm_repo.html |
如果是在生产环境进行安装,建议查看cloudera官方提供的机型建议
1 | https://docs.cloudera.com/documentation/enterprise/release-notes/topics/hardware_requirements_guide.html |
同时还在CDH的角色分布建议,参考:如何给Hadoop集群划分角色
1.安装的docker版本
1 | docker -v |
2.查看本地的镜像
1 | docker images |
3.拉取镜像
1 | docker pull centos:7 |
4.编写Dockerfile
1 | FROM nginx |
5.build Dockerfile
1 | docker build -t . xxx # 镜像的名字 |
或者
1 | docker build -f ./Dockerfile . -t xxx:xxxx |
bash
1 | docker run -i -t ubuntu:15.10 /bin/bash |
将容器中的8080端口映射到本机的18080端口
1 | docker run -p 18080:8080 -it xxxx:v1.0.0dev /bin/bash |
如果是多个端口,使用多个-p
1 | -p 18080:8080 -p 18081:8081 |
参数
1 | -it:这是两个参数,一个是 -i:交互式操作,一个是 -t 终端。我们这里打算进入 bash 执行一些命令并查看返回结果,因此我们需要交互式终端。 |
6.运行
1 | docker run xxx # 镜像的名字 |
7.查看自己镜像的id
1 | docker ps |
8.列出所有的容器,包括exit状态的容器
1 | docker ps -a |
9.查看内网ip地址等运行情况
1 | docker inspect id | grep IP |
9.请求nginx
1 | curl 172.17.0.5:80 |
10.如果想要镜像不退出,然后进行镜像中
1 | # run |
sleep.sh内容
1 | #!/usr/bin/env bash |
或者
1 | ENTRYPOINT ["/bin/bash","-c","while true; do sleep 10000; done"] |
然后执行
1 | docker run --network=host xxxx |
查看id
1 | docker ps |
进入镜像中
1 | docker exec -it xxxx bash |
11.删除container,先停再删
1 | docker stop 3f6822d8f262 |
12.使用docker命令从pod向宿主机拷贝文件
1 | docker cp pod_id:/tmp/abc /tmp/ |
使用docker命令从宿主机向pod中拷贝文件
1 | docker cp ./xx-xx pod_id:/home/xxx |
13.mac使用docker的时候配置仓库
1 | https://registry.docker-cn.com |
注意:mac版本docker升级到高版本后Daemon选项没了,需要在docker engine中填写json配置
14.ubuntu配置docker仓库,在/etc/docker目录下新建daemon.json,内容
1 | { |
重启docker服务
1 | sudo systemctl restart docker |
15.查看docker的磁盘使用情况
1 | lintong@master:~$ docker system df |
清理磁盘,删除关闭的容器、无用的数据卷和网络,以及dangling镜像(即无tag的镜像)
1 | docker system prune |
如果有2个镜像的id相同,则删除的时候会报
1 | docker rmi 85f602b72c3c |
此时应该找到2个id相同的镜像,然后一个个进行删除
1 | docker images | grep 85f602b72c3c |
删除第一个
1 | docker rmi xxxxx:v0.9.1 |
再删除另一个
1 | docker rmi 85f602b72c3c |
1 | 1.不要在容器中存储数据 – 容器可能被停止,销毁,或替换。 |
参考:10 things to avoid in docker containers
16.docker设置时区
1 | ENV TZ=Asia/Shanghai |
17.ubuntu镜像换源
1 | RUN sed -i s@/archive.ubuntu.com/@/mirrors.aliyun.com/@g /etc/apt/sources.list && \ |