1. 集群规划:

  1. 192.168.1.252 palo252 Namenode+Datanode
  2. 192.168.1.253 palo253 YarnManager+Datanode+SecondaryNameNode
  3. 192.168.1.254 palo254 Datanode

2. 设定固定IP地址

  1. vi /etc/sysconfig/network-scripts/ifcfg-eth0
  1. TYPE=Ethernet
  2. BOOTPROTO=static
  3. DEFROUTE=yes
  4. NAME=eth0
  5. UUID=7ac09286-c35b-4f15-a9ba-701c093832bf
  6. DEVICE=eth0
  7. IPV4_FAILURE_FATAL=no
  8. IPV6INIT=yes
  9. IPV6_AUTOCONF=yes
  10. IPV6_DEFROUTE=yes
  11. IPV6_FAILURE_FATAL=no
  12. IPV6_ADDR_GEN_MODE=stable-privacy
  13. IPV6_PEERDNS=yes
  14. IPV6_PEERROUTES=yes
  15. IPV6_PRIVACY=no
  16. ONBOOT=yes
  17. DNS1=192.168.1.1
  18. IPADDR=192.168.1.252 #三台机器都要分别设置
  19. PREFIX=
  20. GATEWAY=192.168.1.1

3. 修改主机名:
192.168.1.252

  1. hostnamectl set-hostname palo252
  2. hostnamectl --static set-hostname palo252

192.168.1.253

  1. hostnamectl set-hostname palo253
  2. hostnamectl --static set-hostname palo253

192.168.1.254

  1. hostnamectl set-hostname palo254
  2. hostnamectl --static set-hostname palo254

4. 修改hosts文件

  1. vi /etc/hosts
  1. 127.0.0.1 localhost
  2. :: localhost
  3.  
  4. 192.168.1.252 palo252
  5. 192.168.1.253 palo253
  6. 192.168.1.254 palo254

5. 安装JDK(所有节点)
具体到oracle官网下载

6. SSH免密登录

Precondition: install ssh server if not avalible

  1. #install ssh client and ssh-server
  2. sudo yum install -y openssl openssh-server
  3. #enable ssh server to start at system start up
  4. systemctl enable sshd.service
  5. #start ssh server service
  6. systemctl start sshd.service

A) 每台机器生成访问秘钥,复制到192.168.1.252:/home/workspace目录下
192.168.1.252:

  1. ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
  2. cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
  3. cp ~/.ssh/authorized_keys /home/workspace/authorized_keys252
  4. rm -rf ~/.ssh/authorized_keys #删除公钥文件

192.168.1.253:

  1. ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
  2. cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
  3. scp ~/.ssh/authorized_keys 192.168.1.252:/home/workspace/authorized_keys253
  4. rm -rf ~/.ssh/authorized_keys #删除公钥文件

192.168.1.254:

  1. ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
  2. cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
  3. scp ~/.ssh/authorized_keys 192.168.1.252:/home/workspace/authorized_keys254
  4. rm -rf ~/.ssh/authorized_keys #删除公钥文件

B) 在192.168.1.252上将所有的公钥合并成一个公钥文件

  1. cat /home/workspace/authorized_keys252 >> /home/workspace/authorized_keys
  2. cat /home/workspace/authorized_keys253 >> /home/workspace/authorized_keys
  3. cat /home/workspace/authorized_keys254 >> /home/workspace/authorized_keys

C) 将合并后的公钥文件复制到集群中的各个主机中

  1. scp /home/workspace/authorized_keys 192.168.1.253:~/.ssh/
  2. scp /home/workspace/authorized_keys 192.168.1.254:~/.ssh/
  3. cp /home/workspace/authorized_keys ~/.ssh/ #因为目前在252主机中,所以使用的命令为cp而不是scp

注:也可以借助 ssh-copy-id -i ~/.ssh/id_rsa.pub  {ip or hostname}来往远程机器复制公钥

以本集群的配置为例,以上ABC三步的操作亦可以通过下面的操作来完成,操作方法如下:

