Docker Hue 时区修改完整指南

Posted on Mon 08 September 2025 in 技术 • Tagged with Docker, Hue, 时区, 大数据

问题描述

使用Docker启动Hue后,发现时区不正确,显示UTC时间而不是中国标准时间(CST)。具体表现为: - HDFS文件时间显示为UTC时间(如06:00-06:01) - 实际文件创建时间为中国时间(如14:00-14:01) - Hue日志时间格式混乱

解决方案概述

需要从多个层面修改时区设置: 1. 容器系统时区设置 2. Hue配置文件时区设置 3. Django时区设置 4. 文件浏览器模块时区处理

详细修改步骤

1. 检查当前容器状态

# 查看运行中的Hue容器
docker ps -a | grep hue

# 检查容器时区
docker exec <container_name> date

# 检查Hue日志时间格式
docker logs <container_name> --tail 10

2. 备份原始配置

# 备份Hue配置文件
cp /data/server/hue-server/config/hue.ini /data/server/hue-server/config/hue.ini.backup.$(date …

Continue reading

我用Python开发了一个淘宝图片搜索自动化系统

Posted on Mon 26 May 2025 in 开发工具 • Tagged with Python, 自动化测试, DrissionPage, 淘宝, 图片搜索

在电商时代,图片搜索已经成为用户发现商品的重要方式。作为开发者,我经常需要为客户批量搜索相似商品并生成报告。手动操作不仅效率低下,还容易出错。于是,我决定开发一个自动化系统来解决这个问题。

项目目标

  • 批量处理图片搜索
  • 自动提取商品数据
  • 生成包含图片的Excel报告
  • 自动发送邮件通知
  • 完整的错误处理和日志记录

技术选型

自动化框架:DrissionPage

经过对比Selenium、Playwright等框架,我选择了DrissionPage: - 专为中国网 …


Continue reading

macOS 终端利器 iTerm2 配置指南

Posted on Mon 26 May 2025 in 开发工具 • Tagged with macOS, iTerm2, Terminal, 工具配置

iTerm2 是 macOS 上最强大的终端工具之一,本文将介绍如何安装和配置 iTerm2,让它成为你的得力助手。

安装步骤

1. 安装 iTerm2

有两种安装方式: - 直接下载:从 iTerm2 官网 下载,解压后拖到 Applications 目录 - 使用 Homebrew:

brew install --cask iterm2

2. 配置主题

  1. 下载 Solarized Dark theme:http://ethanschoonover.com/solarized
  2. 打开 iTerm2 偏好设置:Command + ,
  3. 进入 Profiles -> Colors -> Color Presets -> Import
  4. 导入下载的 Solarized Dark.itermcolors 文件
  5. 选择 Solarized Dark 主题

3. 安装 Oh My Zsh

  1. 一键安装:
sh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
  1. 设置 Zsh 为默认 Shell:
chsh -s /bin/zsh
  1. 配置主 …

Continue reading

ClashX、Clash Verge 与 Shadowsocks:原理深入解析与横向对比

Posted on Sun 19 January 2025 in 技术 • Tagged with ClashX, Clash Verge, Shadowsocks, 代理工具, 网络技术, 翻墙工具

核心结论: ClashX、Clash Verge 和 Shadowsocks 作为主流代理工具,各有优势:Shadowsocks 简单轻量,适合入门用户ClashX 功能丰富,规则灵活,适合 macOS 用户Clash Verge 跨平台兼容性最佳,界面现代化。选择时需根据使用场景、技术水平和平台需求综合考虑。

一、工具概述对比

1. Shadowsocks

  • 定位:轻量级代理工具,SOCKS5 代理协议实现
  • 特点:简单、稳定、资源占用低
  • 适用场景:基础代理需求、服务器资源有限
  • 支持平台:Windows、macOS、Linux、Android、iOS

2. ClashX

  • 定位:基于 Clash 内核的 macOS 客户端 …

Continue reading

MySQL与PostgreSQL全面对比与压测方案

Posted on Sun 15 December 2024 in 数据库 • Tagged with MySQL, PostgreSQL, 数据库对比, 压测, Python, 性能优化

MySQL与PostgreSQL全面对比分析,包括核心技术差异、性能测试、Python操作示例及压测方案。帮助开发者选择适合业务场景的数据库系统。


Continue reading

Cloudflare R2 与 rclone 使用教程

Posted on Wed 03 July 2024 in 技术 • Tagged with Cloudflare, R2, rclone, 对象存储, CDN

1. 简介

Cloudflare R2 是 Cloudflare 提供的对象存储服务,类似于 AWS S3,但无出站流量费用,非常适合存储和分发图片、视频等静态资源。rclone 是一个命令行工具,可以用来管理云存储,包括 Cloudflare R2。本教程将指导您如何使用 rclone 配置和管理 Cloudflare R2 存储。

2. 准备工作

2.1 安装 rclone

macOS (使用 Homebrew):

brew install rclone

Linux:

curl https://rclone.org/install.sh | sudo bash

Windows: - 下载安装程序:https://rclone.org/downloads/ - 运行安装程序并按照提示操作

2.2 获取 Cloudflare R2 凭证

  1. 登录 Cloudflare 控制台:https://dash.cloudflare.com/
  2. 选择 …

Continue reading

Hadoop的发展历程与未来应用场景分析

Posted on Fri 03 May 2024 in 技术 • Tagged with Hadoop, 大数据, 云计算, 数据湖, 人工智能

引言

Apache Hadoop作为大数据处理的开源框架,自诞生以来已经走过了十多年的发展历程。在这个过程中,Hadoop从一个简单的批处理系统逐步发展成为了一个完整的大数据生态系统。然而,随着云计算、人工智能等技术的快速发展,Hadoop的地位和应用场景也在不断变化。本文将对Hadoop的发展历程进行回顾,分析其当前市场状况,并探讨其在未来技术格局中的应用前景。

Hadoop的发展历程

Hadoop最初由Doug Cutting和Mike Cafarella于2006年创建,其核心设计灵感来源于Google发表的GFS(Google文件系统)和MapReduce论文。作为Apache软件基金会的开源项目,Hadoop提供了一个基于Java的框架,用于在分布式环境中存储和处理大规模数据集。

Hadoop的核心组件包括:

  1. HDFS (Hadoop分布式文件系统) - 提供高吞吐量的数据访问,适合大型数据集的应用
  2. YARN (Yet Another Resource Negotiator) - 集群资源管理和作业 …

Continue reading

HDFS均衡操作快速参考

Posted on Wed 01 May 2024 in 技术 • Tagged with HDFS, 均衡, 大数据, 快速参考

快速判断是否需要均衡

# 计算当前均衡度(标准差)
hdfs dfsadmin -report | python3 -c "
import sys, re
used_percents = []
for line in sys.stdin:
    if 'DFS Used%:' in line:
        percent = float(re.search(r'(\d+\.?\d*)%', line).group(1))
        used_percents.append(percent)
if used_percents:
    avg = sum(used_percents) / len(used_percents)
    variance = sum((x - avg) ** 2 for x in used_percents) / len(used_percents)
    std_dev = variance ** 0.5
    print(f'标准差: {std_dev:.2f}%')
    if std_dev > 15:
        print('⚠️  需要立即均衡')
    elif std_dev > 10:
        print('⚠️  建议进行均衡')
    else:
        print('✅ 集群已均衡')
"

常用均衡命令

基本均衡

# 标准均衡(推荐)
nohup hdfs balancer -threshold 10 -policy datanode > /tmp/balancer.log 2>&1 &

# 严格均衡
nohup hdfs balancer -threshold 5 -policy datanode > /tmp/balancer.log 2>&1 &

# 宽松均衡
nohup hdfs balancer -threshold …

Continue reading

HDFS均衡操作完整指南

Posted on Wed 01 May 2024 in 技术 • Tagged with HDFS, 均衡, 大数据

目录

概述

HDFS均衡器(Balancer)是Hadoop分布式文件系统中的一个重要工具,用于重新分布数据块,确保集群中所有DataNode的存储使用率保持相对均衡。当集群中添加新节点或删除节点后,数据分布可能会变得不均匀,这时就需要使用均衡器来重新分布数据。

什么时候需要HDFS均衡

1. 集群扩容后

  • 新增DataNode节点:新节点加入集群后,存储使用率为0%,而原有节点可能已经接近满载
  • 添加存储设备:为现 …

Continue reading

Redis Docker开发环境配置指南

Posted on Tue 19 March 2024 in 开发工具 • Tagged with Redis, Docker, 缓存, 开发环境

Redis Docker开发环境配置指南

本文档详细介绍如何使用Docker搭建Redis开发环境,包括环境配置、启动方式、维护方法等内容。

目录结构

Redis_Docker/
├── .env                # 环境变量配置文件
├── README.md          # 项目说明文档
├── config/            # 配置文件目录
│   └── redis.conf    # Redis配置文件
├── data/             # 数据存储目录
└── logs/             # 日志文件目录

配置文件说明

1. docker-compose.yml

version: '3.8'

services:
  redis:
    container_name: redis-server
    image: redis:7.2
    ports:
      - "${REDIS_PORT}:6379"
    volumes:
      - ./data:/data
      - ./logs:/var/log/redis
      - ./config/redis.conf:/usr/local/etc/redis/redis.conf
    command: redis-server /usr/local/etc/redis/redis.conf
    environment:
      - TZ=Asia/Shanghai
    networks:
      - redis-network
    healthcheck:
      test: ["CMD", "redis-cli", "ping"]
      interval: 10s
      timeout: 5s
      retries: 5
      start_period: 5s

networks:
  redis-network:
    driver: bridge

2. .env 环境变量配置

# Redis 配置环境 …

Continue reading

PostgreSQL Docker开发环境配置指南

Posted on Tue 19 March 2024 in 开发工具 • Tagged with PostgreSQL, Docker, 数据库, 开发环境

PostgreSQL Docker开发环境配置指南

本文档详细介绍如何使用Docker搭建PostgreSQL开发环境,包括环境配置、启动方式、维护方法等内容。

目录结构

PgSQL_Docker/
├── .env                  # 环境变量配置文件
├── README.md            # 项目说明文档
├── config/              # 配置文件目录
│   ├── pg_hba.conf     # 访问控制配置
│   └── postgresql.conf  # PostgreSQL主配置文件
├── data/               # 数据存储目录
└── logs/               # 日志文件目录

配置文件说明

1. docker-compose.yml

version: '3.8'

services:
  postgres:
    container_name: postgres-server
    image: postgres:15
    environment:
      - POSTGRES_DB=${POSTGRES_DB}
      - POSTGRES_USER=${POSTGRES_USER}
      - POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
    ports:
      - "${POSTGRES_PORT}:5432"
    volumes:
      - ./data:/var/lib/postgresql/data
      - ./logs:/var/log/postgresql
      - ./config/postgresql.conf:/etc/postgresql/postgresql.conf
      - ./config/pg_hba.conf:/etc/postgresql/pg_hba.conf
    command: postgres -c 'config_file=/etc/postgresql/postgresql.conf'
    networks:
      - postgres-network
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -U ${POSTGRES_USER} -d ${POSTGRES_DB}"]
      interval: 10s
      timeout: 5s …

Continue reading

MySQL Docker开发环境配置指南

Posted on Tue 19 March 2024 in 开发工具 • Tagged with MySQL, Docker, 数据库, 开发环境

如何使用Docker启动MySQL开发环境

目录结构

MySQL_Docker/
├── docker-compose.yml    # Docker Compose 配置文件
├── .env                 # 环境变量配置
├── config/
│   └── my.cnf          # MySQL 配置文件
├── data/               # MySQL 数据目录 (挂载)
└── logs/               # MySQL 日志目录 (挂载)

配置文件说明

1. docker-compose.yml 配置要点

version: '3.8'
services:
  mysql:
    image: mysql:8.0
    container_name: mysql-server
    restart: unless-stopped
    environment:
      MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD:-root123}
      MYSQL_DATABASE: ${MYSQL_DATABASE:-testdb}
      MYSQL_USER: ${MYSQL_USER:-testuser}
      MYSQL_PASSWORD: ${MYSQL_PASSWORD:-testpass}
    ports:
      - "${MYSQL_PORT:-3306}:3306"
    volumes:
      - ./data:/var/lib/mysql
      - ./logs:/var/log/mysql
      - ./config/my.cnf:/etc/mysql/conf.d/my.cnf

