在Ubuntu中安装hadoop的详细过程

在Ubuntu中安装hadoop的详细过程

请自行安装Ubuntu系统(可参考:在VMWare中安装Linux虚拟机Ubuntu)

一、创建hadoop用户

如果在安装 Ubuntu 的时候不是用的 “hadoop” 用户,这时需要增加一个名为 hadoop 的用户。
首先打开终端窗口,输入如下命令创建新用户 :

sudouseradd -m hadoop -s /bin/bash 

接着使用如下命令设置密码,按提示输入两次密码:

sudopasswd hadoop 

可为 hadoop 用户增加管理员权限,方便部署,避免一些对新手来说比较困难的权限问题:

sudo adduser hadoop sudo

最后注销当前用户(点击屏幕右上角的齿轮,选择注销),返回登陆界面。在登陆界面中选择刚创建的 hadoop 用户进行登陆。

在这里插入图片描述

二、更新apt

用 hadoop 用户登录后,我们要先更新一下 apt,后续我们会使用 apt 安装软件。打开终端窗口,输入如下命令:

sudoapt-get update 

执行这个命令时,会让你输入hadoop用户的密码,如下:

在这里插入图片描述

三、安装vim

后续需要更改一些配置文件,我这里使用的是 vim,使用如下命令进行安装vim:

sudoapt-getinstallvim

安装软件时根据提示输入Y:

在这里插入图片描述

四、安装SSH、配置SSH无密码登陆

集群、单节点模式都需要用到 SSH 登陆,Ubuntu 默认已安装了 SSH client,但还需要安装 SSH server,命令如下:

sudoapt-getinstall openssh-server 
在这里插入图片描述


安装后,使用如下命令登陆本机:

ssh localhost 

输入该命令会有如下提示(SSH首次登陆提示),这时按照提示输入 yes 。然后按提示输入密码,这样就登陆到本机了。

在这里插入图片描述


但是这样登陆每次都需要输入密码,所以我们需要配置成SSH无密码登陆。
首先退出刚才的 ssh,就回到了我们原先的终端窗口,然后利用 ssh-keygen 生成密钥,并将密钥加入到授权中:

exit# 退出刚才的 ssh localhostcd ~/.ssh/ # 若没有该目录,请先执行一次ssh localhost ssh-keygen -t rsa # 会有提示,都按回车就可以cat ./id_rsa.pub >> ./authorized_keys # 加入授权

五、安装Java环境

我这里使用的共享方式安装的JDK
首先点击虚拟机设置,点击选项,再点击共享文件夹,选择总是启用或者是在下次关机或挂起前一直启用:

在这里插入图片描述


点击添加,出现如下图所示:

在这里插入图片描述


然后点击下一步,添加共享文件夹向导,选择浏览,选择主机路径,设置名称(名称可不改,看自己命名习惯),再点击下一步,再点击完成,最后点击确定,共享文件夹就设置成功了。

在这里插入图片描述


在这里插入图片描述


在这里插入图片描述


接下来进入共享文件夹,ls显示该文件夹的内容列表:

cd /mnt/hgfs ls

根据自己文件夹的实际地址进入,我这里的文件夹是BaiduNetdiskDownload:

cd BaiduNetdiskDownload/ ls

接下来进行安装java环境,先返回主目录,安装jdk,我这里安装的是JDK1.8:

cd /usr/lib sudomkdir jvm #创建/usr/lib/jvm目录用来存放JDK文件cd ~ #进入hadoop用户的主目录cd /mnt/hgfs #进入共享文件夹lscd BaiduNetdiskDownload/ lssudotar -zxvf ./jdk-8u371-linux-x64.tar.gz -C /usr/lib/jvm #把JDK文件解压到/usr/lib/jvm目录下

JDK文件解压缩以后,可以使用如下命令去查看一下:

cd /usr/lib/jvm ls
在这里插入图片描述


然后接下来进行设置环境变量,使用vim进行编辑:

cd ~ vim ~/.bashrc 

