0%

Nginx 搭建文件服务器:快速实现文件共享与管理

Nginx 不仅是高性能的 Web 服务器和反向代理,还能通过简单配置搭建轻量级文件服务器,用于共享文档、图片、安装包等资源。本文详细讲解 Nginx 文件服务器的配置方法、功能优化及上传限制设置,帮助快速构建实用的文件共享服务。

基础配置:开启目录浏览

Nginx 默认不显示目录结构,需通过autoindex系列指令开启目录浏览功能,核心配置如下:

1
2
3
4
5
6
7
8
9
10
11
server {
listen 9090; # 监听端口(如9090)
server_name _; # 匹配任意域名(可改为具体域名如file.example.com)
root /share/file; # 文件存储的根目录(需提前创建)
charset utf-8; # 支持中文文件名显示

# 开启目录浏览核心配置
autoindex on; # 启用目录列表显示(默认关闭)
autoindex_exact_size on; # 显示文件精确大小(单位为字节),off则显示KB/MB等
autoindex_localtime on; # 显示文件的本地修改时间(默认显示GMT时间)
}

配置说明

  1. root /share/file
    • 指定文件服务器的根目录,所有文件需存放在该目录下(如/share/file/docs//share/file/images/);
    • 需确保 Nginx 进程对该目录有读取权限(可执行chmod 755 /share/file)。
  2. 目录浏览优化
    • autoindex_localtime on:让文件修改时间显示为服务器本地时间(更直观);
    • charset utf-8:避免中文文件名乱码(关键配置)。

访问效果与目录结构

配置完成后,重启 Nginx(nginx -s reload),通过http://服务器IP:9090访问:

阅读全文 »

SCP 命令详解:跨机器文件传输的高效工具

scp(Secure Copy)是基于 SSH 协议的跨机器文件传输命令,具有安全性高、使用简单的特点,常用于服务器之间或本地与服务器之间的文件同步。本文将详细介绍 scp 的用法、参数及实战技巧。

scp 基本语法与核心参数

基本语法

1
scp [参数] 源文件 目标路径
  • 源文件 / 目标路径格式:
    • 本地路径:直接使用绝对路径(如 /home/user/file.txt)或相对路径(如 ./docs)。
    • 远程路径:用户名@主机地址:文件路径(如 root@192.168.1.100:/var/log)。

核心参数

参数 作用
-r 递归复制目录(必须用于目录传输,否则仅复制文件)
-v 显示详细传输过程(便于调试)
-P 端口 指定 SSH 端口(默认 22,非默认端口需指定)
-i 私钥文件 使用指定的 SSH 私钥进行认证(适用于密钥登录)
-l 限速 限制传输速率(单位:Kbit/s,如 -l 800 限制为 100KB/s)
-p 保留文件的修改时间、权限等元数据

常见传输场景示例

本地文件 → 远程服务器

阅读全文 »

yarn日志聚集详解:配置、原理与实战

在 Hadoop YARN 中,日志聚集(Log Aggregation)是一项关键功能,用于收集分布式集群中各个节点的任务日志并集中存储,解决了分散日志难以管理和排查问题的痛点。本文将详细解析日志聚集的作用、配置方法、实现原理及最佳实践。

日志聚集的核心作用

在未启用日志聚集时,YARN 任务日志分散存储在各个 NodeManager 节点的本地磁盘(如 $HADOOP_HOME/logs/userlogs/),存在以下问题:

  • 日志分散:需逐个节点登录查看日志,排查问题效率低;
  • 存储风险:NodeManager 节点磁盘空间有限,日志可能被清理或覆盖;
  • 权限问题:用户可能没有节点登录权限,无法直接访问日志。

日志聚集功能通过以下方式解决上述问题:

  • 任务完成后,自动将分散在各节点的日志上传至 HDFS 集中存储;
  • 支持通过 YARN Web UI 或命令行统一查看日志;
  • 可配置日志保留时间,自动清理过期日志,节省存储空间。

日志聚集的配置方法

日志聚集功能需在 yarn-site.xml 中配置,核心参数如下:

核心配置参数

参数 说明 默认值 推荐配置
yarn.log-aggregation-enable 是否开启日志聚集 false true(启用)
yarn.log-aggregation.retain-seconds 日志在 HDFS 中的保留时间(秒) -1(永久保留) 604800(7 天)
yarn.log-aggregation.retain-check-interval-seconds 日志清理检查间隔(秒) -1(由 YARN 自动决定) 86400(1 天)
yarn.nodemanager.remote-app-log-dir 日志在 HDFS 中的存储根目录 /tmp/logs /var/log/hadoop-yarn/apps(自定义路径)
yarn.nodemanager.remote-app-log-dir-suffix 日志目录后缀(通常为用户名) logs logs(保持默认)

完整配置示例

$HADOOP_HOME/etc/hadoop/yarn-site.xml 中添加以下配置:

阅读全文 »

hadoop历史服务器详解:配置、启动与日志查询

在 YARN 集群中,默认情况下无法通过 ResourceManager Web UI 查看已完成作业的历史日志。历史服务器(JobHistoryServer)的作用是 收集、存储和展示 MapReduce 作业的历史运行日志,帮助用户追溯作业执行详情(如任务耗时、失败原因)。本文将详细解析历史服务器的配置方法、启动流程及日志查询方式。

历史服务器

历史服务器的核心作用

在未配置历史服务器时,YARN 的 ResourceManager Web UI 仅能显示当前运行中的作业,已完成作业的日志无法直接访问。历史服务器解决了以下问题:

  • 追溯历史作业:存储已完成作业的配置、统计信息和任务日志;
  • 问题排查:通过历史日志分析作业失败原因(如内存溢出、数据倾斜);
  • 性能优化:基于历史作业的运行指标(如 Map/Reduce 耗时)优化资源配置。

历史服务器配置步骤

核心配置参数

历史服务器的配置需在 mapred-site.xml 中完成,关键参数如下:

配置参数 含义 默认值 推荐配置
mapreduce.jobhistory.address 历史服务器 RPC 地址(用于接收作业历史数据) 0.0.0.0:10020 保持默认或指定节点(如 hadoop1:10020
mapreduce.jobhistory.webapp.address 历史服务器 Web UI 地址 0.0.0.0:19888 保持默认或指定节点(如 hadoop1:19888
mapreduce.jobhistory.intermediate-done-dir 作业运行时临时历史日志存储目录(HDFS) /mr-history/tmp 保持默认或自定义路径
mapreduce.jobhistory.done-dir 作业完成后历史日志归档目录(HDFS) /mr-history/done 保持默认或自定义路径

配置文件修改

编辑 $HADOOP_HOME/etc/hadoop/mapred-site.xml,添加以下配置:

阅读全文 »

hadoop三种运行模式详解:从单机调试到集群部署

Hadoop 提供三种运行模式,分别适配 开发调试、功能验证、生产环境 不同场景。本文将详细解析单机模式、伪分布式模式和完全分布式模式的配置方法、适用场景及核心差异,帮助读者快速搭建符合需求的 Hadoop 环境。

Hadoop 运行模式概述

Hadoop 的三种运行模式本质上是 集群规模和资源隔离程度 的差异,核心组件(HDFS、YARN、MapReduce)的启动方式和交互逻辑随模式变化:

模式 核心特点 适用场景 组件启动情况
单机模式 无分布式进程,所有组件运行在单个 JVM 中 开发调试、单元测试 无守护进程(NameNode、DataNode 等均不启动)
伪分布式模式 单个节点模拟集群,所有组件以守护进程形式运行 功能验证、小规模测试 NameNode、DataNode、ResourceManager 等均启动(单节点)
完全分布式模式 多节点组成集群,组件分布在不同物理机 生产环境、大规模数据处理 组件分布式部署(如 NameNode 在主节点,DataNode 在从节点)

通用前置配置

无论哪种模式,均需先配置 Java 环境 和 Hadoop 环境变量:

配置 JAVA_HOME

修改 hadoop-env.sh(位于 $HADOOP_HOME/etc/hadoop/),指定 Java 安装路径:

1
2
3
4
5
# 编辑配置文件  
vim $HADOOP_HOME/etc/hadoop/hadoop-env.sh

# 添加 Java 路径(需替换为实际路径)
export JAVA_HOME=/usr/local/jdk1.8.0_261
阅读全文 »