1. 一,环境

主节点一台: ubuntu desktop 16.04

zhoujun      172.16.12.1

从节点(slave)两台:ubuntu server 16.04

hadoop2      172.16.12.131

hadoop3      172.16.12.129

二, 搭建前准备

1, 为每台服务器配置 /etc/hosts

  1. sudo vim /etc/hosts

2,为每台机器 jdk 安装 ,具体的jdk类型大家可以根据自己的需求来选择,网上的方法也有很多

  1. sudo apt-get install openjdk-8-jre openjdk-8-jdk

3,为每台机器 安装 openssh-server ××

  1. sudo apt-get install openssh-server

安装好后 使用 ssh 登录下本机,这是会自动创建一个 ~/.ssh 的隐藏文件夹,其中放的是 ssh的相关密钥

  1. ssh localhost

然后在输入 exit 退出

  1. exit

4, 为每个台机器之间建立 ssh 的免密登录  ××

  1. cd ~/.ssh # 如果没有该目录,先执行一次ssh localhost
  2. rm ./id_rsa* # 删除之前生成的公匙(如果有)
  3. ssh-keygen -t rsa # 一直按回车就可以

让主节点能够免密登录在主节点

  1. cat ./id_rsa.pub >> ./authorized_keys

这里上图为zhoujun这台主机的免密登录成功, 其他两台,分别 执行 ssh hadoop2, 和 ssh hadoop3 都可以不用输入密码登录说明配置成功!

重点:   让主机能够免密登录到 hadoop2,和hadoop3

将zhoujun这台主机的公钥传到hadoop2,hadoop3的机器上

  1. scp ~/.ssh/id_rsa.pub zhoujun@hadoop2:/home/zhoujun/ # 将 zhoujun这台机器的公钥传到 hadoop2 , 注意 hadoop2主机的用户名为 zhoujun
  2. scp ~/.ssh/id_rsa.pub zhoujun@hadoop3:/home/zhoujun/
  1. # 将 zhoujun这台机器的公钥传到 hadoop3 , 注意 hadoop3主机的用户名也为 zhoujun,根据自己的情况设定
  1. # scp 是 secure copy 的简写,用于在 Linux 下进行远程拷贝文件,类似于 cp 命令,不过 cp 只能在本机中拷贝。
  1. # 执行 scp 时会要求输入 hadoop2 上 zhoujun 用户的密码,输入完成后会提示传输完毕,如下图所示:

关于scp的使用可以参考 scp 使用总结

然后在分别在 hadoop2,hdaoop3添加对应的公钥到 ssh的相关文件中

  1. mkdir ~/.ssh # 如果不存在该文件夹需先创建,若已存在则忽略
  2. cat ~/id_rsa.pub >> ~/.ssh/authorized_keys
  3. rm ~/id_rsa.pub # 用完就可以删掉了

使用 ssh hadoop2 命令不需要输入密码就能成功登录了,会出现类似上图的界面!

注意: 最后让master能够连接slave, 同时也能让slave 免密登录到master,配置类似,将slave节点的公钥传到其他的slave和master节点,

然后进行上诉步骤添加公钥到各个主机之中,即可

三, hadoop 安装

1,  下载hadoop的 安装包

hadoop 2.8.2

解压

  1. tar -zxvf hadoop-2.8.2.tar.gz

将解压后的hadoop 修改文件名 ,放入/opt文件夹下, 这里可以恶搞那句自己的设置

  1. sudo mv hadoop-2.8.2 /opt/hadoop/

进入到 /opt 文件夹下, 修改hadoop 文件夹的用户权限,这里我的用户名为 zhoujun, 请大家根据自己的用于名设置

  1. cd /opt/
  1.  sudo chown -R zhoujun ./hadoop/

2,  配置hadoop的配置文件  core-site.xml, hdfs-site.xml, mapred-site.cml, yarn-site.xml

vim   core-site.xml   # 注意是<configuration></configuration>中的内容

内容如下:

  1. <configuration>
  2. <property>
  3. <name>hadoop.tmp.dir</name>
  4. <value>file:/opt/hadoop/tmp</value>
  5. <description>Abase for other temporary directories.</description>
  6. </property>
  7. <property>
  8. <name>fs.defaultFS</name>
  9. <value>hdfs://zhoujun:9000</value>
  10. </property>
  11. </configuration>

vim hdfs-site.xml,

  1. <configuration>
  2. <property>
  3. <name>dfs.namenode.secondary.http-address</name>
  4. <value>zhoujun:50090</value>
  5. </property>
  6. <property>
  7. <name>dfs.namenode.datanode.registration.ip-hostname-check</name>
  8. <value>false</value>
  9. </property>
  10. <property>
  11. <name>dfs.replication</name>
  12. <value>3</value>
  13. </property>
  14. <property>
  15. <name>dfs.namenode.name.dir</name>
  16. <value>file:/opt/hadoop/tmp/dfs/name</value>
  17. </property>
  18. <property>
  19. <name>dfs.datanode.data.dir</name>
  20. <value>file:/opt/hadoop/tmp/dfs/data</value>
  21. </property>
  22. </configuration>