在环境配置文件中进行如下配置:

exportJAVA_HOME=/usr/lib/jvm/jdk1.8.0_371 exportJRE_HOME=${JAVA_HOME}/jre exportCLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib exportPATH=${JAVA_HOME}/bin:$PATH

添加完成后保存退出编辑,然后使用下面的命令使其立即生效:

source ~/.bashrc 

然后使用如下命令查看是否安装成功:

java -version 

出现如下页面就表示安装成功:

在这里插入图片描述

六、安装 Hadoop3.3.5

进行安装Hadoop,这里依然选择用共享文件夹的方式进行安装,根据上一部分的做法进入共享文件夹:

cd /mnt/hgfs #进入共享文件夹lscd BaiduNetdiskDownload/ lssudotar -zxvf ./hadoop-3.3.5.tar.gz -C /usr/local # 解压到/usr/local中cd /usr/local/ sudomv ./hadoop-3.3.5/ ./hadoop # 将文件夹名改为hadoopsudochown -R hadoop ./hadoop # 修改文件权限cd /usr/local/hadoop ./bin/hadoop version #命令来检查 Hadoop 是否可用,成功则会显示 Hadoop 版本信息,如图所示
在这里插入图片描述


接下来进行Hadoop伪分布式配置,首先修改配置文件 core-site.xml,输入如下命令:

vim ./etc/hadoop/core-site.xml 

将修改成如下内容:

<configuration><property><name>hadoop.tmp.dir</name><value>file:/usr/local/hadoop/tmp</value><description>Abase for other temporary directories.</description></property><property><name>fs.defaultFS</name><value>hdfs://localhost:9000</value></property></configuration>

接下来修改配置文件 hdfs-site.xml,输入 vim ./etc/hadoop/hdfs-site.xml
修改成如下内容:

<configuration><property><name>dfs.replication</name><value>1</value></property><property><name>dfs.namenode.name.dir</name><value>file:/usr/local/hadoop/tmp/dfs/name</value></property><property><name>dfs.datanode.data.dir</name><value>file:/usr/local/hadoop/tmp/dfs/data</value></property></configuration>

将以上内容配置完成后,执行 NameNode 的格式化,输入如下命令:

cd /usr/local/hadoop ./bin/hdfs namenode -format 

成功的话会返回如下图类似的信息:

在这里插入图片描述


接着开启 NameNode 和 DataNode 守护进程:

cd /usr/local/hadoop ./sbin/start-dfs.sh #start-dfs.sh是个完整的可执行文件,中间没有空格

执行完如上命令之后,显示如下:

在这里插入图片描述


启动完成后,可以输入jps判断是否成功启动,启动成功则显示如下内容:

在这里插入图片描述


若是 DataNode 没有启动成功的话,可以做如下尝试:

# 针对 DataNode 没法启动的解决方法cd /usr/local/hadoop ./sbin/stop-dfs.sh # 关闭rm -r ./tmp # 删除 tmp 文件,注意这会删除 HDFS 中原有的所有数据 ./bin/hdfs namenode -format # 重新格式化 NameNode ./sbin/start-dfs.sh # 重启

成功启动后,可以访问 Web 界面 http://localhost:9870 查看 NameNode 和 Datanode 信息,还可以在线查看 HDFS 中的文件。
关闭 Hadoop,则运行如下命令:

./sbin/stop-dfs.sh 

注意: 下次启动 hadoop 时,无需进行 NameNode 的初始化,只需要运行 ./sbin/start-dfs.sh 就可以了。

Read more

深入解析 Rust + LLM 开发:手把手教你写一个 AI 运维助手

深入解析 Rust + LLM 开发:手把手教你写一个 AI 运维助手

