一、准备工作
1.首先需要三台虚拟机: master 、 node1 、 node22.时间同步ntpdate ntp.aliyun.com3.调整时区cp /usr/share/zoneinfo/Asia/Shanghai/etc/localtime4.jdk1.8java -version5.修改主机名三台分别执行 vim /etc/hostname 并将内容指定为对应的主机名6.关闭防火墙: systemctl stop firewalld名 查看防火墙状态: systemctl status firewalld取消防火墙自启: systemctl disable firewalld7.静态IP 配置直接使用图形化界面配置(不推荐)手动编辑配置文件进行配置(1)编辑网络配置文件vim /etc/sysconfig/network-scripts/ifcfg-ens33TYPE=EthernetBOOTPROTO=staticHWADDR=00:0C:29:E2:B8:F2NAME=ens33DEVICE=ens33ONBOOT=yesIPADDR=192.168.190.100GATEWAY=192.168.190.2NETMASK=255.255.255.0DNS1=192.168.190.2DNS2=223.6.6.6需要修改: HWADDR ( mac 地址 ,centos7 不需要手动指定 mac 地址)IPADDR (根据自己的网段,自定义 IP 地址)GATEWAY (根据自己的网段填写对应的网关地址)(2)关闭 NetworkManager ,并取消开机自启systemctl stop NetworkManagersystemctl disable NetworkManagersystemctl status NetworkManager(3)重启网络服务systemctl restart network8.免密登录(1)生成密钥ssh-keygen -t rsa(2)配置免密登录ssh-copy-id masterssh-copy-id node1ssh-copy-id node2(3)测试免密登录ssh node19.配置好映射文件: /etc/hosts192.168.19.100 master192.168.19.110 node1192.168.19.120 node2
二、搭建Hadoop集群
在搭建之前,我们需要了解非高可用集群的分布情况:
去官网或者华为云镜像下载解压包
华为云镜像:https://mirrors.huaweicloud.com/apache/hadoop/common/hadoop-3.1.1/
(一)上传解压配置环境变量
1、解压
tar -xvf hadoop-3.1.1.tar.gz.gz
include文件夹存放一些第三方的东西,lib存放jar包
2、配置环境变量
vim /etc/profile
#增加配置
export HADOOP_HOME=/usr/local/soft/hadoop-3.1.1
export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin
4.使环境变量生效
source /etc/profile
(二)修改配置文件
1、进入hadoop配置文件所在位置,修改hadoop配置文件
cd /usr/local/soft/hadoop-3.1.1/etc/hadoop
2、修改core-site.xml配置文件,在configuration中间增加配置
vim core-site.xml
# 增加配置
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/local/soft/hadoop-3.1.1/tmp</value>
</property>
<property>
<name>fs.trash.interval</name>
<value>1440</value>
</property>
</configuration>
3、修改hdfs-site.xml配置文件,在configuration中间增加配置
vim hdfs-site.xml
# 增加配置
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>
</configuration>
4、修改yarn-site.xml配置文件,在configuration中间增加配置
vim yarn-site.xml
# 增加配置
<property>
<name>yarn.resourcemanager.hostname</name>
<value>master</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>
5.vim mapred-site.xml
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.jobhistory.address</name>
<value>master:10020</value>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>master:19888</value>
</property>
6.修改hadoop-env.sh配置文件
vim hadoop-env.sh
# 增加配置
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_202.jdk/Contents/Home
7.修改hadoop-env.sh配置文件
vim workers
# 增加配置
node1
node2
8.修改hadoop-env.sh的文件
export HDFS_NAMENODE_USER=root
export HDFS_DATANODE_USER=root
export HDFS_SECONDARYNAMENODE_USER=root
export YARN_RESOURCEMANAGER_USER=root
export YARN_NODEMANAGER_USER=root
(三)初始化hdfs
hdfs namenode -format
(四)启动与停止hadoop以及ui页面
(1)启动hadoop
start-all.sh
(2)停止hadoop
stop-all.sh
(3)hdfs web ui
http://master:9870
(4)yarn web ui
http://master:8088
三.常用命令
1.创建文件夹
hadoop fs -mkdir [-p] <paths>
2.将Linux中的文件上传到HDFS文件系统中
hadoop fs -put [-f] [-p] [-l] [-d] [ - | <localsrc1> .. ]. <dst>
-p 保留访问和修改时间、权限
-f 覆盖目标文件
3.查看文件内容
hadoop fs -cat [-ignoreCrc] URI [URI ...]
4.复制文件到HDFS其他目录下
hadoop fs -cp [-f] [-p | -p[topax]] URI [URI ...] <dest>
5.将HDFS的文件移动到HDFS其他目录下
hadoop fs -mv URI [URI ...] <dest>
6.强制删除文件或者文件夹
hadoop fs -rm -r -f
-r 递归删除目录
-f 覆盖目标文件
7.将HDFS文件下载到Linux中
hadoop fs -get [-ignorecrc] [-crc] [-p] [-f] <src> <localdst>
8.用于将指定文件最后1K字节的内容输出到stdot,一般用于查看日志
hadoop fs -tail [-f]<file>
9.追加并合并文件内容
hadoop fs -appendToFile<localsrc> ... <dst>
10.修改权限
(1)改变文件的权限
hadoop fs -chmod [-R] PATH
(2)改变文件的拥有者或所属组
hadoop fs -chown [-R] [OWNER]:[:[GROUP]] PATH
11.统计
(1)统计指定目录下的目录数,文件数,字节数
hadoop fs -count [-h] <path>
-h: 使用便于操作人员读取的单位信息格式
(2)统计文件系统的容量,可用空间,已用空间信息
hadoop fs -df [-h] <path>
(3)显示指定目录下所有文件和文件夹的大小,或者当只指定一个文件时,显示此文件的大小
fs -du [-s] [-h] <path>
-s:不显示指定目录下每个单独文件的大小,只统计目录所占用空间的总大小
-h: 使用便于操作人员读取的单位信息格式
12.改变HDFS中文件的副本数
hadoop fs -setrep [-R] <rep> <path>
-R :用于递归改变指定目录下所有文件的副本系数