Always kee|

yyyne

园龄:8个月粉丝:1关注:0

hadoop虚拟机环境搭建


安装yum后:
见:https://www.bilibili.com/video/BV1MzeJemEJU/?spm_id_from=333.880.my_history.page.click
yum不行后

yum install -y epel-release
yum install -y psmisc nc net-tools rsync vim lrzsz ntp libzstd openssl-static tree iotop git

关防火墙:

systemctl stop firewalld
ystemctl disable firewalld

配置hosts:
vim /etc/hosts:
本机地址:
"C:\Windows\System32\drivers\etc\hosts"

新建用户atyan:
useradd atyan
passwd atyan

修改atyan权限:
vim /etc/sudoers
atyan ALL=(ALL) NOPASSWD:ALL

创建修改目录

cd /opt
mkdir module
mkdir software
chown atyan:atyan module/ softwate

2、 clone 101
修改
hostname和ip地址
vim /etc/hostname
vi /etc/sysconfig/network-scripts/ifcfg-ens33

下载hadoop jdk到 opt/software
解压到/opt/module/
tar -zxvf jdk-8u162-linux-x64.tar.gz -C /opt/module/
tar -zxvf hadoop-3.4.0.tar.gz -C ../module

修改环境变量
新建my_env.sh
vim /etc/profile.d/my_env.sh


运行模式:

本地模式:

** 完全分布式**
准备:

1、修改ip 主机名
2、将jdk和 hadoop分发各主机
scp -r ./* atyan@hadoop104:/opt/module
自动分发脚本:

#!/bin/bash

#
if [ $# -lt 1 ]
then
 echo "传入文件为空"
 exit
fi

#遍历集群中得机器分发内容
for host in hadoop103 hadoop104
do
 # 依次分发内容
 for file in $@
 do
   # 判断当前文件是否存在
   # 文件存在时
   if [ -e $file ]
    then
     #1. 获取当前文件的目录结构
     pdir=$(cd -P $(dirname $file);pwd)
     #2. 获取当前的文件名
     fname=$(basename $file)
     #3. 登陆目标服务器,创建统一的目录结构
     ssh $host "mkdir -p $pdir"
     # 4. 依次把要分发的文件或目录进行分发
     rsync -av $pdir/$fname $host:$pdir
    else
    # 文件不存在时
    echo "$file 不存在"
    exit
   fi
 done
done

完全分布式搭建

配置文件
core-site.xml

> <configuration>
>   <!--指定namenode的地址-->
>    <property>
> 	<name>fs.defaultFS</name>
>         <value>hdfs://hadoop102:9820</value>
>    </property>
>    <!--用来指定使用hadoop时产生文件的存放目录-->
>    <property>
>         <name>hadoop.tmp.dir</name>
>         <value>/opt/module/hadoop-3.4.0/data</value> 
>    </property>
>    <!-- 配置HDFS网站登录使用的静态用户为atyan -->
>    <property>
> 	<name>hadoop.http.staticuser.user</name>
>         <value>atyan</value> 
>    </property>
>    <!-- 配置该atyan(SuperUser)允许通过代理访问的主机节点 -->
>    <property>
>         <name>hadoop.proxyuser.atyan.hosts</name>
>         <value>*</value>
>    </property>
>    <!--配置该atyan(SuperUser)允许通过该代理的用户所属组-->
>    <property>
>         <name>hadoop.proxyuser.atyan.groups</name>
>         <value>*</value>
>    </property>
>    <!--配置该atyan(SuperUser)允许通过该代理的用户所属组-->
>    <property>
>         <name>hadoop.proxyuser.atyan.groups</name>
>         <value>*</value>
>    </property>
> </configuration> 
hdfs-site.xml
<configuration>
    <!--指定nn web访问地址-->
    <property>
             <name>dfs.namenode.http-address</name>
             <value>hadoop102:9870</value>
    </property>
    <!--指定2nn中 web访问地址-->
    <property>
             <name>dfs.namenode.secondary.http-address</name>
             <value>hadoop104:9868</value>
    </property>
</configuration>
yarn-site.xml配置文件
<!-- Site specific YARN configuration properties -->
        <!--nomenodeManager获取数据的方式是shuffle-->
        <property>
                <name>yarn.nodemanager.aux-services</name>
                <value>mapreduce_shuffle</value>
        </property>
       <!--指定Yarn的老大(ResourceManager)的地址-->     
    <property>
            <name>yarn.resourcemanager.hostname</name>
            <value>hadoop103</value>
    </property> 
    <!-- 环境变量的继承 -->
    <property>
    	<name>yarn.nodemanager.env-whitelist</name>
    	<value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP-CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME</value>
	</property>
    <!-- Yarn允许的最大最小内存 -->   
    
    <property>    
        <name>yarn.scheduler.minimum-allocation-mb</name> 
        <value>512</value>    
    </property>
    <property>    
        <name>yarn.scheduler.maximum-allocation-mb</name> 
        <value>4096</value>    
    </property>
    <!--  yarn允许管理的的内存大小 -->

    <property>    
        <name>yarn.scheduler.resource.memory-mb</name> 
        <value>4096</value>    
    </property>
    <!-- 关闭yarn对物理内存和虚拟内存的限制检查 -->
    <property>
        <name>yarn.nodemanager.pmem-check-enabled</name>
        <value>false</value>
    </property>
    <property>
        <name>yarn.nodemanager.vmem-check-enabled</name>
        <value>false</value>
    </property>
</configuration>

mapred

<configuration>
	<property>
		<name>mapreduce.framework.name</name>
		<value>yarn</value>
	</property>
</configuration>

分发文件
myrsync.sh ./*

启动集群

关闭集群

102 namenode
首先进行格式化
hdfs namenode -format
单点启动
hdfs --daemon start namenode
三台机器都启动datanode
hdfs --daemon start datanode
启动2nn(在104机器)
hdfs --daemon start secondarynamenode
103机器
yarn --daemon start resourcemanager

posted @   yyyne  阅读(24)  评论(1编辑  收藏  举报
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起