大数据基础-hadoop完全分布式的搭建

虚拟机的创建(可以自行百度)

虚拟机静态网络的设置

1:首先更改虚拟机的名字

hostnamectl  set-hostname hadoop2

2:进入network配置文件夹中,配置你的虚拟网卡

cd /etc/sysconfig/network-scripts/

vim ifcfg-ens33

在这里插入图片描述

3:在系统原来的配置上,改
BOOTPROTO=static

ONBOOT=yes

4:添加配置(记得和你的相应配置相对应)
IPADDR=192.168.72.100
NETMASK=255.255.255.0
GATEWAY=192.168.72.2
DNS1=8.8.4.4

5:下面就有一些长得比较帅的小同学问了,上面这些东西我从哪里来呢?,别着急,这就一步一步告诉你
首先,打开vmware,点击编辑,
在这里插入图片描述
点击虚拟网络编辑器
在这里插入图片描述

点击vMent8,再点击net设置即可

在这里插入图片描述

IPADDR 代表你的新的ip
NETMASK 代表子网掩码
GATEWAY 你的网关
DNS1 你的 DNS(默认填写8.8.8.8)

在这里插入图片描述
配置好网络之后,记得重启网络服务

service network restart

在这里插入图片描述
尝试ping百度

ping www.baidu.com

在这里插入图片描述

最后使用yum源安装你的vim,让你的字体拥有颜色

yum -y install vim

xshell连接你的虚拟机,xftp传入hadoop和java的安装包

**xshell连接虚拟机不再过多介绍,
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

开始解压java和hadoop的安装包

cd ~

在这里插入图片描述

在虚拟机opt目录下soft文件夹再在soft文件夹下创建java和hadoop文件夹
在这里插入图片描述

cd ~

解压javaJDK到opt目录的java目录

tar -zxvf jdk-8u261-linux-x64.tar.gz -C /opt/soft/java/

在这里插入图片描述
解压hadoop到opt下的hadoop目录下

tar -zxvf hadoop-2.7.7.tar.gz -C /opt/soft/hadoop/

在这里插入图片描述
查看是否解压成功

将Hadoop添加到环境变量

获取 Hadoop 安装路径
在这里插入图片描述

打开/etc/profile 文件

在这里插入图片描述

在 profile 文件末尾添加 JDK 路径:(shitf+g)

##HADOOP_HOME
export HADOOP_HOME=/opt/soft/hadoop/hadoop-2.7.7
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin

将Java添加到环境变量

获取java安装环境
在这里插入图片描述

打开/etc/profile 文件

在这里插入图片描述
在 profile 文件末尾添加 JDK 路径

#JAVA_HOME
export JAVA_HOME=/opt/soft/jdk/jdk1.8.0_261
export PATH=$PATH:$JAVA_HOME/bin

退出保存后让配置生效

 source /etc/profile

在这里插入图片描述

测试Java环境和Hadoop环境

Java测试
在这里插入图片描述
hadoop测试

hadoop version

在这里插入图片描述

开始hadoop完全分布式的搭建

集群规划部署
在这里插入图片描述
配置集群
首先进入hadoop的相关目录(千万别进错目录了 (0-0))

在这里插入图片描述
配置 core-site.xml


vim core-site.xml 
在该文件中编写如下配置

<!-- 指定 HDFS 中 NameNode 的地址 -->
<property>
<name>fs.defaultFS</name>
 <value>hdfs://hadoop102:9000</value>
</property>
<!-- 指定 Hadoop 运行时产生文件的存储目录 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/hadoop/hadoop-2.7.7/data/tmp</value>
</property>

在这里插入图片描述

配置HDFS 配置文件

配置 hadoop-env.sh
vim hadoop-env.sh

export JAVA_HOME=/opt/java/jdk1.8.0_261
在这里插入图片描述

配置 hdfs-site.xml

vi hdfs-site.xml

<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<!-- 指定 Hadoop 辅助名称节点主机配置 -->
<property>
 <name>dfs.namenode.secondary.http-address</name>
 <value>hadoop4:50090</value>
</property>

在这里插入图片描述

**配置 yarn-env.sh

 vim yarn-env.sh**
 
export JAVA_HOME=/opt/java/jdk1.8.0_261

在这里插入图片描述

**配置 yarn-site.xml
vi yarn-site.xml**

在该文件中增加如下配置


