环境版本
CentOS-7
JDK-8
Hadoop-3
CentOS-7 服务器设置
设置静态IP
查看IP配置在/etc/sysconfig/network-scripts/目录下的ifcfg-ens33文件中。
[root@Hadoop3-master sbin]# cd /etc/sysconfig/network-scripts
[root@Hadoop3-master network-scripts]# ll
总用量 232
-rw-r--r--. 1 root root 364 2月 12 2023 ifcfg-ens33
-rw-r--r--. 1 root root 254 5月 22 2020 ifcfg-lo
lrwxrwxrwx. 1 root root 24 2月 12 00:49 ifdown -> ../../../usr/sbin/ifdown
-rwxr-xr-x. 1 root root 654 5月 22 2020 ifdown-bnep
-rwxr-xr-x. 1 root root 6532 5月 22 2020 ifdown-eth
-rwxr-xr-x. 1 root root 781 5月 22 2020 ifdown-ippp
-rwxr-xr-x. 1 root root 4540 5月 22 2020 ifdown-ipv6
编辑 ifcfg-ens33 文件,配置静态IP
[root@Hadoop3-master network-scripts]# vi ifcfg-ens33
打开后,按 i 进入可编辑状态,将下面标红的进行修改或新增操作,
修改完成后,按ctrl+c退出可编辑状态,然后输入:wq保存退出,:q!不保存退出
重置网络
service network restart
查看当前IP地址
[root@Hadoop3-master network-scripts]# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:0c:29:14:9a:83 brd ff:ff:ff:ff:ff:ff
inet 192.168.43.11/24 brd 192.168.43.255 scope global noprefixroute ens33
valid_lft forever preferred_lft forever
inet6 fe80::822:732d:a0e4:134a/64 scope link noprefixroute
valid_lft forever preferred_lft forever
修改 IP 地址后可能会遇到的问题
(1)物理机能 ping 通虚拟机,但是虚拟机 ping 不通物理机,一般都是因为物理机的防火墙问题,把防火墙关闭就行
(2)虚拟机能 Ping 通物理机,但是虚拟机 Ping 不通外网,一般都是因为 DNS 的设置有问题
(3)虚拟机 Ping www.baidu.com 显示域名未知等信息,一般查看 GATEWAY 和 DNS 设置是否正确
解决网络不通
编辑VMware设置网络,编辑→虚拟网络编辑器
重新启动虚拟机,检查虚拟机与物理主机是否能够ping通。
修改主机名
查看主机名
[root@Hadoop3-master network-scripts]# hostname
localhost
修改主机名
[root@Hadoop3-master network-scripts]# hostnamectl set-hostname Hadoop3-master
[root@Hadoop3-master network-scripts]# hostname
Hadoop3-master
关闭防火墙
[root@Hadoop3-master network-scripts]# systemctl start firewalld.service #开启防火墙
[root@Hadoop3-master network-scripts]# systemctl restart firewalld.service #重启防火墙
[root@Hadoop3-master network-scripts]# systemctl stop firewalld.service #关闭防火墙
[root@Hadoop3-master network-scripts]# systemctl status firewalld.service # 防火墙状态
为了防止防火墙干挠,可以使用如下指令关闭防火墙
[root@Hadoop3-master network-scripts]# systemctl stop firewalld.service #关闭防火墙
[root@Hadoop3-master network-scripts]# systemctl disable firewalld.service # 开机禁用防火墙
禁用selinux
如果要永久关闭selinux 安全策略,可以修改/etc/selinux/config, 将SELINUX=enforcing 修改为SELINUX=disabled.
[root@Hadoop3-master network-scripts]# vi /etc/selinux/config
[root@Hadoop3-master network-scripts]# cat /etc/selinux/config
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - No SELinux policy is loaded.
SELINUX=disabled
# SELINUXTYPE= can take one of three values:
# targeted - Targeted processes are protected,
# minimum - Modification of targeted policy. Only selected processes are protected.
# mls - Multi Level Security protection.
SELINUXTYPE=targeted
设置SSH免密登入
Hadoop 各组件之间使用SSH登录,为了免密输入,可以设计SSH免密登录。详细步骤如下:
[root@Hadoop3-master network-scripts]# cd /root/.ssh #进入秘钥存放目录
[root@Hadoop3-master network-scripts]# rm -rf * #删除旧秘钥
使用ssh-keygen -t dsa 命令生成秘钥,在这个过程中需要多次回车键选取默认配置。
[root@Hadoop3-master network-scripts]# ssh-keygen -t dsa
将生成的秘钥文件id_dsa.pub 复制到SSH指定的秘钥文件中authorized_keys中。
[root@Hadoop3-master network-scripts]# cat id_dsa.pub >>authorized_keys
测试秘钥是否登入成功
[root@Hadoop3-master network-scripts]# ssh Hadoop3-master
重启
修改主机名等相关配置,必须重启主机
[root@Hadoop3-master network-scripts]# reboot
JDK 安装
将jdk-8u333-linux-x64.tar.gz,上传到CentOS-7的/usr/local 目录下
解压
使用cd 命令切换至/usr/local 目录,然后使用tar -xvf jdk-8u333-linux-x64.tar.gz 解压。
[root@Hadoop3-master network-scripts]# cd /usr/local
[root@Hadoop3-master network-scripts]# tar -xvf jdk-8u333-linux-x64.tar.gz
使用mv 命令重命名解压后的文件夹jdk1.8.0_152 为jdk
[root@Hadoop3-master local]# mv jdk1.8.0_152/ jdk
配置环境变量
将JDK的安装目录/usr/local/jdk 配置到/etc/profile的PATH环境变量中。
[root@Hadoop3-master network-scripts]# cat /etc/profile
# /etc/profile
export JAVA_HOME=/usr/local/jdk
export HADOOP_HOME=/usr/local/hadoop
export PATH=$PATH:$JAVA_HOME/bin
使环境变量生效
/etc/profile 文件修改后需要重新用source命令执行一次才能使设置生效。
[root@Hadoop3-master network-scripts]# source /etc/profile
测试
使用java -version 测试JDK版本。
[root@Hadoop3-master network-scripts]# java -version
java version "1.8.0_333"
Java(TM) SE Runtime Environment (build 1.8.0_333-b02)
Java HotSpot(TM) 64-Bit Server VM (build 25.333-b02, mixed mode)
[root@Hadoop3-master network-scripts]#
Hadoop3 安装
将hadoop-3.2.4.tar.gz,上传到CentOS-7的/usr/local 目录下.
解压
使用cd 命令切换至/usr/local 目录,然后使用tar -xvf hadoop-3.2.4.tar.gz 解压文件。
[root@Hadoop3-master local]# cd /usr/local
[root@Hadoop3-master local]# tar -xvf hadoop-3.2.4.tar.gz
使用mv 命令重命名解压后的文件夹hadoop3.2.4 为hadoop
[root@Hadoop3-master local]# mv hadoop3.2.4 hadoop
配置环境变量
将Hadoop 的安装目录/usr/local/hadoop 配置到/etc/profile 的PATH环境变量中。同时将Hadoop 各进程用户设置为root,并配置到/etc/profile
[root@Hadoop3-master network-scripts]# cat /etc/profile
# /etc/profile
export JAVA_HOME=/usr/local/jdk
export HADOOP_HOME=/usr/local/hadoop
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
export HDFS_NAMENODE=root
export HDFS_DATANODE=root
export HDFS_SECONDARYNAMENODE_USER=root
export YARN_RESOURCEMANAGER_USER=root
export YARN_NODEMANAGER_USER=root
使环境变量生效
/etc/profile 文件修改后需要重新用source命令执行一次才能使设置生效。
[root@Hadoop3-master network-scripts]# source /etc/profile
配置hadoop-env.sh
切换至Hadoop配置文件所在目录/usr/local/hadoop/etc/hadoop,修改其中的hadoop-env.sh文件。指定JDK安装目录
# Many of the options here are built from the perspective that users
# may want to provide OVERWRITING values on the command line.
# For example:
#
JAVA_HOME=/usr/local/jdk #JDK安装目录
配置core-site.xml
切换至Hadoop配置文件所在目录/usr/local/hadoop/etc/hadoop,修改其中的core-site.xml文件。
配置HDFS的访问URL和端口
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://Hadoop3-master:9000</value>
<description>NameNode URI</description>
</property>
</configuration>
配置hdfs-site.xml
切换至Hadoop配置文件所在目录/usr/local/hadoop/etc/hadoop,修改其中的hdfs-site.xml文件。
配置NameNode和DataNode的元数据存储,以及NameNode和DataNode的访问URL和端口。
<configuration>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:///usr/local/hadoop/data/datanode</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:///usr/local/hadoop/data/namenode</value>
</property>
<property>
<name>dfs.namenode.name.http-address</name>
<value>Hadoop3-master:50070</value>
</property>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>Hadoop3-master:50090</value>
</property>
</configuration>
配置yarn-site.xml
切换至Hadoop配置文件所在目录/usr/local/hadoop/etc/hadoop,修改其中的yarn-site.xml文件。
配置nodemanager和resourcemanager访问URL和端口。
<configuration>
<!-- Site specific YARN configuration properties -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.aux-services.mapreduce_shuffle.class</name>
<value>org.apache.hadoop.mapred.shuffleHandler</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>Hadoop3-master:8025</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>Hadoop3-master:8030</value>
</property>
<property>
<name>yarn.resourcemanager.address</name>
<value>Hadoop3-master:8050</value>
</property>
Hadoop3 验证
格式化
Hadoop 使用之前必须进行格式化,可以使用如下指令进行格式化:
[root@Hadoop3-master network-scripts]# hadoop namenode -format
如果在使用Hadoop的过程中出错,或者Hadoop 无法正常启动,可能需要重新格式化。
重新格式化的流程步骤:
停止Hadoop
删除Hadoop 下的data和logs文件夹
重新格式化
[root@Hadoop3-master network-scripts]# stop-all.sh
[root@Hadoop3-master network-scripts]# cd /usr/local/hadoop
[root@Hadoop3-master hadoop]# rm -rf data/ logs/
[root@Hadoop3-master hadoop]# hadoop namenode -format
启动Hadoop
使用start-all.sh命令启动Hadoop的所有进程。
[root@Hadoop3-master hadoop]# start-all.sh
使用stop-all.sh命令停止Hadoop的所有进程。
[root@Hadoop3-master hadoop]# stop-all.sh
查看Hadoop 相关进程
使用jps 查看Hadoop的相关进程。
[root@Hadoop3-master hadoop]# jps
68706 Jps
33415 DataNode
29803 ResourceManager
29486 SecondaryNameNode
33262 NameNode
浏览文件
使用Hadoop 命令查看HDFS上得文件
[root@Hadoop3-master hadoop]# hadoop fs -ls /
浏览器访问
打开浏览器,输入http://192.168.43.11:5007或者http://Hadoop3-master:50070,即可查看Hadoop 运行相关信息。