安装所需要的工具:xshell,openstack

一、修改三台虚拟机的主机名

第一种方法:

使用命令:hostnamectl set-hostname 名字

接着输入:exit

第二种方法:使用Vim编辑器

输入命令:vim /etc/hostname

接着重启xshell: 输入命令  reboot


二、配置映射信息,根据自己的IP和主机名相对应

输入命令:vim /etc/hosts

hadoop修改用户的分组 hadoop修改hostname_mapreduce

 

 

三、配置ssh免密登录 

1.在root用户下输入命令:ssh-keygen -t rsa

2.输入命令:cd ~/.ssh

3.将密钥分发给各个主机:输入命令:ssh-copy-id  主机名

4.分发完密钥后,用命令ssh root@主机名 验证

四、安装JDK

1.连接后在 opt 目彔中创建两个子目录:

        创建 software 目彔,用于保存安装包; 

        创建 module 目彔,用于存放解压后的组件

2 .输入命令:cd /opt

                     mkdir software module


3.将 Windows 中的 jdk 安装包传进去,点击xshell上的文件传输

4.解压 jdk 压缩包到/opt/module 下。

                 输入命令:tar -zxvf /opt/software/jdk-8u212-linux-x64.tar.gz -C /opt/module


注:tar 命令的参数

 -z(gzip):使用 gzip 工具进行压缩或解压;

 -x(extract):解压文件(压缩文件是-c);

 -v(verbose):显示解压过程(文件列表);

 -f(file):指定要解压的文件名(or 要压缩成的文件名);

 -C:指定目标路径。



5.配置环境(配置环境都写到opt/etc/profile文件下)

输入命令:cd /opt/etc/profile.d

将相关配置写入文件中:

hadoop修改用户的分组 hadoop修改hostname_hadoop修改用户的分组_02

 6.刷新环境变量(环境变量要刷新后才能起效哦)

输入命令:source /etc/profile

7.测试jdk是否安装成功

 输入命令:java -version

8.将配置好的jdk远程发送到其他主机

输入命令: scp -r /opt/module/jdk1.8.0_212 root@主机名:/opt/module

9.将配置文件发送到其他主机

 输入命令: scp /etc/profile root@主机名

10.其他主机重复步骤6,7

 

五、安装hadoop

1.上传并解压hadoop安装包

(1)将hadoop安装包上传到主机的/opt/software

  (2)   解压hadoop安装包到/opt/module下

输入命令:tar -zxvf /opt/software/hadoop-3.1.3.tar.gz -C /opt/module

2.配置hadoop环境

输入命令:cd /opt/etc/profile.d

将相关配置信息写入文件中:


export HADOOP_HOME=/opt/module/hadoop-3.1.3

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

3.刷新环境变量

  输入命令:source /opt/etc/profile

4.验证是否安装成功

  输入命令:hadoop version


六、集群部署

hadoop修改用户的分组 hadoop修改hostname_mapreduce_03

需要配置的文件:core-site.xml 、hdfs-site.xml、mapred-site.xml、yarn-site.xm

 首先进入hadoop配置文件所在目录:

输入命令:cd /opt/module/hadoop-3.1.3/etc/hadoop/

1.配置core-site.xml文件(修改中的内容)

输入命令:vim core-site.xml

<configuration>
 
 
<!-- 指 
  定  
  NameNode 的 
  地址  
  --> 
 
 
<property> 
 
 
<name>fs.defaultFS</name> 
 
 
<value> 
  hdfs://主机2名:8020 
  </value> 
 
 
</property> 
 
 
<!-- 指 
  定  
  hadoop  
  数据的存储目录  
  --> 
 
 
<property> 
 
 
<name>hadoop.tmp.dir</name> 
 
 
<value> 
  /opt/module/hadoop-3.1.3/data 
  </value> 
 
 
</property> 
 
 
<!--  
  配置  
  HDFS  
  网页登录使用的静态用户为  
  root 或 
    
  student --> 
 
 
<property> 
 
 
<name>hadoop.http.staticuser.user</name> 
 
 
<value> 
  root 
  </value> 
 
 
</property> 
 
 
</configuration>

2. 配置hdfs-site.xml文件

输入命令:vim hdfs-site.xml

<configuration>
 
 
<!-- 
  配置  
  hdfs  
  文件系统的副本数 
  --> 
 
 
<property> 
 
 
<name>dfs.replication</name> 
 
 
<value> 
  3 
  </value> 
 
 
</property> 
 
 
<!-- NameNode web  
  端访问地址 
  --> 
 
 