目录 * 摘要 * 第一章:Linux 环境下的 Rust 开发生态构建 * 1.1 构建工具链与系统依赖安装 * 1.2 Rust 工具链(Toolchain)的部署 * 1.3 环境变量配置与验证 * 第二章:蓝耘 MAAS 平台接入与资源配置 * 2.1 获取 API 凭证 * 2.2 模型选型与端点配置 * 第三章:Rust 项目架构设计与依赖管理 * 3.1 依赖库(Crates)深度解析 * 第四章:核心模块实现原理 * 4.1 AI 客户端模块 (ai_client.rs) * 4.2

By Ne0inhk

为OpenClaw构建双层记忆系统:QMD + Mem0的混合架构实战

# 引言 作为一名重度使用AI助手的开发者,我一直面临一个核心问题:**如何让AI真正"记住"知识,而不是每次对话都从零开始?** 传统的云端记忆方案虽然强大,但存在几个痛点: - API调用成本和延迟 - 搜索实时性不足 - 缺乏对本地工作区文档的快速检索能力 今天,我为OpenClaw(一个开源AI Agent系统)构建了一个**本地+云端混合的双层记忆架构**,实现了毫秒级本地检索与深度语义理解的完美结合。 --- ## 第一部分:QMD本地搜索的Windows集成之旅 ### 初始尝试 QMD是一个本地文档搜索引擎,支持BM25关键词搜索和语义向量搜索。它使用SQLite存储索引,理论上非常适合作为本地记忆底层。 安装过程看起来很简单: ```bash bun install -g github:tobi/qmd bunx tsx src/qmd.ts --help ``` ### Windows噩梦:better-sqlite3编译失败 问题来了:

By Ne0inhk
企业级部署升级:Nginx 反向代理 + ELK 日志监控,让成绩预测平台稳定可追溯

企业级部署升级:Nginx 反向代理 + ELK 日志监控,让成绩预测平台稳定可追溯

⭐️个人主页:秋邱-ZEEKLOG博客 📚所属栏目:python 前言 上一期的 Docker+Linux 部署,让成绩预测平台实现了局域网共享,但真正落地到团队 / 学校使用,还缺两个关键支撑:访问体验不够专业(IP + 端口难记、无加密),运维排查全靠 “猜”(日志分散、无监控)。 这一期,我们跳出 “步骤式部署” 的框架,以 “问题驱动 + 场景落地” 为核心,先拆解企业级部署的核心诉求,再分模块实现 Nginx 域名化改造和 ELK 日志监控,最后通过实战验收和运维手册,让你既能搞定部署,又能轻松应对后续运维问题,全程聚焦 “实用、稳定、可追溯”。 一、企业级部署的 3 个核心诉求(先明确目标再动手) 为什么互联网公司都在用 “Nginx+ELK”

By Ne0inhk
周红伟:独家揭秘,DeepSeek-V4 深度技术报告:原生多模态架构

周红伟:独家揭秘,DeepSeek-V4 深度技术报告:原生多模态架构

报告编号:DTR-2025-V4-001 发布日期:2024年5月23日 撰写机构:AI架构实验室 / 独立技术分析组 字数统计:约 5200 字 1. 执行摘要 (Executive Summary) 在人工智能大模型竞争进入“后训练时代”的关键节点,深度求索(DeepSeek)即将发布的下一代旗舰模型 DeepSeek-V4 标志着中国AI基础设施在架构效率、多模态融合及国产硬件适配上实现了质的飞跃。不同于国际巨头单纯依赖算力堆叠的“暴力美学”路径,DeepSeek-V4 通过原生多模态架构、Engram条件记忆机制、双轴稀疏(Dual-Sparse)架构以及DualPath智能体推理框架四大核心技术支柱,在万亿级参数规模下实现了推理成本降低90%、长文本处理能力提升8倍、国产芯片算力利用率突破85%的惊人指标。 本报告将从技术原理、架构创新、性能基准、成本控制及国产算力生态五个维度,深度剖析DeepSeek-V4如何通过“算法-系统-硬件”的协同设计,打破英伟达CUDA生态的垄断,为全球AI发展提供“中国效率”的全新范式。 DeepSeek-V4 vs

By Ne0inhk