重要配置说明: - restart: unless-stopped - 容器异常退出时自动重启 - environment - 环境变量配置,支持从.env文件读取 - volumes - 数据持久化配置,确保数据安全 - ports - 端口映射,允 …


Continue reading

抖音长截图服务使用说明

Posted on Mon 15 January 2024 in 技术 • Tagged with 抖音, 长截图, Playwright, 自动化, 服务

本文介绍基于 Playwright 封装的抖音长截图服务,涵盖能力范围、接口设计、使用范例以及性能调优建议,便于快速集成到现有业务系统中。

服务概述

核心功能已经封装在 app/services/playwright_service.py 中,经过大量测试验证,推荐使用的默认参数如下:

  • 滚动距离:1000 px
  • 底部裁剪:300 px
  • 平均截图数量:4–5 张
  • 平均文件大小:2–4 MB

GitHub 仓库:https://github.com/heyaohua/douyin_screenshot_service

核心能力

  • 移动端模拟:完整模拟 iPhone 设备视口与 UA
  • 智能滚动:自动识别内部滚动 …

Continue reading

GitHub Actions 自动部署自检清单

Posted on Mon 15 January 2024 in 测试 • Tagged with 部署, 测试, GitHub Actions

本文用于验证博客的自动化部署链路是否正常运行,并记录一次完整的流水线健康检查结果,便于后续排查或重复执行。

