Hadoop部署

1.Hadoop账号创建

创建一个hadoop用户,并使用/bin/bash 作为shell

#创建hadoop用户
sudo useradd -m hadoop -s /bin/bash

#为hadoop设置一个密码
sudo passwd hadoop

#对hadoop用户添加管理员的权限
sudo adduser hadoop sudo

软件目录授权

chown hadoop:hadoop /home/software/*

2.软件准备

需要先安装jdk

jdk解压到的路径

环境变量

vi /etc/profile

export JAVA_HOME=/home/software/jdk8u292-b10
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tool.jar

 环境变量生效

source /etc/profile

 验证jdk是的生效

3.Hadoop安装

hadoop启动需要免密,我们须配置成无密码登录

#我们使用SSH登录远程服务器
ssh localhost

cd ~/.ssh/

#利用ssh-keygen生成密钥
ssh-keygen -t rsa

#密钥加入到授权中,此时再使用ssh localhost命令就无需登录密码了
cat ./id_rsa.pub >> ./authorized_keys

解压hadoop对其进行环境变量配置

#解压hadoop 
tar -zxvf hadoop-3.4.1.tar.gz  -C /home/software/

#修改hadoop文件名
mv /home/software/hadoop-3.4.1 hadoop

#修改文件权限
sudo chown -R hadoop ./hadoop

#添加hadoop环境变量
vi /etc/profile

#添加以下内容并保存
export HADOOP_HOME=/home/software/hadoop
export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin


#查看我们解压的hadoop是否可用
cd /home/software/hadoop
./bin/hadoop version

#出现以下内容表示hadoop可用
Hadoop 3.4.1
Source code repository https://github.com/apache/hadoop.git -r 4d7825309348956336b8f06a08322b78422849b1
Compiled by mthakur on 2024-10-09T14:57Z
Compiled on platform linux-x86_64
Compiled with protoc 3.23.4
From source with checksum 7292fe9dba5e2e44e3a9f763fce3e680
This command was run using /home/software/hadoop/share/hadoop/common/hadoop-common-3.4.1.jar

将java的环境变量引用到hadoop里

修改文件hadoop-env.sh:vi /home/software/hadoop/etc/hadoop/hadoop-env.sh

export JAVA_HOME=/home/software/jdk8u292-b10

hadoop伪分布式文件配置

修改文件core-site.xml:vi /home/software/hadoop/etc/hadoop/core-site.xml

路径是安装的hadoop路径:<value>file:/home/software/hadoop/tmp</value>

<configuration>
 <property>
        <name>hadoop.tmp.dir</name>
        <value>file:/home/software/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:

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

启动hadoop服务

尽量使用./sbin/stop-all.sh这个命令去结束hadoop的进程,不要去kill某个进程号因为killall dfs相关的hadoop的文件,导致后面进程看似重启成功,但是访问ip:9870无法访问,即使看到dfs相关的hadoop启动成功,也还是无法访问9870端口

#到hadoop目录下
cd /home/software/hadoop

#NameNode 的格式化
./bin/hdfs namenode -format

#hadoop启动命令两种方式
#接着开启 NameNode 和 DataNode 守护进程。
./sbin/start-dfs.sh


#all来开启hadoop全部进程,
./sbin/start-all.sh

#all来结束hadoop全部进程,
./sbin/stop-all.sh


#启动后出现以下内容
WARNING: Attempting to start all Apache Hadoop daemons as hadoop in 10 seconds.
WARNING: This is not a recommended production deployment configuration.
WARNING: Use CTRL-C to abort.
Starting namenodes on [localhost]
localhost:
localhost: Authorized users only. All activities may be monitored and reported.
Starting datanodes
localhost:
localhost: Authorized users only. All activities may be monitored and reported.
Starting secondary namenodes [localhost]
localhost:
localhost: Authorized users only. All activities may be monitored and reported.

#启动完成后,可以通过命令 jps 来判断是否成功启动
jps

#出现以下内容

18976 ResourceManager
18720 SecondaryNameNode
19108 NodeManager
19511 Jps
18414 DataNode
18223 NameNode



防火墙设置:

#开放9870端口
sudo firewall-cmd --zone=public --add-port=9870/tcp --permanent

#重启防火墙
sudo firewall-cmd --reload

#查看防火墙状态
sudo firewall-cmd --state

#启动防火墙
sudo systemctl start firewalld
sudo systemctl enable firewalld

#查看已开放的端口
sudo firewall-cmd --list-ports

#关闭防火墙
sudo systemctl stop firewalld

宿主机输入虚拟机ip:9870

宿主机输入虚拟机ip:8088

### Hadoop 部署教程及相关问题解答 #### 1. 下载与验证 Hadoop 文件 为了成功部署 Hadoop,首先需要从官方渠道下载合适的版本。推荐使用 `wget` 命令完成下载操作,并确保同时获取校验文件以验证压缩包的完整性[^2]。 ```bash wget http://mirror.bit.edu.cn/apache/hadoop/common/hadoop-2.6.0/hadoop-2.6.0.tar.gz wget http://mirror.bit.edu.cn/apache/hadoop/common/hadoop-2.6.0/hadoop-2.6.0.tar.gz.mds ``` 通过 MD5 校验工具确认文件未受损: ```bash md5sum -c hadoop-2.6.0.tar.gz.mds ``` 如果显示匹配,则说明文件完好无损;否则需重新下载并重复此过程。 --- #### 2. 解压与安装路径设置 将下载好的 Hadoop 发布包上传至目标服务器指定目录(如 `/usr/local/soft/`),随后执行解压命令[^3]: ```bash cd /usr/local/soft/ tar -zxvf hadoop-3.2.0.tar.gz ``` 创建软链接以便于管理不同版本之间的切换: ```bash ln -s /usr/local/soft/hadoop-3.2.0 /usr/local/soft/hadoop ``` --- #### 3. Java 环境变量配置 Hadoop 运行依赖 JDK 支持,在启动之前必须正确设定 JAVA_HOME 参数。编辑 `hadoop-env.sh` 文件实现这一目的[^3]: ```bash vi /usr/local/soft/hadoop/etc/hadoop/hadoop-env.sh ``` 找到如下行并将值替换为实际安装位置: ```sh export JAVA_HOME=/path/to/java ``` 保存退出后使更改生效即可继续后续步骤。 --- #### 4. 主要配置文件调整 以下是几个核心配置项所在的位置及其功能简介[^1][^5]: - **core-site.xml**: 定义全局参数比如默认FS URI 和临时存储地址; ```xml <configuration> <property> <name>fs.defaultFS</name> <value>hdfs://localhost:9000</value> </property> </configuration> ``` - **hdfs-site.xml**: 设置 NameNode 数据库以及副本数量等选项; ```xml <configuration> <property> <name>dfs.replication</name> <value>1</value> </property> </configuration> ``` - **mapred-site.xml**: 映射到 YARN 上的任务调度器定义; ```xml <configuration> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> </configuration> ``` - **yarn-site.xml**: 控制 ResourceManager 行为以及其他资源分配细节。 ```xml <configuration> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> </configuration> ``` 注意:某些情况下可能还需要额外增加其他属性来满足特定需求。 --- #### 5. 启动服务测试 完成以上准备工作之后可以尝试初始化命名空间并向集群提交简单作业验证其工作状态是否正常[^4]: ```bash $ bin/hdfs namenode -format $ sbin/start-dfs.sh $ sbin/start-yarn.sh ``` 接着利用内置示例程序检查整体流程能否顺利运作: ```bash mkdir input cp etc/hadoop/*.xml input hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-*.jar grep input output 'dfs[a-z.]' cat output/* ``` 假如一切按预期发展则表明当前环境搭建完毕! --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值