修改mapred-site.xml

  1. cp mapred-site.xml.template mapred-site.xml
  2. vim mapred-site.xml

内容如下:

  1. <configuration>
  2. <property>
  3. <name>mapreduce.framework.name</name>
  4. <value>yarn</value>
  5. </property>
  6. <property>
  7. <name>mapreduce.jobhistory.address</name>
  8. <value>zhoujun:10020</value>
  9. </property>
  10. <property>
  11. <name>mapreduce.jobhistory.webapp.address</name>
  12. <value>zhoujun:19888</value>
  13. </property>
  14. </configuration>

修改 yarn-site.xml

vim yarn-site.xml

内容如下:

  1. <configuration>
  2. <!-- Site specific YARN configuration properties -->
  3. <property>
  4. <name>yarn.resourcemanager.hostname</name>
  5. <value>zhoujun</value>
  6. </property>
  7. <property>
  8. <name>yarn.nodemanager.aux-services</name>
  9. <value>mapreduce_shuffle</value>
  10. </property>
  11. </configuration>

配置slaves 文件

  1. vim slaves

内容如下:

  1. 192.168.1.105
  2. 172.16.12.129
  3. 172.16.12.131

注意: 这里记得最好写 ip 地址,不要写主机名

3, 修改用户的 ~/.bashrc文件,注意这段内容每个节点都需要添加

  1. vim ~/,bashrc

在文件的头部添加:

  1. #Java
  2. export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
  3. #Hadoop
  4. export HADOOP_HOME=/opt/hadoop
  5. export HADOOP_INSTALL=$HADOOP_HOME
  6. export HADOOP_MAPRED_HOME=$HADOOP_HOME
  7. export HADOOP_COMMON_HOME=$HADOOP_HOME
  8. export HADOOP_HDFS_HOME=$HADOOP_HOME
  9. export YARN_HOME=$HADOOP_HOME
  10. export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
  11. export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin

  1. source ~/.bashrc # 让用户配置文件生效

4,  将配置到的hadoop文件传到对应的 hadoop2, hadoop3 节点

先压缩, 再上传

  1. cd /opt/ # 切换目录
  2. tar -zcf ./hadoop.tar.gz ./hadoop/ # 压缩文件

  1. scp hadoop.tar.gz zhoujun@hadoop2:
  2. scp hadoop.tar.gz zhoujun@hadoop3:

5, 然后分别进入hadoop2, hadoop3 节点,解压, 放入到 /opt 文件夹下,同时加入用户权限

  1. tar -zxvf hadoop.tar.gz # 解压
  1. sudo mv hadoop /opt/hadoop # 移动
  1. sudo chown -R zhoujun /opt/hadoop # 授予权限

同理对于hadoop3 执行第5步,

6, 格式化hdfs文件系统

  1. hdfs namenode -format

在这一步请确保hdfs-site.xml中用到的文件及文件夹不存在,如有,请删除再执行上面的命令!

好了,集群安装基本上完成了

四, 测试:

进入主节点服务器:zhoujun节点 利用start-all.sh 启动

在浏览器上访问:

五, 注意问题!

一定要注意各个主机的网络,一定要是同一个路由器下的,即同一个网段下的服务器,不然可能出现只有一个datanode的情况,或者没有datanode等的问题!

其次,保证ssh 能够正常通信,这个是前提

最后,大家在安装的时候一定要细心,多一个字母数字,可能让你找半天的错!

