Hadoop安装

该文详细介绍了在Linux系统中如何安装和配置Hadoop,包括修改hosts文件,配置SSH免密码登录,安装包上传及解压,设置环境变量,以及Hadoop的单机和分布式模式配置。在分布式模式下,还涉及多节点的配置和启动流程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Linux安装

修改hosts文件,将当前主机名配进去

# 查看当前主机名
hostname
# 此处结果为 node01

# 修改 hosts 文件,将当前主机名配到 127.0.0.1 后面
vi /etc/hosts

# ping 当前主机名进行检测
ping node01

配置SSH所有机器之间免密码登录

输入命令:ssh-keygen -t rsa,生成key,一直按回车,就会在/root/.ssh生成:authorized_keys   id_rsa.pub   id_rsa 三个文件。

ssh-keygen -t rsa

在.ssh目录下输入命令,将id_rsa.pub公钥内容拷贝到authorized_keys文件中。

cat id_rsa.pub >> authorized_keys

 为了各个机器之间的免登陆,在每一台机器上都要进行此操作。将node01~node05的公钥拷贝到authorized_keys中。

安装包上传及解压

# 创建准备安装的目录
mkdir /app/Hadoop
# 解压到安装目录
tar -zxvf hadoop-3.3.2.tar.gz -C /app/hadoop/
# 进入安装目录,查看是否成功
cd /app/hadoop/hadoop-3.3.2

设置环境变量

# 配置环境变量
vim /etc/profile

# 增加以下
export HADOOP_HOME=/app/hadoop/hadoop-3.3.2
export HADOOP_CONF_DIR=/app/hadoop/hadoop-3.3.2/etc/hadoop
export PATH=.:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH

# 使环境变量生效
source /etc/profile

hadoop配置

进入hadoop配置目录/app/hadoop/hadoop-3.3.2/etc/hadoop,配置hadoop-env.sh、yarn-env.sh,在Hadoop安装目录下

vim hadoop-env.sh
# 增加
export JAVA_HOME=/opt/java/jdk1.8.0_211
# 将当前用户 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

vim yarn-env.sh
# 增加
export JAVA_HOME=/opt/java/jdk1.8.0_211

单机模式

修改配置文件

core-site.xml
        <property>
                <name>fs.defaultFS</name>
                <value>hdfs://127.0.0.1:9000</value>
        </property>
        <property>
                <name>hadoop.tmp.dir</name>
                <!-- 自定义 hadoop 的工作目录 -->
                <value>/usr/local/hadoop/hadoop-3.3.4/tmp</value>
        </property>
        <property>
                <name>hadoop.native.lib</name>
                <!-- 禁用Hadoop的本地库 -->
                <value>false</value>
        </property>
hdfs-site.xml
   <property>
       <name>dfs.replication</name>
       <value>1</value>
   </property>
mapred-site.xml
        <property>
                <name>mapreduce.framework.name</name>
                <value>yarn</value>
        </property>
yarn-site.xml
       <property>
               <name>yarn.resourcemanager.hostname</name>
               <value>127.0.0.1</value>
       </property>
       <property>
               <name>yarn.resourcemanager.webapp.address</name>
               <!-- yarn web 页面 -->
               <value>0.0.0.0:8088</value>
       </property>
       <property>
               <name>yarn.nodemanager.aux-services</name>
               <!-- reducer获取数据的方式 -->
               <value>mapreduce_shuffle</value>
       </property>

启动 

 格式化 HDFS(首次启动前执行)

 hdfs namenode –format

输入命令进行启动(前面已经通过$HADOOP_HOME/sbin配置到环境变量中了,可以直接执行。)

/app/hadoop/hadoop-3.3.2/sbin/start-all.sh

输入jps命令, 出现这些进程就表示Hadoop启动成功。

794756 SecondaryNameNode
794067 NameNode
795507 ResourceManager
794312 DataNode
795770 NodeManager

分布式模式

修改配置文件

