在虚拟机上从0开始安装 hadoop 3.1.3 集群记录

hadoop 3.1.3 安装记录

  • linux 安装
    • VMware
      • 新建虚拟机向导
      • VMware的网络配置
    • centos 7.5
      • 安装
      • 设置服务器
    • 使用windTerm 连接服务器 (使用shell工具即可)
    • jdk和hadoop安装
      • 上传和准备
      • 配置环境
    • hadoop环境配置
    • 拷贝服务器及快捷脚本
      • 拷贝以及设置服务器
      • 设置分发脚本
    • **done!&start!**
    • 常用端口

linux 安装

使用centos7.5 DVD

环境虚拟机 VMware

jdk1.8

hadoop 3.1.3

VMware

新建虚拟机向导

  • 选择典型
  • 稍后安装操作系统
  • linux 版本centOS7 64位
  • 虚拟机名称 hadoop11
  • 位置 d:\dev\hadoop11
  • 磁盘大小 50
  • 将虚拟磁盘拆分成多个文件
  • 自定义硬件 内存 4GB(根据实际情况定)
  • 处理器数量2 每个处理器的内核数量2 (根据实际情况定)
  • 新CD/DVD 使用ISO镜像文件 选择centos7.5 DVD
  • Done
  • 开启此虚拟机

VMware的网络配置

  • 编辑 虚拟网络编辑器
  • 选择NAT 模式 修改子网IP192.168.【挑个吉祥数】.0
  • NAT设置 网管IP改成【吉祥数】
  • 修改vm对应的网卡的 internet协议版本 4 (TCP/IPv4)

    ip地址 192.168.【吉祥数】.1

    子网掩码 255.255.255.0

    默认网关 192.168.【吉祥数】.2

    首选DNS 192.168.【吉祥数】.2

    吉祥数是10,实际根据环境判断,避免占用

  • 完事

centos 7.5

安装

  • 本地化 设置当前时间
  • 软件安装 最小安装 【已选开发环境的附加选项】全钩上
  • 安装位置 其他存储选项 我要配置分区
  • 标准分区
  • + 挂载点 /boot 1G 添加挂载点 文件系统ext4
  • + 挂载点 /swap 4G 添加挂载点 文件系统swap
  • + 挂载点 / 45G 添加挂载点 文件系统ext4
  • 完成标准分区设置
  • KDUMP [在标准分区旁边] 不启用 kdump
  • 网络和主机名称 打开以太网 设置主机名hadoop11 点击应用 【完成】
  • SECURITY POLICY 【No content found】
  • [开始安装]ing
  • 设置密码和用户
  • 安装工具
yum install -y epel-releaseyum install -y vim yum install -y net-tools yum install -y ntp

设置服务器

  • 给用户赋root权限
vim /etc/sudoers
  • user 修改成linux安装时候设置的用户名
  • ⚠️注意!注意!注意!

    需要增加在 %wheel ALL=(ALL) ALL 后面

    注意:user这一行不要直接放到root行下面,因为所有用户都属于wheel组,你先配置了user具有免密功能,但是程序执行到%wheel行时,该功能又被覆盖回需要密码。所以user要放到%wheel这行下面。

#找到 %wheel  ALL=(ALL)       ALL 添加在该行下面user   ALL=(ALL)     NOPASSWD:ALL
  • 设置hostname
vim /etc/hostname
hadoop11
  • 设置hosts
vim /etc/hosts
192.168.10.11     hadoop11192.168.10.12     hadoop12192.168.10.13     hadoop13
  • 关闭防火墙
systemctl stop firewalldsystemctl disable firewalld.service
  • 卸载 自带jdk 【最小安装无jdk】

    rpm -qa:查询所安装的所有rpm软件包

    grep -i:忽略大小写

    xargs -n1:表示每次只传递一个参数

    rpm -e –nodeps:强制卸载软件

rpm -qa | grep -i java | xargs -n1 rpm -e --nodeps 
  • 虚拟网络ip设置
  • su root权限
vim /etc/sysconfig/network-scripts/ifcfg-ens33 
  • #IP的配置方法[none|static|bootp|dhcp](引导时不使用协议|静态分配IP|BOOTP协议|DHCP协议)

    BOOTPROTO=“static”

  • #IP地址

    IPADDR=192.168.10.11

  • #网关

    GATEWAY=192.168.10.2

  • #域名解析器

    DNS1=192.168.10.2

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="ec201efe-1f94-46ab-b276-50022ceee6e8"DEVICE="ens33"ONBOOT="yes"IPADDR=192.168.10.11GATEWAY=192.168.10.2DNS1=192.168.10.2

