废话不多说,先准备三台centos7,然后开始安装

第一步。配置主机名

编辑/etc/hostname分别给三台虚拟机命名,我写的是master,slave1,slave2,接着重启虚拟机,使名称生效。

第二步。配置免密登录

首先,关闭防火墙:

systemctl stop firewalld

永久关闭:

systmctl disable firewalld

然后,在三台虚拟机上都配置/etc/hosts文件,在最后加入

192.168.196.128 master
192.168.196.129 slave1
192.168.196.130 slave2

然后分别在三台虚拟机上,使用ssh-keygen -t rsa命令生成ssh密钥
在maste主机r执行命令

cd /root/.ssh
cp id_rsa.pub authorized_keys

然后分别 在slave1 ,slave2上执行命令 cat /root/.ssh/id_rsa.pub
并分别将 id_rsa.pub 内容复制粘贴到master的 authorized_keys上,保存退出

接着使用scp命令,将文件传输到其余两台虚拟机的.ssh目录下。

scp authorized_keys slave1:/root/.ssh
scp authorized_keys slave2:/root/.ssh

接着就可以试试使用ssh登录其他机器了

第三步。配置jdk与hadoop环境变量
分别在三台机器上创建software文件夹,上传jdk1.8,hadoop3.2的压缩包到software文件夹,解压缩jdk与hadoop

编辑环境变量
执行命令 vim /etc/profile
在最后追加环境变量
J

AVA_HOME=/software/jdk1.8
HADOOP_HOME=/software/hadoop3.2

export PATH=$PATH:${JAVA_HOME}/bin:$HADOOP_HOME/sbin:$HADOOP_HOME/bin

第四步。配置hadoop

建立存储文件夹。

mkdir /usr/local/hadoop
mkdir /usr/local/hadoop/data
mkdir /usr/local/hadoop/data/tmp
mkdir /usr/local/hadoop/dfs
mkdir /usr/local/hadoop/dfs/data
mkdir /usr/local/hadoop/dfs/name
mkdir /usr/local/hadoop/tmp

执行命令 cd /software/hadoop3.2/etc/hadoop

然后执行命令 vi hadoop-env.sh
修改这一行 export JAVA_HOME=/software/jdk1.8 #这里修改为jdk的JAVA_HOME路径

vi core-site.xml

<configuration>
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/usr/local/hadoop/tmp</value>
    </property>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://master:9000</value>
    </property>
</configuration>

vi hdfs-site.xml

<configuration>
    <property>
        <name>dfs.namenode.http-address</name>
        <value>master:50070</value>
    </property>
    <property><!--namenode持久存储名字空间及事务日志的本地文件系统路径-->
        <name>dfs.namenode.name.dir</name>
        <value>/usr/local/hadoop/dfs/name</value>
     </property>
     <property><!--DataNode存放块数据的本地文件系统路径-->
         <name>dfs.datanode.data.dir</name>
         <value>/usr/local/hadoop/dfs/data</value>
     </property>
     <property><!--数据需要备份的数量,不能大于集群的机器数量,默认为3-->
        <name>dfs.replication</name>
        <value>2</value>
    </property>
</configuration>

vi yarn-site.xml

<configuration>
    <property><!--NodeManager上运行的附属服务,用于运行mapreduce-->
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
    <property>
        <name>yarn.resourcemanager.webapp.address</name>
        <value>master:8088</value>
    </property>
    <property>
        <name>yarn.resourcemanager.hostname</name>
        <value>master</value>
</property>

</configuration>

vi mapred-site.xml

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

vi workers 删除localhost改成

 slave1 
 slave2

分别先后执行 如下命令
vi /software/hadoop3.2/sbin/start-yarn.sh
加入如下

YARN_RESOURCEMANAGER_USER=root
HADOOP_SECURE_DN_USER=yarn
YARN_NODEMANAGER_USER=root

然后 vi /software/hadoop3.2/sbin/stop-yarn.sh
加入

YARN_RESOURCEMANAGER_USER=root
HADOOP_SECURE_DN_USER=yarn
YARN_NODEMANAGER_USER=root

vi /software/hadoop3.2/sbin/start-dfs.sh
加入

HDFS_DATANODE_USER=root
HDFS_DATANODE_SECURE_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root

接着 vi /software/hadoop3.2/sbin/stop-dfs.sh
加入一下几行(在开头添加下面几行)

HDFS_DATANODE_USER=root
HDFS_DATANODE_SECURE_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root

然后通过scp命令将hadoop3.2发送到其他slave上

scp -r /software/hadoop3.2  root@slave1:/software/
scp -r /software/hadoop3.2 root@slave2:/software/

第五步,启动
进入bin目录格式化namenode

cd  /software/hadoop3.2/bin

执行命令 hadoop namenode -formatt

启动hadoop

cd  /software/hadoop3.2/sbin

执行命令

./start-all.sh

192.168.196.128:50070、192.168.196.128:8088查看是否正常运行

执行jps命令,如果master上有
1818 NameNode
2314 ResourceManager
2078 SecondaryNameNode
而slave上有
1818 NameNode
2314 ResourceManager
说明启动成功

参考文章
https://blog.csdn.net/qq_40421109/article/details/103563455

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