大数据集群(Hadoop生态)安装摆设

打印 上一主题 下一主题

主题 827|帖子 827|积分 2481

简介

1)Hadoop是一个由Apache基金会所开辟的分布式系统基础架构。 2)主要解决,海量数据的存储和海量数据的分析计算问题。
Hadoop HDFS 提供分布式海量数据存储本领
Hadoop YARN 提供分布式集群资源管理本领
Hadoop MapReduce 提供分布式海量数据计算本领


前置要求



  • 请确保完成了集群化环境前置准备章节的内容
  • 即:JDK、SSH免密、关闭防火墙、配置主机名映射等前置操作

Hadoop集群脚色

Hadoop生态体系中统共会出现如下进程脚色:

  • Hadoop HDFS的管理脚色:Namenode进程(仅需1个即可(管理者一个就够))
  • Hadoop HDFS的工作脚色:Datanode进程(必要多个(工人,越多越好,一个机器启动一个))
  • Hadoop YARN的管理脚色:ResourceManager进程(仅需1个即可(管理者一个就够))
  • Hadoop YARN的工作脚色:NodeManager进程(必要多个(工人,越多越好,一个机器启动一个))
  • Hadoop 汗青记录服务器脚色:HistoryServer进程(仅需1个即可(功能进程无需太多1个充足))
  • Hadoop 署理服务器脚色:WebProxyServer进程(仅需1个即可(功能进程无需太多1个充足))
  • Zookeeper的进程:QuorumPeerMain进程(仅需1个即可(Zookeeper的工作者,越多越好))


脚色和节点分配


脚色分配如下:

  • node1:Namenode、Datanode、ResourceManager、NodeManager、HistoryServer、WebProxyServer、QuorumPeerMain
  • node2atanode、NodeManager、QuorumPeerMain
  • node3atanode、NodeManager、QuorumPeerMain



安装

调整假造机内存

如上图,可以看出node1承载了太多的压力。同时node2和node3也同时运行了不少步伐
为了确保集群的稳定,必要对假造机进行内存设置。

请在VMware中,对:

  • node1设置4GB或以上内存
  • node2和node3设置2GB或以上内存

   大数据的软件本身就是集群化(一堆服务器)一起运行的。
  现在我们在一台电脑中以多台假造机来模仿集群,确实会有很大的内存压力哦。
  
Zookeeper集群摆设