保存后重启

reboot

使用windTerm 连接服务器 (使用shell工具即可)

  • 自行下载WindTerm github 建议百度找资源
  • 新建回话 主机192.168.10.11
  • 后续操作使用windTerm 操作

jdk和hadoop安装

上传和准备

  • 在opt下创建module和software
mkdir /opt/module
mkdir /opt/software
  • 使用windTerm 中使用文件管理 进入 /opt/software/
  • 将jdk1.8 和hadoop 3.1.3上传到服务器的software目录下

    Alt

  • 分别将jdk和hadoop解压缩到module 目录下
tar -zxvf jdk-8u212-linux-x64.tar.gz -C /opt/module/tar -zxvf hadoop-3.1.3.tar.gz -C /opt/module/

配置环境

vim /etc/profile
  • 在末尾添加【环境变量】
  • 也可以通过在profile.d目录下my_env.sh,在该文件中配置环境变量【环境变量】
vim /etc/profile.d/my_env.sh
  • 【环境变量】
#JAVA_HOMEexport JAVA_HOME=/opt/module/jdk1.8.0_212export PATH=$PATH:$JAVA_HOME/bin#HADOOP_HOMEexport HADOOP_HOME=/opt/module/hadoop-3.1.3export PATH=$PATH:$HADOOP_HOME/binexport PATH=$PATH:$HADOOP_HOME/sbin
  • 重载配置文件
source /etc/profile
  • 测试是否OK
jpsjava -version

hadoop环境配置

192.168.10.11 hadoop11是主节点

192.168.10.12 hadoop12是Yarn节点

192.168.10.13 hadoop13是从节点

  • 以下操作均需要进入配置的文件所在的目录:$HADOOP_HOME/etc/hadoop/
cd /opt/module/hadoop-3.1.3/etc/hadoop
  • core-site.xml 设置NameNode、存储目录、以及机群启动后通过web页面管理的操作权限。
  • 注意“【user】”需要替换成linux的用户,就是上文赋过root权限的用户
vim core-site.xml



    
    
        fs.defaultFS
        hdfs://hadoop11:8020
    

    
    
        hadoop.tmp.dir
        /opt/module/hadoop-3.1.3/data
    

    
    
        hadoop.http.staticuser.user
        ocken
    

  • hdfs-site.xml 指定主从服务
vim hdfs-site.xml



	
	
        dfs.namenode.http-address
        hadoop11:9870
    
	
    
        dfs.namenode.secondary.http-address
        hadoop13:9868
    

  • yarn-site.xml 指定YARN服务器
vim yarn-site.xml



    
    
        yarn.nodemanager.aux-services
        mapreduce_shuffle
    

    
    
        yarn.resourcemanager.hostname
        hadoop12
    

    
    
        yarn.nodemanager.env-whitelist
    	JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME
    
    

    yarn.log-aggregation-enable
    true


  
    yarn.log.server.url  
    http://hadoop11:19888/jobhistory/logs



    yarn.log-aggregation.retain-seconds
    604800


  • mapred-site.xml
vim mapred-site.xml



	
    
        mapreduce.framework.name
        yarn
    
    

    mapreduce.jobhistory.address
    hadoop11:10020



    mapreduce.jobhistory.webapp.address
    hadoop11:19888


  • workers 不可以有空格和缩进
vim workers
hadoop11
hadoop12
hadoop13

拷贝服务器及快捷脚本

拷贝以及设置服务器

  • 使用VMware 右键电源 关机 右键快照 拍摄快照 日期
  • 右键 管理 克隆 下一步 虚拟机中当状态 下一步 创建完整克隆
  • 虚拟机名称 分别是hadoop12 和 hadoop13 目录看自己
  • 修改每台机器的hostname和ifcfg-ens33文件。
vim /etc/hostname
vim /etc/sysconfig/network-scripts/ifcfg-ens33
  • reboot
  • 在windterm分别增加会话。

设置分发脚本

  • 设置ssh免密登录,分别在三台服务器上执行一下操作。