192.168.1.252,192.168.1.253,192168.1.254 均做以下操作,就完成了私钥的生成,公钥的分发

  1. ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa #生成本机公钥和私钥
  2. ssh-copy-id -i ~/.ssh/id_rsa.pub palo252 #复制本机的公钥到palo252机器上,默认会存储在远程机器的~/.ssh/authorized_keys文件中,如果此文件不存在,会创建该文件
  3. ssh-copy-id -i ~/.ssh/id_rsa.pub palo253 #复制本机的公钥到palo252机器上,默认会存储在远程机器的~/.ssh/authorized_keys文件中,如果此文件不存在,会创建该文件
  4. ssh-copy-id -i ~/.ssh/id_rsa.pub palo254 #复制本机的公钥到palo252机器上,默认会存储在远程机器的~/.ssh/authorized_keys文件中,如果此文件不存在,会创建该文件

D) 每台机器:

  1. chmod ~ #当前用户根目录访问权限
  2. chmod ~/.ssh/ #.ssh目录权限
  3. chmod ~/.ssh/id_rsa #id_rsa的访问权限
  4. chmod ~/.ssh/id_rsa.pub #id_rsa.pub的访问权限
  5. chmod ~/.ssh/authorized_keys #authorized_keys的访问权限

说明:

如果ssh 登录的时候失败或者需要密码才能登陆,可以查看sshd的日志信息。日志信息目录为,/var/log/secure
你会发现如下字样的日志信息。
Jul 22 14:20:33 v138020.go sshd[4917]: Authentication refused: bad ownership or modes for directory /home/edw

则需要设置权限:sshd为了安全,对属主的目录和文件权限有所要求。如果权限不对,则ssh的免密码登陆不生效

用户目录权限为 755 或者 700,就是不能是77x。
.ssh目录权限一般为755或者700。
rsa_id.pub 及authorized_keys权限一般为644
rsa_id权限必须为600

可通过来查看ssh过程中的日志.

  1. cat /var/log/secure

7. 配置hadoop
7-1) 解压
下载地址:https://archive.apache.org/dist/hadoop/common/hadoop-2.7.3/hadoop-2.7.3.tar.gz

  1. tar xzvf hadoop-2.7..tar.gz -C /opt/

7-2) 创建存放数据的目录(必须事先创建好,否则会报错)

  1. mkdir -p /opt/hadoop-2.7./data/full/tmp/
  2. mkdir -p /opt/hadoop-2.7./data/full/tmp/dfs/name
  3. mkdir -p /opt/hadoop-2.7./data/full/tmp/dfs/data

7-3) 配置/opt/hadoop-2.7.3/etc/hadoop下面的配置文件

  1. cd opt/hadoop-2.7./etc/hadoop #定位到配置文件目录

7-3-1) core-site.xml

  1. <configuration>
  2. <!-- 指定HDFS中NameNode的地址 -->
  3. <property>
  4. <name>fs.defaultFS</name>
  5. <value>hdfs://127.0.0.1:9000</value>
  6. <description>hdfs://127.0.0.1:9000</description>
  7. </property>
  8. <!-- 指定hadoop运行时产生文件的存储目录 -->
  9. <property>
  10. <name>hadoop.tmp.dir</name>
  11. <value>/home/lenmom/workspace/software/hadoop-2.7.3/data/tmp</value>
  12. <description>是hadoop文件系统依赖的基础配置,很多路径都依赖它。如果hdfs-site.xml中不配 置namenode和datanode的存放位置,默认就放在这个路径中</description>
  13. </property>
  14. <!--启用 webhdfs-->
  15. <property>
  16. <name>dfs.webhdfs.enabled</name>
  17. <value>true</value>
  18. <description>启用 webhdfs</description>
  19. </property>
  20.  
  21. <!--use hadoop native library-->
  22. <property>
  23. <name>hadoop.native.lib</name>
  24. <value>true</value>
  25. <description>Should native hadoop libraries, if present, be used.</description>
  26. </property>
  27. </configuration>

