瑞士旅行记录
瑞士旅行记录
Day 1
周末的日内瓦没多少饭店还开门了, 随便找了家近的中餐, 没想到吃上了自助, 虽然菜不多, 但价格便宜还管饱, 狂炫3盘😋
联合国浅看一下
在前往采尔马特的行程中安排了一段坐船, 从洛桑坐到了圣金戈尔夫. 到了洛桑的码头我们人懵了, 没有之前看的那条线路了, 明明前一天官网上写的线路还是去蒙特勒的, 但幸亏总路程耗时没有太大区别. 圣金戈尔夫在瑞法边境, 只要过个桥就到法国了. 日内瓦湖很美, 坐船的体验非常好, 导致我们后面一致决定再加一段坐船的行程.
湖水清澈见底
船上拍的一些照片
圣金戈尔夫初印象和湖里的鸭子, 鸭子会潜水, 我是第一次知道
跨越边境的桥和在法国的一通乱拍
房子上的房子, 也许是个烟囱🤔
小镇上Jean Moulin的纪念碑
离开圣金戈尔夫的火车和空无一人的车厢
晚上住在tasch的民宿, 吃了麦当劳, 麦门🫡, 但一张照片都没拍🫣
Day 2
早上阳台的景色&泡面当早餐
火车上的大黄
采尔马特的viewpoint, 马特洪峰! ISO自动导致噪点有点多😅
一对情侣/ ...
DolphinScheduler配置Seatunnel同步任务出错(从MySQL同步数据到Doris)
DolphinScheduler配置Seatunnel同步任务出错(从MySQL同步数据到Doris)
DolphinSScheduler版本3.2.0, Seatunnel版本2.3.4
错误日志
定义好工作流后, 上线运行报错, 关键日志入下:
12345678910111213141516171819202122[INFO] 2025-02-16 13:02:00.427 -0800 - tenantCode :root, task dir:/tmp/dolphinscheduler/exec/process/root/16670700117984/16677825236448_2/2/3[INFO] 2025-02-16 13:02:00.429 -0800 - generate script file:/tmp/dolphinscheduler/exec/process/root/16670700117984/16677825236448_2/2/3/seatunnel_2_3.conf[INFO] 2025-02-16 13:02:00.433 -0800 - SeaTun ...
安装Superst报错 Failed building wheel for python-geohash&Command errored out with exit status 1
安装Superst报错 Failed building wheel for python-geohash&Command errored out with exit status 1
具体报错如下图所示:
前置操作
123456789101112conda --version#conda 23.5.2#创建虚拟环境conda create -n superset python=3.6#激活conda activate superset#安装依赖pip install sqlalchemy==1.3.24 pip install dataclasses==0.8 pip install --upgrade cryptography==3.2#安装Supersetpip install apache-superset
分析与解决办法
看到报错判断出编译环境出了问题, 然后想到使用anaconda作为环境安装应该不会出现错误才对, 出于谨慎先检查gcc
12rpm -q gcc#gcc-8.5.0-3.el8.x86_64
gcc存在, 应该不是它的问题, 经过搜索发现可能是缺少 ...
Bigtable Paper Reading
Bigtable Paper Reading
资料推荐: 深入浅出BigTable, B站似乎也有搬运, 看不了YouTube的小伙伴可以搜一下.
Bigtable的设计目标是为了达到广泛的应用性, 可扩展, 高性能和高可用, 我将从这几个目标来谈谈我对这篇论文的理解.
可扩展
Bigtable是一个稀疏的、分布式的、持久的多维有序map,该map是基于行键(row key), 列键(column key), 时间戳(timestamp)三者建立索引的, map中的每个值都是一个未解释的字节数组. 每一条数据有一个行键, 通过行键可以原子性地读写一条数据. 一条数据包含了多个列族(column family), 不同行数据的同一列族内, 可以定义不同的列. 每一个列不仅可以保存值,而且可以保存多个版本,每个版本包含了一个时间戳。
列键被组织成一个叫列族的集合, 作为访问控制的基本单位. 存储在同一列族内的数据通常具有相同的类型, 在存储任何列键的数据之前必须先创建列族. 创建列族完成后, 列族中的任意列键都可以使用.
从上图我们可以看出bigtable的表设计是一张灵活的," ...
最近的思考与选择
f2790461a6fef943f99cab532869b218d23edfd91720dd2ee5169f698afd7ed5d186964e503f76d362795d40fe77c671041b35f0bff5115c5ff0db73b20465e1d94a04549feac0c6f478df51af62f1ee7500cc69e63906cec5f0e7eddc540c2055c102c123471874885e421cabc26d0465a3a47bdd1662ec3fc6cb4ea7be2f9fba8eb13eec07b5391d1cda8d4e46b2f3bb32c4ca2632c32cd4616b5e2ea66b2dfd628228d0659fcef329f71fb7476a7edbdd943178bb2e5f50cb1e005136acc51737d465f82ee312b1afa79904e6824d0dd4a1fe70163da4de7cea8af9ae052ace85345f7d665c6d10afb5472c56f97380ce44a29dd2e1fbd ...
HDFS Paper Reading
HDFS Paper Reading
我认为HDFS是一个更加通用的开源的GFS, 其架构和设计思路与GFS非常相似, 但是HDFS在实现上更加简单, 更加通用, 所以我会关注常见的问题和显著不同的地方.
HDFS写流程
客户端发送写请求, 通过RPC与NameNode建立通信, NameNode检查该用户是否有写权限, 以及写入的文件是否在HDFS对应的目录下重名, 如果这两者有任意一个不满足, 则直接报错, 如果两者都满足, 则授予客户端一个写入租约(lease)
Client根据文件的大小进行切分, 默认128M一块, 切分完成之后给NameNode发送请求第一个block块写入到哪些服务器上
NameNode收到请求之后, 根据网络拓扑和机架感知以及副本机制进行文件分配, 返回可用的DataNode的地址
客户端收到地址之后与服务器地址列表中的一个节点进行通信, 建立pipeline, Client->DN0->DN1->DN2
Client向DN0以packet(64kb)形式传输数据, 然后沿着pipeline传输, ack响应会沿着pipeline逆序 ...