ssh-keygen -t rsa
ssh-copy-id hadoop11
ssh-copy-id hadoop12
ssh-copy-id hadoop13
  • 了解一下

    scp -r $pdir/$fname $user@$host:$pdir/$fname

    命令 递归 要拷贝的文件路径/名称 目的地用户@主机:目的地路径/名称

    rsync -av $pdir/$fname $user@$host:$pdir/$fname

    命令 选项参数 要拷贝的文件路径/名称 目的地用户@主机:目的地路径/名称

  • xsync 脚本
sudo vim /home/bin/xsync
#!/bin/bash#1. 判断参数个数if [ $# -lt 1 ]then    echo Not Enough Arguement!    exit;fi#2. 遍历集群所有机器for host in hadoop11 hadoop12 hadoop13do    echo ====================  $host  ====================    #3. 遍历所有目录,挨个发送    for file in $@    do        #4. 判断文件是否存在        if [ -e $file ]            then                #5. 获取父目录                pdir=$(cd -P $(dirname $file); pwd)                #6. 获取当前文件的名称                fname=$(basename $file)                ssh $host "mkdir -p $pdir"                rsync -av $pdir/$fname $host:$pdir            else                echo $file does not exists!        fi    donedone
  • 赋权

    【user】替换成你服务器用户名称

sudo chmod 777 xsync
cd /home/【user】/binsudo vim myhadoop.sh
#!/bin/bashif [ $# -lt 1 ]then    echo "No Args Input..."    exit ;ficase $1 in"start")        echo " =================== 启动 hadoop集群 ==================="        echo " --------------- 启动 hdfs ---------------"        ssh hadoop11 "/opt/module/hadoop-3.1.3/sbin/start-dfs.sh"        echo " --------------- 启动 yarn ---------------"        ssh hadoop12 "/opt/module/hadoop-3.1.3/sbin/start-yarn.sh"        echo " --------------- 启动 historyserver ---------------"        ssh hadoop11 "/opt/module/hadoop-3.1.3/bin/mapred --daemon start historyserver";;"stop")        echo " =================== 关闭 hadoop集群 ==================="        echo " --------------- 关闭 historyserver ---------------"        ssh hadoop11 "/opt/module/hadoop-3.1.3/bin/mapred --daemon stop historyserver"        echo " --------------- 关闭 yarn ---------------"        ssh hadoop12 "/opt/module/hadoop-3.1.3/sbin/stop-yarn.sh"        echo " --------------- 关闭 hdfs ---------------"        ssh hadoop11 "/opt/module/hadoop-3.1.3/sbin/stop-dfs.sh";;*)    echo "Input Args Error...";;esac
  • 给脚本赋权
sudo chmod +x myhadoop.sh

-设置查询hadoop脚本

sudo vim jpsall
#!/bin/bash

for host in hadoop11 hadoop12 hadoop13
do
        echo =============== $host ===============
        ssh $host jps 
done
sudo chmod 777 jpsall
  • 分发该脚本

    在分发xsync的时候,一定到bin目录下,避免同步.ssh文件🥸

    xsync /home/【user】/bin/*

done!&start!

使用linux【user】用户进行一下操作

  • 分别在三台服务器上初始化
hdfs namenode -format
  • 启停服务器
#启动服务器
myhadoop.sh start
#停止服务器
myhadoop.sh stop
#查看服务器
jpsall
#输出一下内容就OK了
=============== hadoop11 ===============
5379 JobHistoryServer
4915 DataNode
5204 NodeManager
4760 NameNode
5448 Jps
=============== hadoop12 ===============
7282 ResourceManager
7747 Jps
7592 NodeManager
7098 DataNode
=============== hadoop13 ===============
5040 NodeManager
5147 Jps
4843 DataNode
4956 SecondaryNameNode
  • hdfs常用命令

    例如

#创建文件夹hadoop fs -mkdir /input#将jdk移入inputhadoop fs -put /opt/software/jdk-8u212-linux-x64.tar.gz /input

常用端口

  • MapReduce查看执行任务端口 http://hadoop12:8088/cluster
  • NameNode HTTP UI http://hadoop11:9870/
  • 历史服务器通信端口 http://hadoop11:19888/jobhistory
  • NameNode内部通信端口8082

本文依据尚硅谷大数据Hadoop教程,hadoop3.x搭建到集群调优,百万播放内容整理,感谢感谢感谢海哥

本文来自网络,不代表协通编程立场,如若转载,请注明出处:https://www.net2asp.com/402cffbb37.html