7-3-2) yarn-site.xml

  1. <configuration>
  2. <property>
  3. <!-- reducer获取数据的方式 -->
  4. <name>yarn.nodemanager.aux-services</name>
  5. <value>mapreduce_shuffle</value>
  6. </property>
  7. <property>
  8. <!-- 指定YARN的ResourceManager的地址 -->
  9. <name>yarn.resourcemanager.hostname</name>
  10. <value>palo253</value>
  11. </property>
  12. <property>
  13. <name>yarn.resourcemanager.address</name>
  14. <value>palo253:8032</value>
  15. </property>
  16. <property>
  17. <name>yarn.resourcemanager.scheduler.address</name>
  18. <value>palo253:8030</value>
  19. </property>
  20. <property>
  21. <name>yarn.resourcemanager.resource-tracker.address</name>
  22. <value>palo253:8031</value>
  23. </property>
  24. <property>
  25. <name>yarn.nodemanager.resource.memory-mb</name>
  26. <value>10240</value>
  27. </property>
  28. <property>
  29. <name>yarn.scheduler.minimum-allocation-mb</name>
  30. <value>1024</value>
  31. </property>
  32. <property>
  33. <name>yarn.nodemanager.vmem-pmem-ratio</name>
  34. <value>2.1</value>
  35. </property>
  36. </configuration>

7-3-3) slaves

  1. palo252
  2. palo253
  3. palo254

7-3-4) mapred-site.xml

  1. <configuration>
  2. <!-- 指定mr运行在yarn上 -->
  3. <property>
  4. <name>mapreduce.framework.name</name>
  5. <value>yarn</value>
  6. </property>
  7. <property>
  8. <name>mapreduce.jobhistory.address</name>
  9. <value>palo252:</value>
  10. </property>
  11. <property>
  12. <name>mapreduce.jobhistory.webapp.address</name>
  13. <value>palo252:</value>
  14. </property>
  15. </configuration>

7-3-5) hdfs-site.xml

  1. <configuration>
  2. <property>
  3. <name>dfs.replication</name>
  4. <value>1</value>
  5. <description>不能大于datanode的数量,默认为3</description>
  6. </property>
  7. <!-- 设置secondname的端口 -->
  8. <property>
  9. <name>dfs.namenode.secondary.http-address</name>
  10. <value>palo253:50090</value>
  11. </property>
  12. <property>
  13. <name>dfs.data.dir</name>
  14. <value>file:/opt/hadoop-2.7.3/data/full/tmp/dfs/data</value>
  15. <description>用于确定将HDFS文件系统的数据保存在什么目录下,可以将这个参数设置为多个分区上目录,即可将HDFS建立在不同分区上。</description>
  16. </property>
  17. <property>
  18. <name>dfs.name.dir</name>
  19. <value>file:/opt/hadoop-2.7.3/data/full/tmp/dfs/name</value>
  20. <description>这个参数用于确定将HDFS文件系统的元信息保存在什么目录下,如果这个参数设置为多个目录,那么这些目录下都保存着元信息的多个备份.</description>
  21. </property>
  22.  
  23. <!--设置 hadoop的代理用户-->
  24. <property>
  25. <name>hadoop.proxyuser.hadoop.hosts</name>
  26. <value>*</value>
  27. <description>配置成*的意义,表示任意节点使用 hadoop 集群的代理用户hadoop 都能访问 hdfs 集群</description>
  28. </property>
  29. <property>
  30. <name>hadoop.proxyuser.hadoop.groups</name>
  31. <value>*</value>
  32. <description>代理用户所属的组</description>
  33. </property>
  34. </configuration>

7-3-6) hadoop-env.sh