Hadoop集群摆设


  • 下载Hadoop安装包、解压、配置软链接
    1. # 1. 下载
    2. wget http://archive.apache.org/dist/hadoop/common/hadoop-3.3.0/hadoop-3.3.0.tar.gz
    3. # 2. 解压
    4. # 请确保目录/export/server存在
    5. tar -zxvf hadoop-3.3.0.tar.gz -C /export/server/
    6. # 3. 构建软链接
    7. ln -s /export/server/hadoop-3.3.0 /export/server/hadoop
    复制代码
  • 修改配置文件:hadoop-env.sh
           Hadoop的配置文件要修改的地方很多,请仔细
        cd 进入到/export/server/hadoop/etc/hadoop,文件夹中,配置文件都在这里
    修改hadoop-env.sh文件
           此文件是配置一些Hadoop用到的环境变量
        这些是暂时变量,在Hadoop运行时有用
        如果要永久见效,必要写到/etc/profile中
       
    1. # 在文件开头加入:
    2. # 配置Java安装路径
    3. export JAVA_HOME=/export/server/jdk
    4. # 配置Hadoop安装路径
    5. export HADOOP_HOME=/export/server/hadoop
    6. # Hadoop hdfs配置文件路径
    7. export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
    8. # Hadoop YARN配置文件路径
    9. export YARN_CONF_DIR=$HADOOP_HOME/etc/hadoop
    10. # Hadoop YARN 日志文件夹
    11. export YARN_LOG_DIR=$HADOOP_HOME/logs/yarn
    12. # Hadoop hdfs 日志文件夹
    13. export HADOOP_LOG_DIR=$HADOOP_HOME/logs/hdfs
    14. # Hadoop的使用启动用户配置
    15. export HDFS_NAMENODE_USER=root
    16. export HDFS_DATANODE_USER=root
    17. export HDFS_SECONDARYNAMENODE_USER=root
    18. export YARN_RESOURCEMANAGER_USER=root
    19. export YARN_NODEMANAGER_USER=root
    20. export YARN_PROXYSERVER_USER=root
    复制代码
  • 修改配置文件:core-site.xml
    如下,清空文件,填入如下内容
    1. <?xml version="1.0" encoding="UTF-8"?>
    2. <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
    3. <!--
    4.  Licensed under the Apache License, Version 2.0 (the "License");
    5.  you may not use this file except in compliance with the License.
    6.  You may obtain a copy of the License at
    7.    http://www.apache.org/licenses/LICENSE-2.0
    8.  Unless required by applicable law or agreed to in writing, software
    9.  distributed under the License is distributed on an "AS IS" BASIS,
    10.  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    11.  See the License for the specific language governing permissions and
    12.  limitations under the License. See accompanying LICENSE file.
    13. -->
    14. <!-- Put site-specific property overrides in this file. -->
    15. <configuration>
    16.  <property>
    17.    <name>fs.defaultFS</name>
    18.    <value>hdfs://node1:8020</value>
    19.    <description></description>
    20.  </property>
    21.  <property>
    22.    <name>io.file.buffer.size</name>
    23.    <value>131072</value>
    24.    <description></description>
    25.  </property>
    26. </configuration>
    复制代码
  • 配置:hdfs-site.xml文件
    1. <?xml version="1.0" encoding="UTF-8"?>
    2. <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
    3. <!--
    4.  Licensed under the Apache License, Version 2.0 (the "License");
    5.  you may not use this file except in compliance with the License.
    6.  You may obtain a copy of the License at
    7.    http://www.apache.org/licenses/LICENSE-2.0
    8.  Unless required by applicable law or agreed to in writing, software
    9.  distributed under the License is distributed on an "AS IS" BASIS,
    10.  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    11.  See the License for the specific language governing permissions and
    12.  limitations under the License. See accompanying LICENSE file.
    13. -->
    14. <!-- Put site-specific property overrides in this file. -->
    15. <configuration>
    16.    <property>
    17.        <name>dfs.datanode.data.dir.perm</name>
    18.        <value>700</value>
    19.    </property>
    20.  <property>
    21.    <name>dfs.namenode.name.dir</name>
    22.    <value>/data/nn</value>
    23.    <description>Path on the local filesystem where the NameNode stores the namespace and transactions logs persistently.</description>
    24.  </property>
    25.  <property>
    26.    <name>dfs.namenode.hosts</name>
    27.    <value>node1,node2,node3</value>
    28.    <description>List of permitted DataNodes.</description>
    29.  </property>
    30.  <property>
    31.    <name>dfs.blocksize</name>
    32.    <value>268435456</value>
    33.    <description></description>
    34.  </property>
    35.  <property>
    36.    <name>dfs.namenode.handler.count</name>
    37.    <value>100</value>
    38.    <description></description>
    39.  </property>
    40.  <property>
    41.    <name>dfs.datanode.data.dir</name>
    42.    <value>/data/dn</value>
    43.  </property>
    44. </configuration>
    复制代码
  • 配置:mapred-env.sh文件
    1. # 在文件的开头加入如下环境变量设置
    2. export JAVA_HOME=/export/server/jdk
    3. export HADOOP_JOB_HISTORYSERVER_HEAPSIZE=1000
    4. export HADOOP_MAPRED_ROOT_LOGGER=INFO,RFA
    复制代码
  • 配置:mapred-site.xml文件
    1. <?xml version="1.0"?>
    2. <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
    3. <!--
    4.  Licensed under the Apache License, Version 2.0 (the "License");
    5.  you may not use this file except in compliance with the License.
    6.  You may obtain a copy of the License at
    7.    http://www.apache.org/licenses/LICENSE-2.0
    8.  Unless required by applicable law or agreed to in writing, software
    9.  distributed under the License is distributed on an "AS IS" BASIS,
    10.  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    11.  See the License for the specific language governing permissions and
    12.  limitations under the License. See accompanying LICENSE file.
    13. -->
    14. <!-- Put site-specific property overrides in this file. -->
    15. <configuration>
    16.  <property>
    17.    <name>mapreduce.framework.name</name>
    18.    <value>yarn</value>
    19.    <description></description>
    20.  </property>
    21.  <property>
    22.    <name>mapreduce.jobhistory.address</name>
    23.    <value>node1:10020</value>
    24.    <description></description>
    25.  </property>
    26.  <property>
    27.    <name>mapreduce.jobhistory.webapp.address</name>
    28.    <value>node1:19888</value>
    29.    <description></description>
    30.  </property>
    31.  <property>
    32.    <name>mapreduce.jobhistory.intermediate-done-dir</name>
    33.    <value>/data/mr-history/tmp</value>
    34.    <description></description>
    35.  </property>
    36.  <property>
    37.    <name>mapreduce.jobhistory.done-dir</name>
    38.    <value>/data/mr-history/done</value>
    39.    <description></description>
    40.  </property>
    41. <property>
    42.  <name>yarn.app.mapreduce.am.env</name>
    43.  <value>HADOOP_MAPRED_HOME=$HADOOP_HOME</value>
    44. </property>
    45. <property>
    46.  <name>mapreduce.map.env</name>
    47.  <value>HADOOP_MAPRED_HOME=$HADOOP_HOME</value>
    48. </property>
    49. <property>
    50.  <name>mapreduce.reduce.env</name>
    51.  <value>HADOOP_MAPRED_HOME=$HADOOP_HOME</value>
    52. </property>
    53. </configuration>
    复制代码
  • 配置:yarn-env.sh文件
    1. # 在文件的开头加入如下环境变量设置
    2. export JAVA_HOME=/export/server/jdk
    3. export HADOOP_HOME=/export/server/hadoop
    4. export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
    5. export YARN_CONF_DIR=$HADOOP_HOME/etc/hadoop
    6. export YARN_LOG_DIR=$HADOOP_HOME/logs/yarn
    7. export HADOOP_LOG_DIR=$HADOOP_HOME/logs/hdfs
    复制代码
  • 配置:yarn-site.xml文件
    1. <?xml version="1.0"?>
    2. <!--
    3.  Licensed under the Apache License, Version 2.0 (the "License");
    4.  you may not use this file except in compliance with the License.
    5.  You may obtain a copy of the License at
    6.    http://www.apache.org/licenses/LICENSE-2.0
    7.  Unless required by applicable law or agreed to in writing, software
    8.  distributed under the License is distributed on an "AS IS" BASIS,
    9.  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    10.  See the License for the specific language governing permissions and
    11.  limitations under the License. See accompanying LICENSE file.
    12. -->
    13. <configuration>
    14. <!-- Site specific YARN configuration properties -->
    15. <property>
    16.    <name>yarn.log.server.url</name>
    17.    <value>http://node1:19888/jobhistory/logs</value>
    18.    <description></description>
    19. </property>
    20.  <property>
    21.    <name>yarn.web-proxy.address</name>
    22.    <value>node1:8089</value>
    23.    <description>proxy server hostname and port</description>
    24.  </property>
    25.  <property>
    26.    <name>yarn.log-aggregation-enable</name>
    27.    <value>true</value>
    28.    <description>Configuration to enable or disable log aggregation</description>
    29.  </property>
    30.  <property>
    31.    <name>yarn.nodemanager.remote-app-log-dir</name>
    32.    <value>/tmp/logs</value>
    33.    <description>Configuration to enable or disable log aggregation</description>
    34.  </property>
    35. <!-- Site specific YARN configuration properties -->
    36.  <property>
    37.    <name>yarn.resourcemanager.hostname</name>
    38.    <value>node1</value>
    39.    <description></description>
    40.  </property>
    41.  <property>
    42.    <name>yarn.resourcemanager.scheduler.class</name>
    43.    <value>org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.FairScheduler</value>
    44.    <description></description>
    45.  </property>
    46.  <property>
    47.    <name>yarn.nodemanager.local-dirs</name>
    48.    <value>/data/nm-local</value>
    49.    <description>Comma-separated list of paths on the local filesystem where intermediate data is written.</description>
    50.  </property>
    51.  <property>
    52.    <name>yarn.nodemanager.log-dirs</name>
    53.    <value>/data/nm-log</value>
    54.    <description>Comma-separated list of paths on the local filesystem where logs are written.</description>
    55.  </property>
    56.  <property>
    57.    <name>yarn.nodemanager.log.retain-seconds</name>
    58.    <value>10800</value>
    59.    <description>Default time (in seconds) to retain log files on the NodeManager Only applicable if log-aggregation is disabled.</description>
    60.  </property>
    61.  <property>
    62.    <name>yarn.nodemanager.aux-services</name>
    63.    <value>mapreduce_shuffle</value>
    64.    <description>Shuffle service that needs to be set for Map Reduce applications.</description>
    65.  </property>
    66. </configuration>
    复制代码
  • 修改workers文件
    1. # 全部内容如下
    2. node1
    3. node2
    4. node3
    复制代码
  • 分发hadoop到别的机器
  1. # 在node1执行
  2. cd /export/server
  3. scp -r hadoop-3.3.0 node2:`pwd`/
  4. scp -r hadoop-3.3.0 node2:`pwd`/