linux环境下,至少需要3台机子,一台作为master:node01,2台(以上)作为slave:node02~node05。

core-site.xml
<configuration>

  <property>
   <name>fs.defaultFS</name> 
    <!--NameNode 的URI-->
  <value>hdfs://node01:9000</value>
 </property>

  <property>
    <name>io.file.buffer.size</name>
    <value>131072</value>
  </property>

 <property>
   <name>hadoop.tmp.dir</name> 
    <!--hadoop临时文件的存放目录-->
  <value>/app/hadoop/hadoop-2.7.1/temp</value>
  </property>

</configuration>
hdfs-site.xml
<configuration>

    <property>
        <name>dfs.namenode.name.dir</name> 
        <!--namenode持久存储名字空间及事务日志的本地文件系统路径-->
        <value>/app/hadoop/hadoop-3.3.2/hdfs/name</value>
        <!--目录无需预先创建,会自动创建-->
    </property>

    <property>
        <name>dfs.datanode.data.dir</name> 
        <!--DataNode存放块数据的本地文件系统路径-->
        <value>/app/hadoop/hadoop-3.3.2/hdfs/data</value>
    </property>

    <property>
        <name>dfs.replication</name> 
        <!--数据需要备份的数量,不能大于集群的机器数量,默认为3-->
        <value>2</value>
    </property>

    <property>
        <name>dfs.blocksize</name>
        <value>268435456</value>
    </property>

    <property>
        <name>dfs.namenode.handler.count</name>
        <value>100</value>
    </property>

    <property>
        <name>dfs.namenode.secondary.http-address</name>
        <value>node01:50090</value>
    </property>
    
    <property>
        <name>dfs.namenode.secondary.https-address</name>
        <value>node01:50091</value>
    </property>

</configuration>
mapred-site.xml
<configuration>

        <property>
                <name>mapreduce.framework.name</name>
                <value>yarn</value>
        </property>

        <property>
                <name>mapreduce.jobhistory.address</name>
                <value>node01:10020</value>
        </property>

        <property>
                <name>mapreduce.jobhistory.webapp.address</name>
                <value>node01:19888</value>
        </property>

</configuration>
yarn-site.xml
<configuration>

        <property>
                <name>yarn.resourcemanager.hostname</name>
                <value>node01</value>
        </property>

        <property>
                <name>yarn.nodemanager.aux-services</name>
                <value>mapreduce_shuffle</value>
        </property>

        <property>
                <name>yarn.resourcemanager.address</name>
                <value>node01:8032</value>
        </property>

        <property>
                <name>yarn.resourcemanager.scheduler.address</name>
                <value>node01:8030</value>
        </property>

        <property>
                <name>yarn.resourcemanager.resource-tracker.address</name>
                <value>node01:8031</value>
        </property>

        <property>
                <name>yarn.resourcemanager.admin.address</name>
                <value>node01:8033</value>
        </property>

        <property>
                <name>yarn.resourcemanager.webapp.address</name>
                <value>node01:8088</value>
        </property>

</configuration>

slaves配置

在node01上,vim slaves

node02
node03
node04
node05

将hadoop拷贝到其他服务器,配置环境并生效

在node01上,cd /app,执行以下命令:

scp -r hadoop/ root@node02:/app/
scp -r hadoop/ root@node03:/app/
scp -r hadoop/ root@node04:/app/
scp -r hadoop/ root@node05:/app/

启动

在Master服务器启动hadoop,从节点会自动启动,进入Hadoop目录下,

 格式化 HDFS (首次启动前执行),输入命令

 hdfs namenode –format

启动 Hadoop

sbin/start-all.sh

也可以分开启动,sbin/start-dfs.sh、sbin/start-yarn.sh

在master 输入jps命令, 看到ResourceManager、NameNode、SecondaryNameNode进程;

在slave 上输入jps命令, 看到DataNode、NodeManager进程。

出现这些进程就表示Hadoop启动成功。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值