小白入门 · 腾讯云轻量服务器部署 Hadoop 3.3.6

devtools/2024/12/23 17:44:28/

1. 安装JDK1.8

官网下载安装包,上传至服务器,解压tar包

http://planetone.online/downloads/java/jdk/jdk-8u221-linux-x64.tar.gz

上传安装包至服务器并解压到指定目录:

tar -zxvf jdk-8u221-linux-x64.tar.gz -C /opt/module/

2. 配置java环境变量、生效

编辑 /etc/profile 文件,加入以下内容:

vi /etc/profile
export JAVA_HOME=/opt/module/jdk1.8.0_221
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

3. 把上述环境变量添加到/etc/profile中并生效

source /etc/profile

4. 检测Java版本:

java -version

一、Hadoop 简介

Hadoop是一个由Apache基金会开发的开源分布式系统框架,旨在让用户能够轻松开发分布式应用程序,而无需深入了解底层的分布式细节。它能够充分利用集群计算的能力,进行高效的存储和处理大规模数据。

Hadoop框架的核心组件之一是HDFS(Hadoop Distributed File System),一个为大数据存储设计的分布式文件系统。HDFS具有高容错性,可以在低成本硬件上部署,并能提供高吞吐量的数据访问,特别适合处理超大数据集的应用场景。与传统的文件系统不同,HDFS放宽了POSIX文件系统的要求,支持流式数据访问,能够更高效地读写大规模数据。

Hadoop的核心设计理念包含两个主要组成部分:

  1. HDFS:为大规模数据集提供可靠的存储。
  2. MapReduce:为这些数据提供高效的计算能力。

通过HDFS和MapReduce的结合,Hadoop能够处理海量的数据存储与计算任务,广泛应用于大数据处理、分析和存储等领域。

二、Hadoop 单机安装

1、下载 Hadoop 安装文件

Hadoop 目前最新的版本为 3.3.6,下载地址如下:https://archive.apache.org/dist/hadoop/common/hadoop-3.3.6/

2、安装 Hadoop

修改主机名

将主机名称改为 hadoop1,命令如下:

hostnamectl set-hostname hadoop1

修改后,使用如下命令查看主机名:

hostname

修改主机列表

修改 /etc/hosts 中的内容,增加如下配置:

上传安装包到指定目录

hadoop-3.3.6.tar.gz 上传到指定目录,如:/home/tools/ (根据实际情况,选择一个目录存放安装包)

解压到指定目录

hadoop-3.3.6.tar.gz 解压到 /home/hadoop/ 目录下(根据实际情况,选择安装目录),命令如下:

tar -zxvf hadoop-3.3.6.tar.gz -C /home/hadoop/

创建数据存储目录

mkdir -p /home/hadoop/hdfs/tmp /home/hadoop/hdfs/data /home/hadoop/hdfs/name

3、修改配置

修改环境变量

在 /etc/profile 文件内容最后,追加环境变量,命令如下:

vim /etc/profile

增加内容如下:

export HADOOP_HOME=/home/hadoop/hadoop-3.3.6
export PATH=$PATH:${HADOOP_HOME}/bin:${HADOOP_HOME}/sbin

使用如下命令,使环境变量生效:

source /etc/profile

使用如下命令,验证环境变量是否生效:

echo $HADOOP_HOME

hadoopenvsh_127">修改 hadoop-env.sh

修改/home/hadoop/hadoop-3.3.6/etc/hadoop/hadoop-env.sh,设置 JAVA_HOMEHADOOP_HOME 变量。

通过如下命令,查询 JAVA_HOME 配置:

echo $JAVA_HOME

修改内容如下:

export JAVA_HOME=/opt/module/jdk1.8.0_221
export HADOOP_HOME=/home/hadoop/hadoop-3.3.6

设置 root 账户,修改内容如下:

export HDFS_NAMENODE_USER=root
export HDFS_DATANODE_USER=root
export HDFS_SECONDARYNAMENODE_USER=root
export YARN_RESOURCEMANAGER_USER=root
export YARN_NODEMANAGER_USER=root

