栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

【一】Hadoop环境搭建

【一】Hadoop环境搭建

一、安装 1. 节点环境准备
  1. 准备相关软件及依赖

    yum install -y epel-release
    yum install -y psmisc nc net-tools rsync vim lrzsz ntp libzstd openssl-static tree iotop git
    
  2. 关闭防火墙及其开机自启

    systemctl stop firewalld
    systemctl disable firewalld
    
  3. 创建用户,并修改密码

    useradd atguigu
    passwd atgui
    
  4. 配置atguigu用户root权限:到vim /etc/sudoers文件下修改配置

    ## Allow root to run any commands anywhere
    root      ALL=(ALL)     ALL
    atguigu   ALL=(ALL)     NOPASSWD:ALL
    
  5. 在/opt目录下创建文件夹,修改所属主和组

    chown atguigu:atguigu /opt/module 
    chown atguigu:atguigu /opt/software
    
  6. 卸载自带的open JDK

    rpm -qa | grep -i java | xargs -n1 rpm -e --nodeps
    
  7. 重启

    reboot
    
2. 配置各节点
  1. 修改各节点静态IP:修改/etc/sysconfig/network-scripts/ifcfg-ens33配置

    保证Linux系统ifcfg-ens33文件中IP地址、虚拟网络编辑器地址和Windows系统VM8网络IP地址相同。

    DEVICE=ens33
    TYPE=Ethernet
    ONBOOT=yes
    BOOTPROTO=static
    NAME="ens33"
    IPADDR=192.168.1.102
    PREFIX=24
    GATEWAY=192.168.1.2
    DNS1=192.168.1.2
    
  2. 修改各节点主机名:修改/etc/hostname文件

    #直接修改里面的内容
    hadoop102
    
  3. 配置主机名映射hosts文件:/etc/hosts

    192.168.1.100 hadoop100
    192.168.1.101 hadoop101
    192.168.1.102 hadoop102
    192.168.1.103 hadoop103
    192.168.1.104 hadoop104
    192.168.1.105 hadoop105
    192.168.1.106 hadoop106
    192.168.1.107 hadoop107
    192.168.1.108 hadoop108
    
  4. 重启

    reboot
    
3. 安装JDK
  1. 卸载现有JDK

    rpm -qa | grep -i java | xargs -n1 sudo rpm -e --nodeps
    
  2. 将jdk1.8解压到指定路径

    tar -zxvf jdk-8u212-linux-x64.tar.gz -C /opt/module/
    
  3. 配置JDK环境变量:新建/etc/profile.d/my_env.sh文件,添加以下内容

    #!/bin/bash
    #JAVA_HOME
    export JAVA_HOME=/opt/module/jdk1.8.0_212
    export PATH=$PATH:$JAVA_HOME/bin
    

    生效配置文件

    source /etc/profile
    
  4. 测试是否安装成功

    java -version
    
4. 安装Hadoop
  1. 解压hadoop3.1.3到指定的路径下

    tar -zxvf hadoop-3.1.3.tar.gz -C /opt/module/
    
  2. 配置Hadoop环境变量:配置/etc/profile.d/my_env.sh文件,添加以下内容

    #HADOOP_HOME
    export HADOOP_HOME=/opt/module/hadoop-3.1.3
    export PATH=$PATH:$HADOOP_HOME/bin
    export PATH=$PATH:$HADOOP_HOME/sbin
    

    生效配置文件

    source /etc/profile
    
  3. 测试是否安装成功

    hadoop version
    
二、分布式配置 1. 分发脚本 1.1 scp安全拷贝

**secure copy:**可以实现服务器与服务器之间的数据拷贝。

基本语法:

#命令 递归  要拷贝的文件路径/名称 目的用户@主机:目的路径/名称
scp -r $pdir/$fname $user@hadoop$host:$pdir/$fname

举例

scp -r /opt/module/jdk1.8.0_212  atguigu@hadoop103:/opt/module
1.2 rsync远程同步工具

rsync主要用于备份和镜像。具有速度快、避免复制相同内容和支持符号链接的优点。

**rsync和scp区别:**用rsync做文件的复制要比scp的速度快,rsync只对差异文件做更新。scp是把所有文件都复制过去。

基本语法

#命令   选项参数   要拷贝的文件路径/名称    目的用户@主机:目的路径/名称
rsync    -av       $pdir/$fname              $user@hadoop$host:$pdir/$fname
-a	归档拷贝
-v	显示复制过程

举例

