hadoop-3.1.1分布式搭建与常用命令

一、准备工作

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

# 增加配置

  fs.defaultFS

  hdfs://master:9000

  hadoop.tmp.dir

  /usr/local/soft/hadoop-3.1.1/tmp

  fs.trash.interval

  1440

 3、修改hdfs-site.xml配置文件,在configuration中间增加配置

vim hdfs-site.xml

# 增加配置

  dfs.replication

  1

  dfs.permissions

  false

4、修改yarn-site.xml配置文件,在configuration中间增加配置

vim yarn-site.xml

# 增加配置

  yarn.resourcemanager.hostname

  master

  yarn.nodemanager.aux-services

  mapreduce_shuffle

  yarn.log-aggregation-enable

  true

5.vim mapred-site.xml

    

        mapreduce.framework.name

        yarn

   

     

        mapreduce.jobhistory.address  

        master:10020  

     

     

        mapreduce.jobhistory.webapp.address  

        master:19888  

     

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 :用于递归改变指定目录下所有文件的副本系数