修改 core-site.xml

core-site.xml 文件用于配置 Hadoop 的核心组件,尤其是与 HDFS 的连接和文件系统相关的设置。

修改/home/hadoop/hadoop-3.3.6/etc/hadoop/core-site.xml,在 configuration 标签中,添加如下内容:

重要配置项:

  • fs.defaultFS:指定 Hadoop 使用的文件系统,通常设置为 HDFS。
  • hadoop.tmp.dir:指定 Hadoop 的临时目录,用于存储临时数据。
  • hadoop.proxyuser.root.hostshadoop.proxyuser.root.groups:这两个配置允许用户 root 代理执行某些操作。
    <!-- 指定 NameNode 的地址 --><property><name>fs.defaultFS</name><value>hdfs://hadoop1:9090</value></property><!-- 指定 hadoop 数据的存储目录 --><property><name>hadoop.tmp.dir</name><value>/home/hadoop/hdfs/tmp</value></property><property><name>hadoop.proxyuser.root.hosts</name><value>*</value></property><property><name>hadoop.proxyuser.root.groups</name><value>*</value></property>

修改 hdfs-site.xml

hdfs-site.xml 文件用于配置 HDFS 的特性和行为,包括数据存储和副本设置。

修改/home/hadoop/hadoop-3.3.6/etc/hadoop/hdfs-site.xml,在 configuration 标签中,添加如下内容:

重要配置项:
  • dfs.replication:指定 HDFS 中文件的副本数。
  • dfs.namenode.name.dir:指定 NameNode 的元数据存储目录。
  • dfs.datanode.data.dir:指定 DataNode 存储数据块的目录。
  • dfs.http.address:指定 NameNode Web UI 的访问地址
  • dfs.permissions:启用或禁用 HDFS 的权限检查。
    <property><name>dfs.replication</name>      <value>1</value><description>副本个数,配置默认是3,应小于datanode机器数量</description></property>  <property><name>dfs.namenode.name.dir</name>  <value>/home/hadoop/hdfs/name</value>  <final>true</final></property>  <property><name>dfs.datanode.data.dir</name>  <value>/home/hadoop/hdfs/data</value>  <final>true</final></property>  <property><name>dfs.http.address</name><value>0.0.0.0:50070</value><description>将绑定IP改为0.0.0.0,而不是本地回环IP,这样,就能够实现外网访问本机的50070端口了</description></property><property><name>dfs.permissions</name>  <value>false</value></property>

修改 mapred-site.xml

mapred-site.xml 文件用于配置 MapReduce 的框架和作业执行相关的设置。

修改/home/hadoop/hadoop-3.3.6/etc/hadoop/mapred-site.xml,在 configuration 标签中,添加如下内容:

重要配置项:
  • mapreduce.framework.name:指定 MapReduce 使用的计算框架。
  • 指定 MapReduce 任务由 YARN 管理和执行。对于 YARN 集群,mapreduce.framework.name 必须设置为 yarn
    <property><name>mapreduce.framework.name</name><value>yarn</value></property>

修改 yarn-site.xml

yarn-site.xml 文件用于配置 YARN(Yet Another Resource Negotiator)相关的设置,包括资源管理和调度。

修改/home/hadoop/hadoop-3.3.6/etc/hadoop/yarn-site.xml,在 configuration 标签中,添加如下内容:

重要配置项:
  • yarn.nodemanager.aux-services:指定 YARN NodeManager 附加的服务:配置 NodeManager 使用 mapreduce_shuffle 服务,支持 MapReduce Shuffle 阶段。
  • yarn.resourcemanager.address:指定 ResourceManager 的地址:hadoop1:8032 表示 ResourceManager 监听的地址和端口号。
    <property><name>yarn.nodemanager.aux-services</name><value>mapreduce_shuffle</value></property>

格式化 HDFS

hdfs namenode -format

请在此添加图片描述

4、启动 Hadoop

启动 Hadoop 服务

cd /home/hadoop/hadoop-3.3.6/sbin
./start-all.sh

请在此添加图片描述