<property> 
 
 
<name>dfs.namenode.http-address</name> 
 
 
<value> 
  主机2名 
  :9870 
  </value> 
 
 
</property> 
 
 
<!-- SecondaryNameNode web  
  端访问地址 
  --> 
 
 
<property> 
 
 
<name>dfs.namenode.secondary.http-address</name> 
 
 
<value> 
  hd03:9868 
  </value> 
 
 
</property> 
 
 
</configuration>

3.配置mapred-site.xml 文件

输入命令:vim mapred-site.xml

<configuration> 
 
 
<!--指 
  定  
  mapreduce  
  运行的框架名: 
  yarn--> 
 
 
<property> 
 
 
<name>mapreduce.framework.name</name> 
 
 
<value> 
  yarn 
  </value> 
 
 
</property> 
 
 
<!-- 
  配置  
  mapreduce 的历史记录 
  组件的内部通信地址即  
  RPC  
  地址 
  --> 
 
 
<property> 
 
 
<name>mapreduce.jobhistory.address</name> 
 
 
<value> 
  主机1名 
  :10020 
  </value> 
 
 
</property> 
 
 
<!-- 
  配置  
  mapreduce  
  癿历史记录服务的  
  web  
  管理地址 
  --> 
 
 
<property> 
 
 
<name>mapreduce.jobhistory.webapp.address</name> 
 
 
<value> 
  主机1名 
  :19888 
  </value> 
 
 
</property> 
 
 
<!-- 
  配置  
  mapreduce 已 
  完成的  
  job  
  记录在  
  HDFS  
  上的存放地址 
  --> 
 
 
<property> 
 
 
<name>mapreduce.jobhistory.done-dir</name> 
 
 
<value> 
  /history/done 
  </value> 
 
 
</property> 
 
 
<!-- 
  配置  
  mapreduce  
  正在执行的 
  job  
  记录在  
  HDFS  
  上的存放地址 
  --> 
 
 
<property> 
 
 
<name>mapreduce.jobhistory.intermediate-done-dir</name> 
 
 
<value> 
  /history/done_intermediate 
  </value> 
 
 
</property> 
  <!-- 
  为  
  MR  
  程序主进程添加环境变量 
  --> 
 
 
<property> 
 
 
<name>yarn.app.mapreduce.am.env</name> 
 
 
<value> 
  HADOOP_MAPRED_HOME=/opt/module/hadoop-3.1.3 
  </value> 
 
 
</property> 
 
 
<!-- 
  为  
  Map  
  添加环境变量 
  --> 
 
 
<property> 
 
 
<name>mapreduce.map.env</name> 
 
 
<value> 
  HADOOP_MAPRED_HOME=/opt/module/hadoop-3.1.3 
  </value> 
 
 
</property> 
 
 
<!-- 
  为  
  Reduce  
  添加环境变量 
  --> 
 
 
<property> 
 
 
<name>mapreduce.reduce.env</name> 
 
 
<value> 
  HADOOP_MAPRED_HOME=/opt/module/hadoop-3.1.3 
  </value> 
 
 
</property> 
 
 
</configuration>

4. 配置yarn-site.xml文件

输入命令:vim yarn-site.xml

<configuration> 
 
 
<!-- Site specific YARN configuration properties --> 
 
 
<!--指 
  定  
  resourcemanager  
  所启动服务的主机名 
  |IP--> 
 
 
<property> 
 
 
<name>yarn.resourcemanager.hostname</name> 
 
 
<value> 
  主机名1 
  </value> 
 
 
</property> 
 
 
<!--指 
  定  
  mapreduce  
  癿  
  shuffle  
  处理数据方式 
  --> 
 
 
<property> 
 
 
<name>yarn.nodemanager.aux-services</name> 
 
 
<value>mapreduce_shuffle</value> 
 
 
</property> 
 
 
<!-- 
  配置  
  resourcemanager  
  内部通讯地址 
  --> 
 
 
<property> 
 
 
<name>yarn.resourcemanager.address</name> 
 
 
<value> 
  主机名1 
  :8032 
  </value> 
 
 
</property> 
 
 
<!-- 
  配置  
  resourcemanager 的 
  scheduler  
  组件的内部通信地址 
  --> 
 
 
<property> 
 
 
<name>yarn.resourcemanager.scheduler.address</name> 
 
 
<value> 
  主机名1 
  :8030 
  </value> 
 
 
</property> 
 
 
<!-- 
  配置  
  resource-tracker  
  组件的内部通信地址 
  --> 
 
 
