详细centos7虚拟机上搭建完全分布式hadoop(2.10.1)集群

    科技2026-01-18  13

    准备 在vmvare worktion pro 上安装好了一台centos7的虚拟机 去官网下载jdk hadoop的压缩包 不限于以下 链接: https://pan.baidu.com/s/18eONPUGfCb3C7EenFzpdJQ 提取码:0418 链接:https://pan.baidu.com/s/1Bn6MBlL_7FimNiv_eaPsiQ 提取码:0418

    下载xshell或者其它文件传输工具 链接: https://www.netsarang.com/zh/downloading/?token=YkhaN2l0TEYyX1daY1JLRlpBMUoxd0BBeFVEZGpVZDNNY25KR1lvcVI3a1BB 用root用户登录减少麻烦 点击未列出 用户名输入root 然后输入密码

    1.关闭防火墙

    关闭防火墙并禁止开机启动,输入以下两条命令

    systemctl stop firewalld.service systemctl disable firewalld.service

    如下

    2.设置静态IP

    输入vim /etc/sysconfig/network-scripts/ifcfg-ens33 打开ifcfg-ens33这个文件按i插入 将BOOTPROTO后面的值改为static ONBOOT后改为yes 并添加自己的IPADDR,NETMASK,GATEWAY,DNS几个数据

    然后按esc 输入 :wq 然后回车(这里是,冒号然后wq,你要乱搞我也没法)

    如果你不知道怎么看自己的IP ? 还是学点Java吧,能养活自己就行

    3.安装JDK

    首先卸载centos7自带jdk 输入 rpm -qa|grep java查询自带的

    然后用rpm -e - -nodeps卸载上面的jdk 用xshell链接虚拟机,上传jdk hadoop的压缩包并解压

    新建会话

    主机就是虚拟机ip ,名称你想改啥就是啥。然后点击用户身份验证 这里用户名就是你登录centos的那一套。我这里用的root

    点击链接 然后接受 新建两个文件夹,切换到相应目录上传压缩包并解压 切换目录cd /opt/java rz- E 上传 解压 配置jdk环境变量

    vi /etc/profile

    文件末端插入 export JAVA_HOME=/opt/java/jdk1.8.0_221 export PATH=: $PATH : $JAVA_HOME/bin

    esc 后 :wq保存退出 然后source /etc/profile 刷新profile文件

    java -version 看到如下就成功

    4.安装hadoop

    切换目录cd /opt/hadoop 上传

    解压 vi /etc/profile 插入

    export HADOOP_HOME=/opt/hadoop/hadoop-2.10.1 export PATH=: $ PATH: $ HADOOP_HOME/bin:$HADOOP_HOME/sbin

    esc 后 :wq保存退出 然后source /etc/profile 刷新profile文件 执行hadoop

    说明成功

    5.虚拟机克隆

    右键 管理 克隆 创建完整克隆 然后启动三台机器

    修改hostname文件,修改主机名

    vi /etc/hostname

    将原先文件里的删掉 改为相应的主机名

    修改hosts文件,配置主机ip映射。 vi /etc/hosts在文件末尾插入 192.168.116.131 master 192.168.116.132 slave1 192.168.116.133 slave2

    修改ip 三台机器hosts文件相同 ip和主机名对应上述 最后重启三台机器

    6.设置ssh免密登录

    分别在三个节点中执行ssh-keygen -t rsa 一直回车

    然后分别执行

    ssh-copy-id master ssh-copy-id slave1 ssh-copy-id slave2

    问yes/no 输入yes, 会要求输入另一台主机的密码 这里三台主机密码都相同,就是root账户的密码 测试登录 ssh 主机名 能登录就说明成功 exit退出登录

    7.hadoop集群

    1.在3个节点下新建目录
    mkdir /root/hadoop mkdir /root/hadoop/tmp mkdir /root/hadoop/var mkdir /root/hadoop/dfs mkdir /root/hadoop/dfs/name mkdir /root/hadoop/dfs/data

    在master下执行以下操作 修改/opt/hadoop/hadoop-2.10.1/etc/hadoop目录内的一系列文件 修改core-site.xml

    在< configuration > 和 < /configuration>之间加入以下

    <property> <name>hadoop.tmp.dir</name> <value>/root/hadoop/tmp</value> </property> <property> <name>fs.default.name</name> <value>hdfs://master:9000</value> </property>

    修改hdfs-site.xml

    <property> <name>dfs.name.dir</name> <value>/root/hadoop/dfs/name</value> </property> <property> <name>dfs.data.dir</name> <value>/root/hadoop/dfs/data</value> </property> <property> <name>dfs.replication</name> <value>2</value> </property> <property> <name>dfs.permissions</name> <value>false</value> </property>

    新建并且修改mapred-site.xml 将名为mapred-site.xml.template的文件改名为mapred-site.xml

    <property> <name>mapred.job.tracker</name> <value>master:49001</value> </property> <property> <name>mapred.local.dir</name> <value>/root/hadoop/var</value> </property> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property>

    修改yarn-site.xml

    <property> <name>yarn.resourcemanager.hostname</name> <value>master</value> </property> <property> <description>The address of the applications manager interface in the RM.</description> <name>yarn.resourcemanager.address</name> <value>${yarn.resourcemanager.hostname}:8032</value> </property> <property> <description>The address of the scheduler interface.</description> <name>yarn.resourcemanager.scheduler.address</name> <value>${yarn.resourcemanager.hostname}:8030</value> </property> <property> <description>The http address of the RM web application.</description> <name>yarn.resourcemanager.webapp.address</name> <value>${yarn.resourcemanager.hostname}:8088</value> </property> <property> <description>The https adddress of the RM web application.</description> <name>yarn.resourcemanager.webapp.https.address</name> <value>${yarn.resourcemanager.hostname}:8090</value> </property> <property> <name>yarn.resourcemanager.resource-tracker.address</name> <value>${yarn.resourcemanager.hostname}:8031</value> </property> <property> <description>The address of the RM admin interface.</description> <name>yarn.resourcemanager.admin.address</name> <value>${yarn.resourcemanager.hostname}:8033</value> </property> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> <property> <name>yarn.scheduler.maximum-allocation-mb</name> <value>2048</value> <discription>每个节点可用内存,单位MB,默认8182MB</discription> </property> <property> <name>yarn.nodemanager.vmem-pmem-ratio</name> <value>2.1</value> </property> <property> <name>yarn.nodemanager.resource.memory-mb</name> <value>2048</value> </property> <property> <name>yarn.nodemanager.vmem-check-enabled</name> <value>false</value> </property>

    配置文件参考https://blog.csdn.net/pucao_cug/article/details/71698903?utm_source=app

    修改slaves(这个就是数据节点所以下面master上jps没有namenode) 将文件里的内容删除添加 slave1 slave2 修改hadoop-env.sh 将export JAVA_HOME=${JAVA_HOME} 修改为: export JAVA_HOME=/opt/java/jdk1.8.0_221 说明:修改为自己的JDK路径

    2.复制hadoop安装文件到其它节点

    先切换目录cd /opt/hadoop然后执行以下命令

    scp -r hadoop-2.10.1/ root@slave1:/opt/hadoop/ scp -r hadoop-2.10.1/ root@slave2:/opt/hadoop/

    等待传输完成

    3. 格式化NameNode

    在master上面执行命令

    hadoop namenode -format

    没报错,看到该图第一行说明成功,可以在看到在/root/hadoop/dfs/name/目录多了一个current目录,而且该目录内有一系列文件 不要多次格式化,重新格式化需要删除current目录

    4. start-all.sh启动Hadoop集群

    直接yes

    在master节点上jps (一般的集群配置在主节点出现如上四个进程就为正常)

    slave节点上jps 在master上的火狐浏览器访问 http://master:50070 http://master:8088 Hadoop集群成功 stop-all.sh关闭hadoop集群

    以上搭建步骤其实还可以简化

    Processed: 0.015, SQL: 9