hadoop(集群)完全分布式环境搭建的更多相关文章

  1. 沉淀,再出发——在Hadoop集群的基础上搭建Spark

    在Hadoop集群的基础上搭建Spark 一.环境准备 在搭建Spark环境之前必须搭建Hadoop平台,尽管以前的一些博客上说在单机的环境下使用本地FS不用搭建Hadoop集群,可是在新版spark ...

  2. 3-3 Hadoop集群完全分布式配置部署

    Hadoop集群完全分布式配置部署 下面的部署步骤,除非说明是在哪个服务器上操作,否则默认为在所有服务器上都要操作.为了方便,使用root用户. 1.准备工作 1.1 centOS6服务器3台 手动指 ...

  3. hadoop 集群HA高可用搭建以及问题解决方案

    hadoop 集群HA高可用搭建 目录大纲 1. hadoop HA原理 2. hadoop HA特点 3. Zookeeper 配置 4. 安装Hadoop集群 5. Hadoop HA配置 搭建环 ...

  4. Hadoop学习笔记(3)——分布式环境搭建

    Hadoop学习笔记(3) ——分布式环境搭建 前面,我们已经在单机上把Hadoop运行起来了,但我们知道Hadoop支持分布式的,而它的优点就是在分布上突出的,所以我们得搭个环境模拟一下. 在这里, ...

  5. 大数据系列(3)——Hadoop集群完全分布式坏境搭建

    前言 上一篇我们讲解了Hadoop单节点的安装,并且已经通过VMware安装了一台CentOS 6.8的Linux系统,咱们本篇的目标就是要配置一个真正的完全分布式的Hadoop集群,闲言少叙,进入本 ...

  6. Hadoop集群完全分布式坏境搭建

    前言 上一篇我们讲解了Hadoop单节点的安装,并且已经通过VMware安装了一台CentOS 6.8的Linux系统,咱们本篇的目标就是要配置一个真正的完全分布式的Hadoop集群,闲言少叙,进入本 ...

  7. 使用Docker搭建Hadoop集群(伪分布式与完全分布式)

    之前用虚拟机搭建Hadoop集群(包括伪分布式和完全分布式:Hadoop之伪分布式安装),但是这样太消耗资源了,自学了Docker也来操练一把,用Docker来构建Hadoop集群,这里搭建的Hado ...

  8. 基于docker的spark-hadoop分布式集群之一: 环境搭建

    一.软件准备 1.基础docker镜像:ubuntu,目前最新的版本是18 2.需准备的环境软件包: (1) spark-2.3.0-bin-hadoop2.7.tgz (2) hadoop-2.7. ...

  9. Hadoop集群 -Eclipse开发环境设置

    1.Hadoop开发环境简介 1.1 Hadoop集群简介 Java版本:jdk-6u31-linux-i586.bin Linux系统:CentOS6.0 Hadoop版本:hadoop-1.0.0 ...

随机推荐

  1. Linux常用文件类别

    Linux下的文件可以分为5种不同的类型:普通文件.目录文件.链接文件.设备文件.与管道文件. 1.普通文件 它最常使用的一类文件,其特点是不包含有文件系统的结构信息.通常用户所接触到的文件,如图形文 ...

  2. spring boot 部署到tomcat

    网上很多文章描述过,当我按步骤做时会抛各种错误,最后记录下我的做法(成功发布到本地 Tomcat9 ): 1.将项目的启动类Application.java继承SpringBootServletIni ...

  3. 在.NET Core中使用Channel(一)

    我最近一直在熟悉.net Core中引入的新Channel<T>类型.我想在它第一次发布的时候我了解过它,但是有关文章非常非常少,我不能理解它们与其他队列有什么不同. 在使用了一段时间后, ...

  4. 解决黑群晖"抱歉,您所指定的页面不存在"-记一次黑群晖修复案例

    起因 搞了一个usb外接硬盘准备备份数,刚好看到群晖有个工具软件"USB Copy". 安装后设置拷贝docker文件夹,然后就悲剧了,nas主页抛出提示 一开始也是直接网上搜索标 ...

  5. python后端开发面试总结

    网络协议 通信计算机双方必须共同遵从的一组约定,只有遵守这个约定,计算机之间才能相互通信交流 TCP / IP TCP/IP(传输控制协议/网际协议)是指能够在多个不同网络间实现信息传输的协议簇.TC ...

  6. js--实现限制input输入框数字输入,实现每四位一个空格效果(银行卡号,手机号等)

    前言 工作学习中经常能遇到输入框限制输入数字,并且每四位一空格的情况,比如表单中银行卡号,手机号等输入框的限制,这里介绍一下使用js具体的实现方法.不需要引用第三方ui库. 正文 1.input标签的 ...

  7. 浅谈.NET技术公司的实习生培养

    浅谈.NET技术公司的实习生培养 背景 近几年.NET开发者市场的越发不景气,一毕业就选择.NET技术的开发者更是少之又少.一方面是公司效益的日益提高,一方面却是招聘优秀人才的速度总是赶不上公司发展的 ...

  8. Java 实现简单的 Socket 通信

    Java socket 封装了传输层的实现细节,开发人员可以基于 socket 实现应用层.本文介绍了 Java socket 简单用法. 1. 传输层协议 传输层包含了两种协议,分别是 TCP (T ...

  9. 【Redis3.0.x】配置文件

    Redis3.0.x 配置文件 概述 Redis 的配置文件位于Redis安装目录下,文件名为 redis.conf. 可以通过 CONFIG 命令查看或设置配置项. Redis 命令不区分大小写. ...

  10. PAT天梯赛练习 L3-004 肿瘤诊断 (30分) 三维BFS

    题目分析: 可能是我的理解能力比较差,在读题的时候一直以为所有的切片是可以排列组合的,并不是按照输入顺序就定死的,那么这题就变得十分的复杂啦~~~~~,查看的题解之后发现所有的切片并没有所谓的自由组合 ...