验证目标

  • 工作流 Deploy Blog to ECS and Netlify 能够被 main 分支推送事件正确触发
  • 构建节点成功安装依赖、拉取子模块并生成静态页面
  • 部署阶段能通过 SSH 连接到 ECS,并执行 make publish 与静态资源同步
  • 构建产物最终落地到 /data/Htdocs/heyaohua/blog,前端可访问最新页面

本次检查结果

检查项 结果 说明
GitHub Actions …

Continue reading

数学公式示例

Posted on Mon 15 January 2024 in 技术 • Tagged with 数学, LaTeX, 公式

本文示范如何在 Pelican 博客中优雅呈现常见数学公式,帮助撰写技术或科研类文章时保持专业排版。示例基于 LaTeX 语法,并依赖 render_math 插件完成渲染。

行内公式

当公式只需要嵌入在段落中时,可使用单个美元符号包裹表达式,例如 $E = mc^2$。这是著名的质能方程,适合在正文中快速引用。

块级公式

对于需要突出显示的公式,可使用双美元符号放在独立段落中:

一元二次方程求根

$$x = \frac{-b \pm \sqrt{b^2 - 4ac}}{2a}$$

欧 …


Continue reading

Python开发小技巧分享

Posted on Mon 15 January 2024 in 技术 • Tagged with Python, 编程技巧, 开发

日常开发中,掌握一些高频技巧能够明显提升代码质量与效率。本文整理了五个常用的小窍门,并配以示例代码,便于在项目中直接应用。

1. 善用列表推导式

列表推导式可以将循环与条件判断浓缩到一行,既简洁又易读:

# 传统写法
squares = []
for x in range(10):
    squares.append(x**2)

# 列表推导式
squares = [x**2 for x in range(10)]

# 搭配条件过滤
even_squares = [x**2 for x in range(10) if x % 2 == 0]

2. 使用 dict.get 提升容错性

通过 dict.get 读取字典时,可定义默认值 …


Continue reading

欢迎来到我的博客

Posted on Mon 15 January 2024 in 博客 • Tagged with 欢迎, 开始, Hello World

基于Pelican搭建的个人技术博客,分享Python、数据工程、云原生等技术文章,记录项目实战与学习笔记。欢迎技术同好交流与成长。


Continue reading