配置JAVA_HOME

  1. # Licensed to the Apache Software Foundation (ASF) under one
  2. # or more contributor license agreements. See the NOTICE file
  3. # distributed with this work for additional information
  4. # regarding copyright ownership. The ASF licenses this file
  5. # to you under the Apache License, Version 2.0 (the
  6. # "License"); you may not use this file except in compliance
  7. # with the License. You may obtain a copy of the License at
  8. #
  9. # http://www.apache.org/licenses/LICENSE-2.0
  10. #
  11. # Unless required by applicable law or agreed to in writing, software
  12. # distributed under the License is distributed on an "AS IS" BASIS,
  13. # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  14. # See the License for the specific language governing permissions and
  15. # limitations under the License.
  16.  
  17. # Set Hadoop-specific environment variables here.
  18.  
  19. # The only required environment variable is JAVA_HOME. All others are
  20. # optional. When running a distributed configuration it is best to
  21. # set JAVA_HOME in this file, so that it is correctly defined on
  22. # remote nodes.
  23.  
  24. # The java implementation to use.
  25. #export JAVA_HOME=${JAVA_HOME}
  26. export JAVA_HOME=/usr/lib/jvm/java-1.8.-openjdk-1.8.0.181-.b13.el7_5.x86_64

8. 配置环境变量(每台机器都必须做)

  1. vi /etc/profile

在文件尾部添加:

  1. #####set jdk enviroment
  2. export JAVA_HOME=/usr/java/jdk1..0_172-amd64
  3. export JRE_HOME=$JAVA_HOME/jre
  4. export CLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
  5. export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
  6.  
  7. ##### set hadoop_home enviroment
  8. export HADOOP_HOME=/opt/hadoop-2.7.
  9. export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
  10. export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib"
  11. export HADOOP_CONF_DIR=${HADOOP_HOME}/etc/hadoop
  12. export YARN_HOME=/home/lenmom/workspace/software/hadoop-2.7.
  13. export YARN_CONF_DIR=${YARN_HOME}/etc/hadoop
  14. export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
  15. ###enable hadoop native library
  16. export LD_LIBRARY_PATH=$HADOOP_HOME/lib/native

命令行终端执行 source  /etc/profile,让配置的环境变量生效

  1. source /etc/profile ####make the env variable to take effect right now.

9. 启动:

NameNode:(master 252)
#格式化namenode

  1. hdfs namenode -format

#启动dfs 

  1. start-dfs.sh # (master )

#启动Yarn:  yarn节点(253)
#注意:Namenode和ResourceManger如果不是同一台机器,
#不能在NameNode上启动 yarn,
#应该在ResouceManager所在的机器上启动yarn。

  1. start-yarn.sh

#验证启动情况:
jps #查看java进程
http://namenode:50070/

10 Hadoop启动停止方式

  1. )各个服务组件逐一启动
  2. 分别启动hdfs组件: hadoop-daemon.sh start|stop namenode|datanode|secondarynamenode
  3. 启动yarn yarn-daemon.sh start|stop resourcemanager|nodemanager
  4.  
  5. )各个模块分开启动(配置ssh是前提)常用
  6. start|stop-dfs.sh start|stop-yarn.sh
  7.  
  8. )全部启动(不建议使用)
  9. start|stop-all.sh
  10.  
  11. 4) 开启historyserver(任意节点启动即可)
    mr-jobhistory-daemon.sh start|stop historyserver

reference:

1. https://www.cnblogs.com/baierfa/p/6689022.html

