一、准备工作
1.首先需要三台虚拟机: master 、 node1 、 node2 2.时间同步 ntpdate ntp.aliyun.com 3.调整时区 cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime 4.jdk1.8 java -version 5.修改主机名 三台分别执行 vim /etc/hostname 并将内容指定为对应的主机名 6.关闭防火墙: systemctl stop firewalld 名 查看防火墙状态: systemctl status firewalld 取消防火墙自启: systemctl disable firewalld 7.静态IP 配置 直接使用图形化界面配置(不推荐) 手动编辑配置文件进行配置 (1)编辑网络配置文件 vim /etc/sysconfig/network-scripts/ifcfg-ens33 TYPE=Ethernet BOOTPROTO=static HWADDR=00:0C:29:E2:B8:F2 NAME=ens33 DEVICE=ens33 ONBOOT=yes IPADDR=192.168.190.100 GATEWAY=192.168.190.2 NETMASK=255.255.255.0 DNS1=192.168.190.2 DNS2=223.6.6.6 需要修改: HWADDR ( mac 地址 ,centos7 不需要手动指定 mac 地 址) IPADDR (根据自己的网段,自定义 IP 地址) GATEWAY (根据自己的网段填写对应的网关地址) (2)关闭 NetworkManager ,并取消开机自启 systemctl stop NetworkManager systemctl disable NetworkManager systemctl status NetworkManager (3)重启网络服务 systemctl restart network 8.免密登录 (1)生成密钥 ssh-keygen -t rsa (2)配置免密登录 ssh-copy-id master ssh-copy-id node1 ssh-copy-id node2 (3)测试免密登录 ssh node1 9.配置好映射文件: /etc/hosts 192.168.19.100 master 192.168.19.110 node1 192.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
# 增加配置
3、修改hdfs-site.xml配置文件,在configuration中间增加配置
vim hdfs-site.xml
# 增加配置
4、修改yarn-site.xml配置文件,在configuration中间增加配置
vim yarn-site.xml
# 增加配置
5.vim mapred-site.xml
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
9.分发Hadoop文件夹
目前,已经基本完成Hadoop的配置操作,可以从master将hadoop安装文件夹远程复制到node1、node2
scp -r hadoop-3.3.4 node2:`pwd`/
scp -r hadoop-3.3.4 node3:`pwd`/
(三)初始化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]
2.将Linux中的文件上传到HDFS文件系统中
hadoop fs -put [-f] [-p] [-l] [-d] [ - |
-p 保留访问和修改时间、权限
-f 覆盖目标文件
3.查看文件内容
hadoop fs -cat [-ignoreCrc] URI [URI ...]
4.复制文件到HDFS其他目录下
hadoop fs -cp [-f] [-p | -p[topax]] URI [URI ...]
5.将HDFS的文件移动到HDFS其他目录下
hadoop fs -mv URI [URI ...]
6.强制删除文件或者文件夹
hadoop fs -rm -r -f
-r 递归删除目录
-f 覆盖目标文件
7.将HDFS文件下载到Linux中
hadoop fs -get [-ignorecrc] [-crc] [-p] [-f]
8.用于将指定文件最后1K字节的内容输出到stdot,一般用于查看日志
hadoop fs -tail [-f]
9.追加并合并文件内容
hadoop fs -appendToFile
10.修改权限
(1)改变文件的权限
hadoop fs -chmod [-R] PATH
(2)改变文件的拥有者或所属组
hadoop fs -chown [-R] [OWNER]:[:[GROUP]] PATH
11.统计
(1)统计指定目录下的目录数,文件数,字节数
hadoop fs -count [-h]
-h: 使用便于操作人员读取的单位信息格式
(2)统计文件系统的容量,可用空间,已用空间信息
hadoop fs -df [-h]
(3)显示指定目录下所有文件和文件夹的大小,或者当只指定一个文件时,显示此文件的大小
fs -du [-s] [-h]
-s:不显示指定目录下每个单独文件的大小,只统计目录所占用空间的总大小
-h: 使用便于操作人员读取的单位信息格式
12.改变HDFS中文件的副本数
hadoop fs -setrep [-R]
-R :用于递归改变指定目录下所有文件的副本系数