1 网络配置
如果是配虚拟机,记得到计算机管理—》服务,打开以下服务,要不然上不了网。
1.1编辑网络配置文件
vim /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=ef14485b-10d0-4b42-ae97-c1776f696d7b
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.88.10
PREFIX=24
GATEWAY=192.168.88.2
DNS1=223.5.5.5
1.2 重启网络服务
Service network restart
2 时间同步
参考博客:https://blog.csdn.net/zisefeizhu/article/details/81535299
2.1安装时间同步工具ntp : yum install –y ntp
改变时区 :
rm –rf /etc/localtime
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
同步时间 :
/usr/sbin/ntpdate –u cn.pool/ntp.org
自动同步时间 :
vim /etc/crontab
(针对root用户) 或 crontab –e
0 1 * * * /usr/sbin/ntpdate cn.pool.ntp.org
3 关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
4 配置主机名
4.1 关于本机设置主机名
[root@master ~]# vim /etc/sysconfig/network
配置信息如下
NETWORKING=yes #启动网络
HOSTNAME=master #主机名
[root@localhost ~]# vim /etc/hostname
master
4.2 将主机名立即生效
[root@localhost ~]# hostname master
之后重启永久有效
5 配置主机名IP地址映射文件/etc/hosts
[root@centos01 ~]# vim /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.88.10 centos01
192.168.88.11 centos02
192.168.88.12 centos03
6 安装JDK
6.1 新建目录/usr/java
[root@centos01 ~]# mkdir /usr/java
6.2 将JDK文件解压,放到/usr/java目录下
[root@centos01 java]# tar -zxvf /usr/java/jdk-8u201-linux-x64.tar.gz
6.3 设置环境路径
[root@centos01 java]# vim /etc/profile
export JAVA_HOME=/usr/java/jdk1.8.0_201/
export PATH=$JAVA_HOME/bin:$PATH
6.4 更新环境路径
[root@centos01 java]# source /etc/profile
7 免密登录设置
公钥用来加密,私钥用来解密。
要把所有机器的公钥都放在.ssh/authorized_keys文件里,并分享给所有机器,那么集群中机器就可以免密登录了
CentOS默认没有启动ssh无密登录,去掉/etc/ssh/sshd_config其中2行的注释,每台服务器都要设置,
#RSAAuthentication yes
#PubkeyAuthentication yes
7.1 Master节点上
7.1.1 生成公钥和秘钥文件
[root@localhost java]# ssh-keygen -t rsa
7.1.2 复制公钥文件
[root@localhost .ssh]# cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
7.1.3 设置公钥文件权限
[root@localhost .ssh]# chmod 600 authorized_keys
7.1.4 将slave节点传入的公钥添加到ssh/authorized_keys文件
[root@centos01 ~]# cat id_rsa01.pub >> .ssh/authorized_keys
[root@centos01 ~]# cat id_rsa02.pub >> .ssh/authorized_keys
7.1.5 将authorized_keys文件复制到其他节点
[root@localhost .ssh]# scp ~/.ssh/authorized_keys root@centos02:~/
[root@localhost .ssh]# scp ~/.ssh/authorized_keys root@centos03:~/
7.2 在slave节点上
7.2.1 生成公钥和秘钥文件
[root@localhost java]# ssh-keygen -t rsa
7.2.2 将生成的公钥传入master节点
[root@centos02 .ssh]# scp ~/.ssh/id_rsa.pub root@centos01:~/id_rsa01.pub
[root@centos03 .ssh]# scp ~/.ssh/id_rsa.pub root@centos01:~/id_rsa02.pub
7.2.3 将master节点上传来的公钥放入~/.ssh目录下
[root@localhost ~]# mv ~/authorized_keys ~/.ssh/
8 Hadoop安装
8.1 在/usr/目录下新建一个hadoop2.7.3的目录
[root@centos01 usr]# mkdir hadoop2.7.3
然后将hadoop压缩文件上传到/usr/hadoop2.7.3目录下。
8.2 解压hadoop
[root@centos01 hadoop-2.7.3]# tar -zxvf hadoop-2.7.3.tar.gz
然后就会到/usr/hadoop2.7.3/hadoop-2.7.3/目录下看到;
drwxr-xr-x. 2 root root 194 Aug 18 2016 bin
drwxr-xr-x. 3 root root 20 Aug 18 2016 etc
drwxr-xr-x. 2 root root 106 Aug 18 2016 include
drwxr-xr-x. 3 root root 20 Aug 18 2016 lib
drwxr-xr-x. 2 root root 239 Aug 18 2016 libexec
-rw-r--r--. 1 root root 84854 Aug 18 2016 LICENSE.txt
-rw-r--r--. 1 root root 14978 Aug 18 2016 NOTICE.txt
-rw-r--r--. 1 root root 1366 Aug 18 2016 README.txt
drwxr-xr-x. 2 root root 4096 Aug 18 2016 sbin
drwxr-xr-x. 4 root root 31 Aug 18 2016 share
8.3 配置环境变量hadoop-env.sh
环境变量文件中,只需要配置JDK的路径。
[lan@master ~]$ cd hadoop-2.7.1/etc/hadoop/
[lan@master hadoop]$ vim hadoop-env.sh
在文件的靠前的部分找到下面的一行代码:
export JAVA_HOME=${JAVA_HOME}
将这行代码修改为下面的代码:
export JAVA_HOME=/usr/java/jdk1.8.0_101
然后保存文件。
8.4 配置环境变量yarn-env.sh
环境变量文件中,只需要配置JDK的路径。
[lan@master hadoop]$ vim yarn-env.sh
在文件的靠前的部分找到下面的一行代码:
# export JAVA_HOME=/home/y/libexec/jdk1.6.0/
将这行代码修改为下面的代码(将#号去掉):
export JAVA_HOME=/usr/java/jdk1.8.0_101
然后保存文件。
8.5 配置核心组件core-site.xml
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://centos01:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/hadoop2.7.3/hadoopdate</value>
</property>
<property>
<name>io.file.buffer.size</name>
<value>131702</value>
</property></configuration>
8.6 配置文件系统hdfs-site.xml
使用gedit编辑:
[lan@master hadoop]$ vim hdfs-site.xml
修改内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!-- Put site-specific property overrides in this file. -->
<configuration>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>centos01:9001</value>
</property>
<property>
<name>dfs.webhdfs.enabled</name>
<value>true</value>
</property>
</configuration>
注意:其中产生的namenode镜像文件目录dfs.namenode.name.dir和datanode的dfs.datanode.data.dir目录和secondary namenode的dfs.namenode.checkpoint.dir目录默认都在core-site.xml配置的tmp文件夹下。系统默认配置了,不需要我们在配置。
8.7 配置文件系统yarn-site.xml
使用gedit编辑:
[lan@master hadoop]$ vim yarn-site.xml
修改内容如下:
<?xml version="1.0"?>
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.auxservices.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
<property>
<name>yarn.resourcemanager.address</name>
<value>centos01:8032</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>centos01:8030</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>centos01:8031</value>
</property>
<property>
<name>yarn.resourcemanager.admin.address</name>
<value>centos01:8033</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>centos01:8088</value>
</property>
<property>
<name>yarn.nodemanager.resource.memory-mb</name>
<value>1536</value>
</property>
</configuration>
8.8 配置计算框架mapred-site.xml
复制mapred-site-template.xml文件:
[lan@master hadoop]$ cp mapred-site.xml.template mapred-site.xml
使用vim编辑:
[lan@master hadoop]$ vim mapred-site.xml
修改内容如下:
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.jobhistory.address</name>
<value>centos01:10020</value>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>centos01:19888</value>
</property>
</configuration>
8.9 配置slaves文件
使用vim编辑:
[lan@master hadoop]$ vim slaves
用下面的代码替换slaves中的内容:
Centos02
Centos03
8.10 复制到从节点上
使用下面的命令将已经配置完成的Hadoop复制到从节点HadoopSlave上:
[rootcentos01 usr]$ scp -r hadoop-2.7.3 root@centos02:/usr/
[rootcentos01 usr]$ scp -r hadoop-2.7.3 root@centos03:/usr/
注意:因为之前已经配置了免密钥登录,这里可以直接远程复制。
8.11 启动hadoop集群
8.11.1格式化文件系统
[root@centos02 hadoop-2.7.3]# ./bin/hdfs namenode –format
8.11.2启动hadoop集群
[root@centos02 hadoop-2.7.3]# ./sbin/start-all.sh
执行命令后,提示出入yes/no时,输入yes。
8.12 查看进程
8.12.1在master节点
[root@centos02 hadoop-2.7.3]# jps
8486 Jps
8251 DataNode
8349 NodeManager
[root@centos02 hadoop-2.7.3]#
8.12.2在slave节点上
[root@centos03 ~]# jps
8320 NodeManager
8457 Jps
8222 DataNode
9查看web UI
官网上默认的端口
链接:https://hadoop.apache.org/docs/r2.7.3/hadoop-project-dist/hadoop-common/ClusterSetup.html#Web_Interfaces