复制代码

  • 在node2、node3实行
    1. # 创建软链接
    2. ln -s /export/server/hadoop-3.3.0 /export/server/hadoop
    复制代码
  • 创建所需目录

    • 在node1实行:
      1. mkdir -p /data/nn
      2. mkdir -p /data/dn
      3. mkdir -p /data/nm-log
      4. mkdir -p /data/nm-local
      复制代码
    • 在node2实行:
      1. mkdir -p /data/dn
      2. mkdir -p /data/nm-log
      3. mkdir -p /data/nm-local
      复制代码
    • 在node3实行:
      1. mkdir -p /data/dn
      2. mkdir -p /data/nm-log
      3. mkdir -p /data/nm-local
      复制代码

  • 配置环境变量
    在node1、node2、node3修改/etc/profile
    1. export HADOOP_HOME=/export/server/hadoop
    2. export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
    复制代码
    实行source /etc/profile见效
  • 格式化NameNode,在node1实行
    1. hadoop namenode -format
    复制代码
          hadoop这个命令来自于:$HADOOP_HOME/bin中的步伐
        由于配置了环境变量PATH,以是可以在任意位置实行hadoop命令哦
  • 启动hadoop的hdfs集群,在node1实行即可
    1. start-dfs.sh
    2. # 如需停止可以执行
    3. stop-dfs.sh
    复制代码
          start-dfs.sh这个命令来自于:$HADOOP_HOME/sbin中的步伐
        由于配置了环境变量PATH,以是可以在任意位置实行start-dfs.sh命令哦
  • 启动hadoop的yarn集群,在node1实行即可
    1. start-yarn.sh
    2. # 如需停止可以执行
    3. stop-yarn.sh
    复制代码
  • 启动汗青服务器
    1. mapred --daemon start historyserver
    2. # 如需停止将start更换为stop
    复制代码
  • 启动web署理服务器
    1. yarn-daemon.sh start proxyserver
    2. # 如需停止将start更换为stop
    复制代码

验证Hadoop集群运行环境


  • 在node1、node2、node3上通过jps验证进程是否都启动乐成
  • 验证HDFS,浏览器打开:http://node1:9870
    创建文件test.txt,随意填入内容,并实行:
    1. hadoop fs -put test.txt /test.txt
    2. hadoop fs -cat /test.txt
    复制代码
  • 验证YARN,浏览器打开:http://node1:8088
    实行:
    1. # 创建文件words.txt,填入如下内容
    2. itheima itcast hadoop
    3. itheima hadoop hadoop
    4. itheima itcast
    5. # 将文件上传到HDFS中
    6. hadoop fs -put words.txt /words.txt
    7. # 执行如下命令验证YARN是否正常
    8. hadoop jar /export/server/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.0.jar wordcount -Dmapred.job.queue.name=root.root /words.txt /output
    复制代码

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

写过一篇

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表