<!-- Reducer 获取数据的方式 -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<!-- 指定 YARN 的 ResourceManager 的地址 -->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>hadoop3</value>
</property>
<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>
<!-- 日志保留时间设置 7 天 -->
<property>
<name>yarn.log-aggregation.retain-seconds</name>
<value>604800</value>
</property>

在这里插入图片描述

**MapReduce 配置文件
配置 mapred-env.sh**

 vim mapred-env.sh
 
export JAVA_HOME=/opt/java/jdk1.8.0_261

在这里插入图片描述

**配置 mapred-site.xml**

从模板复制一份并改名为 mapred-site.xml

cp mapred-site.xml.template mapred-site.xml

编辑 mapred-site.xml

vi mapred-site.xml
 
在该文件中增加如下配置


<!-- 指定 MR 运行在 Yarn 上 -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property><!-- 历史服务器端地址 -->
<property>
<name>mapreduce.jobhistory.address</name>
<value>hadoop2:10020</value>
</property>
<!-- 历史服务器 web 端地址 -->
<property>
 <name>mapreduce.jobhistory.webapp.address</name>
 <value>hadoop2:19888</value>
</property>

在这里插入图片描述

将配置好的虚拟机克隆为三台(如何克隆?不会?别慌!这就来教你)

1:首先,关闭你创建好的虚拟机

shutdown -h now

在这里插入图片描述

2 点击下一步
在这里插入图片描述
3 点击下一步
在这里插入图片描述

4:选择完整克隆
在这里插入图片描述

配置另外两台虚拟机的ip和主机名

把已经克隆的两台机子的主机名和ip添加在etc下面的hosts

vim /etc/hosts

添加另外两台的主机名和ip

最后三台虚拟机的hosts内容应当一致

在这里插入图片描述

配置相关的ssh免密钥登录(为什么要配置ssh免密钥登录)

单节点启动太麻烦!!!

生成公钥和私钥:

 ssh-keygen -t rsa

然后敲(三个回车),就会生成两个文件 id_rsa(私钥)、id_rsa.pub(公钥)
将公钥拷贝到要免密登录的目标机器上

 ssh-copy-id hadoop2
 ssh-copy-id hadoop3
 ssh-copy-id hadoop4

群起节点最后的准备

配置 slaves

cd /opt/soft/hadoop-2.7.t/etc/hadoop/slaves

编辑salves

 vim  slaves

在该文件中增加如下内容:(创建的三台虚拟机都要添加)

hadoop2
hadoop3
hadoop4

在这里插入图片描述

启动集群