注意:此时有报错信息:“localhost: Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password).”此时,需要配置免密登录。

生产私钥,命令如下(输入两次回车):

ssh-keygen -t rsa -P ""

请在此添加图片描述

复制授权秘钥,命令如下:

cat ~/.ssh/id_rsa.pub > ~/.ssh/authorized_keys

再次执行

./start-all.sh

即可正常执行。使用 jps 命令查看进程,效果如下(出现6个进程为正常):

请在此添加图片描述

5、访问 Hadoop 管理页面

http://Hadoop机器IP:50070/

请在此添加图片描述

http://Hadoop机器IP:8088/

请在此添加图片描述


http://www.ppmy.cn/devtools/144751.html

相关文章

【数据库】Redis—Java 客户端

一、常见的几种 Java 客户端 Jedis&#xff1a;以 Redis 命令作为方法的名称&#xff0c;便于学习&#xff0c;简单实用&#xff0c;但其实例是线程不安全的&#xff0c;多线程下需要基于连接池来使用。lettce&#xff1a;基于 Netty 实现&#xff0c;支持同步、异步和响应式编…

《学数学会上瘾》读书笔记1-香龙公式的学习(关于信息熵)

最近开始读《学数学会上瘾》这个书&#xff0c;相当不错&#xff0c;笔记之&#xff1a; 中文是最有效率的语言吗&#xff1f; 1948年&#xff0c;美国数学家克劳德香农提出了一个表征符号系统中单位符 号平均信息量的指标——信息熵&#xff0c;还给出了一个计算信息熵的公 式…

CNN分类-卷积神经网络(Convolutional Neural Network)

CNN分类-卷积神经网络&#xff08;Convolutional Neural Network&#xff09; 源代码 CNN分类的用途介绍 什么是卷积神经网络&#xff08;CNN&#xff09;&#xff1f; 卷积神经网络&#xff08;Convolutional Neural Network&#xff0c;简称CNN&#xff09;是一种深度学习…

Jenkins搭建并与Harbor集成上传镜像

Jenkins介绍 Jenkins 是一个开源的自动化服务器&#xff0c;广泛用于持续集成&#xff08;CI&#xff09;和持续交付&#xff08;CD&#xff09;的实践中。它帮助开发人员自动化构建、测试和部署过程&#xff0c;从而提高开发效率、代码质量和项目交付速度。通过丰富的插件支持…

四、使用langchain搭建RAG:金融问答机器人--构建web应用,问答链,带记忆功能

经过前面3节完成金融问答机器人基本流程&#xff0c;这章将使用Gradio构建web应用&#xff0c;同时加入memory令提示模板带有记忆的&#xff0c;使用LCEL构建问答链。 加载向量数据库 from langchain.vectorstores import Chroma from langchain_huggingface import HuggingF…

OpenSSL 心脏滴血漏洞(CVE-2014-0160)

OpenSSL 心脏滴血漏洞(CVE-2014-0160) Openssl简介: 该漏洞在国内被译为"OpenSSL心脏出血漏洞”&#xff0c;因其破坏性之大和影响的范围之广&#xff0c;堪称网络安全里程碑事件。 OpenSSL心脏滴血漏洞的大概原理是OpenSSL在2年前引入了心跳(hearbea0机制来维特TS链接的…

【老白学 Java】HashSet 应用 - 卡拉 OK(五)

HashSet 应用 - 卡拉 OK&#xff08;五&#xff09; 文章来源&#xff1a;《Head First Java》修炼感悟。 通过前几篇文章&#xff0c;老白也了解了基本排序方法&#xff0c;接下来要讨论的是数据重复问题。 ArrayList 不会阻止添加重复数据&#xff0c;那是 Set 集合类的职责…

React工具和库面试题目(二)

1. 使用 Webpack 打包 React 项目时&#xff0c;如何减小生成的 JavaScript 文件大小? 为了减小生成的 JavaScript 文件大小&#xff0c;可以采取以下几种策略&#xff1a; 1.1 代码分割&#xff08;Code Splitting&#xff09; Webpack 支持通过 动态导入 和 React.lazy 等…