rsync -av /opt/software/* atguigu@hadoop103:/opt/software
1.3 集群分发脚本

my_rsync.sh

#!/bin/bash

# 1.若未输入参数
if [ $# -lt 1 ]
then
	echo "请输入要同步的路径或文件!"
	exit;
fi
# 2.遍历集群所有节点
for host in hadoop102 hadoop103 hadoop104
do
	# 3.遍历所有文件
	for file in $@
	do 
		# 4. 判断要发送的文件是否存在
		if [ -e $file ]
		then
			# 获取父目录绝对路径
			pdir=$(cd -p $(dirname $file); pwd)
			# 获取当前文件名称
			fname=$(basename $file)
			# 远程在其他节点上创建相同的路径
			ssh $host "mkdir -p $pdir"
			# 同步文件
			rsync -av $pdir/$fname $host:$pdir
		else
			echo "要同步的文件或路径不存在"
		fi
	done
done
2. 配置集群 2.1 SSH免密登录配置

原理

  1. 生成公钥和私钥

    [atguigu@hadoop102 .ssh]$ ssh-keygen -t rsa
    

    一直敲回车,会生成两个文件id_rsa(私钥)、id_rsa.pub(公钥)

  2. 将公钥拷贝到目标机器上

    [atguigu@hadoop102 .ssh]$ ssh-copy-id hadoop102
    [atguigu@hadoop102 .ssh]$ ssh-copy-id hadoop103
    [atguigu@hadoop102 .ssh]$ ssh-copy-id hadoop104
    
  3. 测试

    ssh hadoop103
    
2.2 分布式集群配置

集群部署规划注意

  1. NameNode和SecondaryNameNode不要安装在同一台服务器
  2. ResourceManager不要和NameNode、SecondaryNameNode配置在同一台机器上。

配置集群

Hadoop的配置文件都存放在其$HADOOP_HOME/etc/hadoop/路径下

  1. 配置核心core-site.xml

    
    
    
    
    	
        
            fs.defaultFS
            hdfs://hadoop102:9820
    
    
        
            hadoop.tmp.dir
            /opt/module/hadoop-3.1.3/data
    
    
    
        
            hadoop.http.staticuser.user
            atguigu
    
    
    
        
            hadoop.proxyuser.atguigu.hosts
            *
    
    
        
            hadoop.proxyuser.atguigu.groups
            *
    
    
        
            hadoop.proxyuser.atguigu.groups
            *
    
    
    
    
  2. 配置HDFS hdfs-site.xml

    
    
    
    
    	
    	
            dfs.namenode.http-address
            hadoop102:9870
        
    	
        
            dfs.namenode.secondary.http-address
            hadoop104:9868
        
    
    
  3. 配置Yarn yarn-site.xml

    
    
    
    
    	
        
            yarn.nodemanager.aux-services
            mapreduce_shuffle
    
    
        
            yarn.resourcemanager.hostname
            hadoop103
    
    
        
            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.scheduler.minimum-allocation-mb
            512
        
        
            yarn.scheduler.maximum-allocation-mb
            4096
    
    
        
            yarn.nodemanager.resource.memory-mb
            4096
    
    
        
            yarn.nodemanager.pmem-check-enabled
            false
        
        
            yarn.nodemanager.vmem-check-enabled
            false
        
    
    
  4. 配置MapReduce mapred-site.xml

    
    
    
    
    	
        
            mapreduce.framework.name
            yarn
        
    
    
  5. 将配置好的文件分发到其群上的其他节点

    my_rsync /opt/module/hadoop-3.1.3/etc/hadoop/
    
2.3 历史服务器和日志聚集配置

配置历史服务器

了查看程序的历史运行情况,需要配置一下历史服务器。

  1. 配置mapred-site.xml,添加以下内容

    
        mapreduce.jobhistory.address
        hadoop102:10020
    
    
    
    
        mapreduce.jobhistory.webapp.address
        hadoop102:19888
    
    

    分发配置

    my_rsync $HADOOP_HOME/etc/hadoop/mapred-site.xml
    
  2. 启动历史服务器

    mapred --daemon start historyserver
    
  3. 查看历史服务器:通过配置的端口

    http://hadoop102:19888/jobhistory

配置日志聚集

应用运行完成以后,会将程序运行日志信息上传到HDFS系统上,方便的查看到程序运行详情来开发调试。

  1. 配置 yarn-site.xml,添加以下内容

    
        yarn.log-aggregation-enable
        true
    
    
      
        yarn.log.server.url  
        http://hadoop102:19888/jobhistory/logs
    
    
    
        yarn.log-aggregation.retain-seconds
        604800
    
    
  2. 关闭NodeManager、ResourceManager(Yarn)和HistoryServer

    stop-yarn.sh
    mapred --daemon stop historyserver
    
  3. 启动NodeManager、ResourceManager(Yarn)和HistoryServer

    start-yarn.sh
    mapred --daemon start historyserver
    
  4. 查看日志:通过配置的端口

    http://hadoop102:19888/jobhistory

三、运行 1. 命令启停 1.1 第一次启动

集群第一次启动,则需要格式化NN;若集群运行过程报错需要格式化NN,则需要先停止NN和DN进程,然后删除data和logs目录再格式化。

  • 因为格式化NN会产生新的集群ID,若不删除原来文件,会导致新的NN和DN的集群ID不一样。
hdfs namenode -format
1.2 组件启停
  1. 分别启停HDFS组件

    hdfs --daemon start/stop namenode/datanode/secondarynamenode
    
  2. 分别启停Yarn组件

    yarn --daemon start/stop  resourcemanager/nodemanager
    
1.3 模块启停
  1. 整体启停HDFS组件

    start-dfs.sh/stop-dfs.sh
    
  2. 整体启停Yarn组件

    start-yarn.sh/stop-yarn.sh
    
2. 自定义启停脚本
#!/bin/bash
if [ $# -lt 1 ]
then
	echo "请输入操作命令!" 
	exit
fi

case $1 in
"start")
	echo " ====== 启动 hadoop集群 ======"
	echo " ------ 启动 hdfs ------"
	ssh hadoop102 "$HADOOP_HOME/sbin/start-dfs.sh"
	echo " ------ 启动 yarn ------"
	ssh hadoop103 "$HADOOP_HOME/sbin/start-yarn.sh"
	echo " ------ 启动 historyserver ------"
	ssh hadoop102 "$HADOOP_HOME/bin/mapred --daemon start historyserver"
;;
"stop")
	echo " ====== 关闭 hadoop集群 ======"
	echo " ------ 关闭 historyserver ------"
	ssh hadoop102 "$HADOOP_HOME/bin/mapred --daemon stop historyserver"
	echo " ------ 关闭 yarn ------"
	ssh hadoop103 "$HADOOP_HOME/sbin/stop-yarn.sh"
	echo " ------ 关闭 hdfs ------"
	ssh hadoop102 "$HADOOP_HOME/sbin/stop-dfs.sh"
;;
*)
	echo "输入参数错误!"
;;
esac
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/354907.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号