如果集群是第一次启动,需要格式化 NameNode(注意格式化之前,一定要先停
止上次启动的所有 namenode 和 datanode 进程,然后再删除 data 和 log 数据

 bin/hdfs namenode -format

在这里插入图片描述

在你的主节点上启动dfs上面的查看进程没有启动yarn

start-dfs.sh

在这里插入图片描述

在你配置yarn的机子上启动yarn

start-yarn.sh

在这里插入图片描述

打开你的浏览器输入ip+端口
在这里插入图片描述

<think> 首先,用户的问题是:“我想查找大数据 Hadoop分布式搭建的相关信息 请问大数据 Hadoop分布式搭建的方法和步骤”。系统指令要求我使用中文回答,结构清晰,帮助用户逐步解决问题。 我手头有三个引用: - 引用[1]:简要介绍了Hadoop分布式的重要性。 - 引用[2]:描述了伪分布式运行MapReduce作业的方式。 - 引用[3]:详细描述了安装JDK和Hadoop的步骤,包括配置文件的修改。 用户的需求是获取Hadoop分布式搭建的方法和步骤,所以我需要基于引用[3]来构建回答,因为它最详细。同时,引用[1]和[2]可以作为补充。 系统指令的关键点: - 回答结构清晰,逐步解决问题。 - 使用中文。 - 行内数学表达式用$...$,但我这里没有数学表达式,所以忽略。 - 独立公式用$$...$$,但同样不需要。 - LaTeX语法正确,但这里主要是文本。 - 生成相关问题。 - 在引用的段落末尾添加引用标识,如[^1]。 - 回答要真实可靠。 步骤: 1. **结构清晰**:我应该分步骤描述搭建过程,如准备环境、安装JDK、安装Hadoop、配置Hadoop、测试安装等。 2. **引用来源**:在回答中引用相关部分时,在末尾添加引用标识。 3. **生成相关问题**:在最后添加相关问题部分。 从引用[3]中提取关键步骤: - 安装JDK: - 上传JDK文件。 - 解压到指定目录。 - 添加环境变量。 - 安装Hadoop- 上传Hadoop安装包。 - 修改配置文件:hadoop-env.sh, core-site.xml, hdfs-site.xml, mapred-site.xml, yarn-site.xml(引用中提到了5个文件,但只列出了hadoop-env.sh和core-site.xml)。 - 具体修改内容未完全给出,但我需要基于常识或引用补充。引用提到: - hadoop-env.sh:设置JAVA_HOME。 - core-site.xml:配置HDFS的地址等。 - 其他文件如hdfs-site.xml、mapred-site.xml、yarn-site.xml也需要配置,但引用没有详细说明,所以我需要概括。 引用[2]提到伪分布式读取HDFS文件,运行MapReduce作业,这可以作为测试步骤。 引用[1]强调伪分布式的必要性。 我的回答大纲: - **引言**:简要介绍伪分布式搭建的重要性。 - **步骤**: 1. **准备环境**:确保Linux系统(如Ubuntu),创建用户(如hadoop)。 2. **安装JDK**:上传、解压、设置环境变量。 3. **安装Hadoop**:上传、解压。 4. **配置Hadoop**:修改核心配置文件。 - hadoop-env.sh - core-site.xml - hdfs-site.xml - mapred-site.xml - yarn-site.xml 5. **初始化HDFS**:格式化NameNode。 6. **启动Hadoop**:启动HDFS和YARN。 7. **测试安装**:运行示例作业。 - **结论**:验证成功。 - **相关问题**:生成几个相关问题。 添加引用标识: - 在描述步骤时,如果直接来自引用,添加[^3]等。 生成相关问题: - 如:"伪分布式完全分布式的区别?"、"常见配置问题如何解决?"等。 确保回答真实可靠:基于引用信息,补充通用知识。 最终回答结构: 1. 开头:介绍伪分布式搭建。 2. 详细步骤。 3. 结尾:总结和测试。 4. 相关问题。 </think>### Hadoop分布式搭建的方法和步骤 Hadoop分布式模式是一种在单台机器上模拟分布式环境的方法,适合初学者学习和测试。它允许您在本地运行HDFS(分布式文件系统)和MapReduce作业,而无需多台物理服务器[^1]。以下搭建步骤基于Linux系统(如Ubuntu或CentOS),以Hadoop 2.x版本为例。整个过程分为环境准备、软件安装、配置和测试四个阶段,参考了标准实践[^3]。 #### 1. **准备环境** - **系统要求**:Linux操作系统(推荐Ubuntu 18.04或更高版本),至少4GB内存和20GB磁盘空间。 - **创建专用用户**:为避免权限问题,创建一个新用户(如`hadoop`): ```bash sudo adduser hadoop # 创建用户 sudo usermod -aG sudo hadoop # 授予sudo权限 su - hadoop # 切换到hadoop用户 ``` - **安装SSH**:确保SSH服务已安装并配置免密登录: ```bash sudo apt-get install openssh-server # Ubuntu ssh-keygen -t rsa -P '' # 生成密钥 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys # 添加公钥 chmod 600 ~/.ssh/authorized_keys ssh localhost # 测试免密登录(成功后exit退出) ``` #### 2. **安装JDK** Hadoop依赖Java环境(JDK 1.7或更高版本)[^3]。 - **上传JDK安装包**:使用工具如`scp`或SFTP客户端(如WinSCP)上传JDK压缩包(如`jdk-8u301-linux-x64.tar.gz`)到服务器目录,例如`/home/hadoop/`。 - **解压并安装**: ```bash mkdir -p /home/hadoop/app # 创建安装目录 tar -zxvf jdk-8u301-linux-x64.tar.gz -C /home/hadoop/app # 解压 ``` - **配置环境变量**:编辑`/etc/profile`文件,添加JDK路径: ```bash sudo vim /etc/profile ``` 在文件末尾添加: ``` export JAVA_HOME=/home/hadoop/app/jdk1.8.0_301 # 替换为您的JDK路径 export PATH=$PATH:$JAVA_HOME/bin ``` 保存后刷新配置: ```bash source /etc/profile java -version # 验证安装(应显示Java版本) ``` 此步骤确保Hadoop运行时能找到Java环境[^3]。 #### 3. **安装Hadoop** 下载并配置Hadoop分布式环境。 - **上传Hadoop安装包**:将Hadoop压缩包(如`hadoop-2.10.1.tar.gz`)上传到`/home/hadoop/`。 - **解压Hadoop**: ```bash tar -zxvf hadoop-2.10.1.tar.gz -C /home/hadoop/app ``` - **设置Hadoop环境变量**:编辑`/etc/profile`,添加Hadoop路径: ``` export HADOOP_HOME=/home/hadoop/app/hadoop-2.10.1 export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin ``` 刷新配置: ```bash source /etc/profile ``` #### 4. **配置Hadoop分布式** 修改Hadoop配置文件(位于`$HADOOP_HOME/etc/hadoop/`),共需编辑5个核心文件[^3]。 - **配置 `hadoop-env.sh`**:设置Java路径。 ```bash vim $HADOOP_HOME/etc/hadoop/hadoop-env.sh ``` 找到并修改: ``` export JAVA_HOME=/home/hadoop/app/jdk1.8.0_301 # 与JDK路径一致 ``` - **配置 `core-site.xml`**:定义HDFS地址。 ```bash vim $HADOOP_HOME/etc/hadoop/core-site.xml ``` 添加内容: ```xml <configuration> <property> <name>fs.defaultFS</name> <value>hdfs://localhost:9000</value> # HDFS默认地址 </property> <property> <name>hadoop.tmp.dir</name> <value>/home/hadoop/hadoop_data/tmp</value> # 临时目录 </property> </configuration> ``` - **配置 `hdfs-site.xml`**:设置HDFS副本数(伪分布式设为1)。 ```bash vim $HADOOP_HOME/etc/hadoop/hdfs-site.xml ``` 添加内容: ```xml <configuration> <property> <name>dfs.replication</name> <value>1</value> # 单副本 </property> <property> <name>dfs.namenode.name.dir</name> <value>/home/hadoop/hadoop_data/namenode</value> # NameNode数据目录 </property> <property> <name>dfs.datanode.data.dir</name> <value>/home/hadoop/hadoop_data/datanode</value> # DataNode数据目录 </property> </configuration> ``` - **配置 `mapred-site.xml`**:启用MapReduce框架。 ```bash cp $HADOOP_HOME/etc/hadoop/mapred-site.xml.template $HADOOP_HOME/etc/hadoop/mapred-site.xml vim $HADOOP_HOME/etc/hadoop/mapred-site.xml ``` 添加内容: ```xml <configuration> <property> <name>mapreduce.framework.name</name> <value>yarn</value> # 使用YARN资源管理 </property> </configuration> ``` - **配置 `yarn-site.xml`**:设置YARN服务。 ```bash vim $HADOOP_HOME/etc/hadoop/yarn-site.xml ``` 添加内容: ```xml <configuration> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> <property> <name>yarn.nodemanager.env-whitelist</name> <value>JAVA_HOME,HADOOP_COMMON_HOME</value> </property> </configuration> ``` 保存所有配置后,创建数据目录: ```bash mkdir -p /home/hadoop/hadoop_data/{tmp,namenode,datanode} ``` #### 5. **初始化并启动Hadoop** - **格式化HDFS**:仅需首次执行。 ```bash hdfs namenode -format # 格式化NameNode ``` - **启动HDFS和YARN**: ```bash start-dfs.sh # 启动HDFS(NameNode和DataNode) start-yarn.sh # 启动YARN资源管理 ``` 检查进程: ```bash jps # 应显示NameNode, DataNode, ResourceManager, NodeManager等 ``` #### 6. **测试安装** 运行一个MapReduce示例作业,验证伪分布式环境[^2]。 - **在HDFS中创建目录**: ```bash hdfs dfs -mkdir /input # 创建输入目录 ``` - **上传测试文件**: ```bash hdfs dfs -put $HADOOP_HOME/etc/hadoop/*.xml /input # 上传配置文件 ``` - **运行grep示例作业**:统计包含"dfs"的单词。 ```bash hadoop jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-*.jar grep /input /output 'dfs[a-z.]+' ``` - **查看结果**: ```bash hdfs dfs -cat /output/* # 输出应显示匹配结果 ``` 如果输出正确,表示伪分布式搭建成功[^2]。 #### 总结 以上步骤完成了Hadoop分布式搭建。关键点包括: - 正确配置JDK和Hadoop环境变量。 - 修改5个核心配置文件以启用HDFS和YARN。 - 通过运行MapReduce作业验证功能(伪分布式模式下作业从HDFS读取数据,而非本地文件)[^2]。 - 完成后,您可以使用`stop-dfs.sh`和`stop-yarn.sh`停止服务。 此方法适用于学习和开发测试,但生产环境需使用完全分布式集群[^1]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值