<property> 
 
 
<name>yarn.resourcemanager.resource-tracker.address</name> 
 
 
<value> 
  主机名1 
  :8031 
  </value> 
  </property> 
 
 
<!-- 
  配置  
  resourcemanager  
  的  
  admin  
  的内部通信地址 
  --> 
 
 
<property> 
 
 
<name>yarn.resourcemanager.admin.address</name> 
 
 
<value> 
  主机名1 
  :8033 
  </value> 
 
 
</property> 
 
 
<!-- 
  配置  
  yarn  
  的  
  web  
  管理地址 
  --> 
 
 
<property> 
 
 
<name>yarn.resourcemanager.webapp.address</name> 
 
 
<value> 
  主机名1 
  :8088 
  </value> 
 
 
</property> 
 
 
<!--yarn  
  的日志聚合是否开启 
  --> 
 
 
<property> 
 
 
<name>yarn.log-aggregation-enable</name> 
 
 
<value> 
  true 
  </value> 
 
 
</property> 
 
 
<!-- 
  聚合日志在  
  hdfs  
  的存储路径 
  --> 
 
 
<property> 
 
 
<name>yarn.nodemanager.remote-app-log-dir</name> 
 
 
<value>/tmp/logs</value> 
 
 
</property> 
 
 
<!-- 
  聚合日志在  
  hdfs的 
  保存时长,单位  
  S 
  ,默认  
  7  
  天 
  --> 
 
 
<property> 
 
 
<name>yarn.log-aggregation.retain-seconds</name> 
 
 
<value> 
  604800 
  </value> 
 
 
</property> 
 
 
<!-- 
  聚合日志的检查时间段 
  --> 
 
 
<property> 
 
 

 
 
<name>yarn.log-aggregation.retain-check-interval-seconds</name 
 
 
> 
 
 
<value> 
  3600 
  </value> 
 
 
</property> 
 
 
<!-- 设 
  置日志聚合服务器地址  
  --> 
 
 
<property> 
 
 
<name>yarn.log.server.url</name> 
 
 
<value>http:// 
  主机名1 
  :19888 
  /jobhistory/logs</value> 
  </property> 
 
 
<!--  
  环境变量的继承  
  --> 
 
 
<property> 
 
 
<name>yarn.nodemanager.env-whitelist</name> 
 
 

 
 
<value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CO 
 
 
NF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAP 
 
 
RED_HOME</value> 
 
 
</property> 
 
 
</configuration>

5.编辑wokers 

输入命令:vim workers

主机名1

主机名2

主机名3 

然后将配置好的hadoop-3.1.3目录发送给其他节点

输入命令:scp -r /opt/module/hadoop-3.1.3 root@主机名:/opt/module

然后格式化 Namenode(记住只能格式化一次)

输入命令:hadoop namenode -format

确定hadoop服务

输入命令:start -all.sh

检查进程运行情况:

输入命令:jps

若root报错

目录

一、修改三台虚拟机的主机名

二、配置映射信息,根据自己的IP和主机名相对应

三、配置ssh免密登录 

四、安装JDK

五、安装hadoop

六、集群部署

 首先进入hadoop配置文件所在目录:

1.配置core-site.xml文件(修改中的内容)

2. 配置hdfs-site.xml文件

3.配置mapred-site.xml 文件

4. 配置yarn-site.xml文件

5.编辑wokers 

然后将配置好的hadoop-3.1.3目录发送给其他节点

然后格式化 Namenode(记住只能格式化一次)

确定hadoop服务

检查进程运行情况:

若root报错

七、通过web查看 hdfs集群

1.关闭虚拟机的防火墙

2.web验证


则需要修改/opt/module/hadoop-3.1.3/etc/hadoop/hadoop-env.sh 文件:

输入命令:vim /opt/module/hadoop-3.1.3/etc/hadoop/hadoop-env.sh

在文件尾添加一下内容:

#JAVA_HOME 
 
 
export JAVA_HOME=/opt/module/jdk1.8.0_212 
 
 
export PATH=$PATH:$JAVA_HOME/bin 
 
 
export HDFS_NAMENODE_USER=root 
 
 
export HDFS_DATANODE_USER=root 
 
 
export HDFS_SECONDARYNAMENODE_USER=root

七、通过web查看 hdfs集群

1.关闭虚拟机的防火墙

输入命令:systemctl stop filewalld

                  systemtl disable firewalld

2.web验证

HDFS:公网IP:9870

yarn:公网IP:8088