Hadoop 2.7.3 分布式集群安装的更多相关文章

  1. CentOS 6+Hadoop 2.6.0分布式集群安装

    1.角色分配 IP Role Hostname 192.168.18.37 Master/NameNode/JobTracker HDP1 192.168.18.35 Slave/DataNode/T ...

  2. hadoop学习之hadoop完全分布式集群安装

    注:本文的主要目的是为了记录自己的学习过程,也方便与大家做交流.转载请注明来自: http://blog.csdn.net/ab198604/article/details/8250461 要想深入的 ...

  3. (转)ZooKeeper伪分布式集群安装及使用

    转自:http://blog.fens.me/hadoop-zookeeper-intro/ 前言 ZooKeeper是Hadoop家族的一款高性能的分布式协作的产品.在单机中,系统协作大都是进程级的 ...

  4. 菜鸟玩云计算之十八:Hadoop 2.5.0 HA 集群安装第1章

    菜鸟玩云计算之十八:Hadoop 2.5.0 HA 集群安装第1章 cheungmine, 2014-10-25 0 引言 在生产环境上安装Hadoop高可用集群一直是一个需要极度耐心和体力的细致工作 ...

  5. HBase 1.2.6 完全分布式集群安装部署详细过程

    Apache HBase 是一个高可靠性.高性能.面向列.可伸缩的分布式存储系统,是NoSQL数据库,基于Google Bigtable思想的开源实现,可在廉价的PC Server上搭建大规模结构化存 ...

  6. ZooKeeper伪分布式集群安装及使用

    ZooKeeper伪分布式集群安装及使用 让Hadoop跑在云端系列文章,介绍了如何整合虚拟化和Hadoop,让Hadoop集群跑在VPS虚拟主机上,通过云向用户提供存储和计算的服务. 现在硬件越来越 ...

  7. 菜鸟玩云计算之十九:Hadoop 2.5.0 HA 集群安装第2章

    菜鸟玩云计算之十九:Hadoop 2.5.0 HA 集群安装第2章 cheungmine, 2014-10-26 在上一章中,我们准备好了计算机和软件.本章开始部署hadoop 高可用集群. 2 部署 ...

  8. 一张图讲解最少机器搭建FastDFS高可用分布式集群安装说明

     很幸运参与零售云快消平台的公有云搭建及孵化项目.零售云快消平台源于零售云家电3C平台私有项目,是与公司业务强耦合的.为了适用于全场景全品类平台,集团要求项目平台化,我们抢先并承担了此任务.并由我来主 ...

  9. Hadoop完全分布式集群安装

    转载请注明原地址,谢谢! 本文目的是教大家配置Hadoop的完全分布式的集群,除了完全分布式还有两种分别是单节点和伪分布式部署.伪分布式只需要一台虚拟机,配置的东西也相对较少,大多用作代码调试,大家稍 ...

随机推荐

  1. java并发编程之三--CyclicBarrier的使用

    CyclicBarrier 允许一组线程全部等待彼此达到共同屏障点的同步辅助. 循环阻塞在涉及固定大小的线程方的程序中很有用,这些线程必须偶尔等待彼此. 屏障被称为循环 ,因为它可以在等待的线程被释放 ...

  2. Python bool值

    a = 10 print(type(a)) #<class 'int'> d = str(a) #把数字转换成str print(type(d)) #<class 'str'> ...

  3. ES6 Generator 学习笔记一

    Generator 函数是 ES6 提供的一种异步编程解决方案,语法行为与传统函数完全不同. Generator 函数有多种理解角度.从语法上,首先可以把它理解成,Generator 函数是一个状态机 ...

  4. docker-compose工具

    环境:CentOS7.0 安装版本:1.3.2 参考资料:https://docs.docker.com/compose/install/ 安装方式: [root@Docker ~]#curl -L ...

  5. Python开源应用系统

    1.股票量化系统 https://github.com/moyuanz/DevilYuan 2.基于Echarts和Tushare的股票视觉化应用 https://github.com/Seedarc ...

  6. Heap Operations 优先队列

    Petya has recently learned data structure named "Binary heap". The heap he is now operatin ...

  7. grandstack 基于graphql&&react&& apollo&& neo4j 的全栈开发工具

    grandstack是一个基于graphql&&react&& apollo&& neo4j 的全栈开发工具. 有篇关于graphql 的5个常见问题的 ...

  8. php curl文件上传兼容php5.0~5.6各版本

    PHP 5.0~5.6 各版本兼容的cURL文件上传 最近做的一个需求,使用PHP cURL上传文件.踩坑若干,整理如下. 不同版本PHP之间cURL的区别 PHP的cURL支持通过给CURL_POS ...

  9. bzoj 2119 股市的预测——枚举长度的关键点+后缀数组

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=2119 就是找差分序列上中间差 m 的相等的两段. 考虑枚举这样一段的长度 L .可以把序列分 ...

  10. Maven 生成项目站点

    Maven 不仅仅时一个自动化构建工具和一个依赖管理工具,他还能够帮助聚合项目信息,促进团队间的交流,POM 可以包含各种项目信息,如项目描述.版本控制系统地址.缺陷跟踪系统地址.许可证信息.开发者信 ...