Hadoop 总结 四 配置集群

Hadoop 总结 四 配置集群

分析:

至少需要三台虚拟机(主机)(关闭防火墙,静态IP,主机名称)

需要安装好JDK,Hadoop,以及环境变量的配置

需要配置好集群

需要单点启动

需要节点间ssh配置

启动并测试集群

  1. 虚拟机准备

见前两章,并将hadoop103,hadoop104进行同样的配置

  1. 编写集群分发脚本

    #scp 安全拷贝 方式
    #语法:scp -r $pdir/$fname $user@hadoop$host:$pdir/$fname
    #例:在Hadoop102上将jdk和hadoop的安装文件直接拷贝到hadoop103上
    scp -r /opt/module test@hadoop103:/opt/module
    #例:在hadoop103上将hadoop102节点上的安装文件拷贝到hadoop103上
    scp -r test@hadoop102:/opt/module /opt/module
    #例:在hadoop103上将hadoop102的文件拷贝到hadoop104上
    scp -r test@hadoop102:/opt/module/* test@hadoop104:/opt/module
    
    #rsync 远程同步工具
    #与scp的区别:rsyn复制文件速度比scp速度快,rsync只对差异的文件做复制覆盖,scp是把所有的文件统统复制过去重名的文件不管是否相同都会直接进行覆盖
    #语法:rsync -av $pdir/$fname  $user@hadoop$host:$pdir/$fname
    #举个栗子:
    rsync -av /opt/module test@hadoop103:/opt/module
    

    群发脚本的分析

    1.需要把文件及子目录全部进行复制

    2.复制到目标主机需要在相同的目录下,如果不存在目录则创建相同的目录

    3.如果有重复的文件则不进行覆盖,只对有更新或者差异的文件进行更新

    4.希望test用户能在系统任何位置直接执行该脚本

    脚本下载地址:

    需要修改的内容:

image-20200728184549555.png

将hadoop102-104更换为自己集群的主机名,有几个填几个,以空格分隔

其他:

1.将脚本放在家目录的bin文件夹下,如果没有bin文件夹则自己创建bin文件夹

cd ~

mkdir bin

2.将脚本命名,并赋予脚本可执行权限,以xsync为例

chmod +x xsync

3.将脚本复制到bin文件夹下,以便全局调用

sudo cp xsync /bin

4.测试脚本

xsync /home/test/bin

sudo xsync /home/test/bin

  1. 配置集群间ssh无密码登录
#基本语法:ssh ip或者ssh 在hosts中配置过过得主机映射名 ssh hadoop103
#1.ssh hadoop103 需要输入两次密码 所以在集群间配置ssh互相免密登录
#生成公钥和私钥
ssh -keygen -t rsa 
#然后一直按回车键,进行确认
#将公钥拷贝到需要免密登录的主机(节点)上
ssh-copy-id hadoop102
ssh-copy-id hadoop103
ssh-copy-id hadoop104
...

注意:

需要在hadoop103上采用test账号配置一下无密登录到hadoop102、hadoop103、hadoop104服务器上。

需要在hadoop104上采用test账号配置一下无密登录到hadoop102、hadoop103、hadoop104服务器上。

需要在hadoop102上采用root账号,配置一下无密登录到hadoop102、hadoop103、hadoop104

ssh免密登录的原理


image-20200728191250860.png
  1. 集群规划部署

    NameNode和secondaryNameNode不要安装在同一台服务器上
    resourceManager也很占用资源,不要和上面两个配置在同一台服务器上
    

    集群部署设计

    hadoop102 hadoop103 hadoop104
    HDFS NameNode SecondaryNameNode
    HDFS DataNode DataNode DataNode
    YARN NodeManager NodeManager NodeManager
    YARN ResourceManager

    1.由于内存16G只能支持这么多的虚拟机,所以只在三台虚拟机上进行配置

    2.根据上面表格中的部署设计,去配置文件

    3.hadoop中有默认的配置文件,也提供了可以自定义的配置文件,建议在自定义文件中进行配置集群,默认的配置文件不要修改

    4.在hadoop目录下etc/hadoop/中有core-site.xml、hdfs-site.xml、yarn-site.xml、mapred-site.xml

image-20200728192818753.png
  1. hadoop3.x常用端口说明
Daemon App Hadoop2 Hadoop3
NameNode Port Hadoop HDFS NameNode 8020 / 9000 9820
Hadoop HDFS NameNode HTTP UI 50070 9870
Secondary NameNode Port Secondary NameNode 50091 9869
Secondary NameNode HTTP UI 50090 9868
DataNode Port Hadoop HDFS DataNode IPC 50020 9867
Hadoop HDFS DataNode 50010 9866
Hadoop HDFS DataNode HTTP UI 50075 9864
  1. 配置文件

    ​ cd $HADOOP_HOME/etc/hadoop

    如果集群机器不止三台 那么需要根据具体的部署设计进行修改以下的配置文件

    1. 核心文件 core-site.xml

      <?xml version="1.0" encoding="UTF-8"?>
      <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
      
      <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.1.3/data</value>
      </property>
      
      <!-- 配置HDFS网页登录使用的静态用户为atguigu -->
          <property>
              <name>hadoop.http.staticuser.user</name>
              <value>atguigu</value>
      </property>
      
      <!-- 配置该atguigu(superUser)允许通过代理访问的主机节点 -->
          <property>
              <name>hadoop.proxyuser.atguigu.hosts</name>
              <value>*</value>
      </property>
      <!-- 配置该atguigu(superUser)允许通过代理用户所属组 -->
          <property>
              <name>hadoop.proxyuser.atguigu.groups</name>
              <value>*</value>
      </property>
      <!-- 配置该atguigu(superUser)允许通过代理的用户-->
          <property>
              <name>hadoop.proxyuser.atguigu.groups</name>
              <value>*</value>
      </property>
      </configuration>
      
    2. HDFS文件配置 hdfs-site.xml

      <?xml version="1.0" encoding="UTF-8"?>
      <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
      
      <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>
      
    3. YARN配置文件 yarn-site.xml

      <?xml version="1.0" encoding="UTF-8"?>
      <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
      
      <configuration>
        <!-- 指定MR走shuffle -->
          <property>
              <name>yarn.nodemanager.aux-services</name>
              <value>mapreduce_shuffle</value>
      </property>
      <!-- 指定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.nodemanager.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>
      
    4. MapReduce配置文件 mapred-site.xml

      <?xml version="1.0" encoding="UTF-8"?>
      <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
      
      <configuration>
        <!-- 指定MapReduce程序运行在Yarn上 -->
          <property>
              <name>mapreduce.framework.name</name>
              <value>yarn</value>
          </property>
      </configuration>
      
  2. 分发配置文件到集群其他两台机器

    xsync $HADOOP_HOME/etc/hadoop/
    #进入hadoop103 hadoop104检查分发的配置文件文件是否成功
    
  3. 配置work

    vim $HADOOP_HOME/etc/hadoop/workers
    #在文件中增加以下内容,不能包含多余的空格,空行
    hadoop102
    hadoop103
    hadoop104
    
  4. 同步所有节点

    xsync $HADOOP_HOME/etc/
    
  5. 启动集群

    第一次启动集群: 需要在NameNode节点上格式化NameNode hdfs namenode -format

    如果需要重新进行格式化NameNode: 1.先停止NameNode和DataNode进程,2.删除所有机器的data和logs目录再进行格式化

    #格式化
    hdfs namenode -format
    #启动HDFS
    $HADOOP_HOME/sbin/start-dfs.sh
    #在配置resourceManager (hadoop103) 启动YARN
    $HADOOP_HOME/sbin/start-yarn.sh
    

    在web端查看HDFS的NameNode

    浏览器中输入hadoop102:9870,查看HDFS文件数据信息

image-20200728194922593.png
在web端查看YARN的resourceManeger

浏览器中输入hadoop103:8088,查看YARN的job
image-20200728195002678.png
  1. 集群的基本测试

    #上传文件
    hadoop fs -mkdir /input
    hadoop fs -put ...(文件路径/文件名)
    
  2. 启动或者停止 (常用)

    1. 整体启动/停止hdfs

      start-dfs.sh/stop-dfs.sh

    2. 整体启动停止YARN

      start-yarn.sh/stop-yarn.sh

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 205,132评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,802评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,566评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,858评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,867评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,695评论 1 282
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,064评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,705评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,915评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,677评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,796评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,432评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,041评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,992评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,223评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,185评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,535评论 2 343