一,环境

主节点一台: 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

sudo vim /etc/hosts

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

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

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

 sudo apt-get install openssh-server

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

ssh localhost

然后在输入 exit 退出

exit

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

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

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

cat ./id_rsa.pub >> ./authorized_keys

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

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

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

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

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

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

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

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

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

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

三, hadoop 安装

1,  下载hadoop的 安装包

hadoop 2.8.2

解压

 tar -zxvf hadoop-2.8.2.tar.gz

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

sudo mv hadoop-2.8.2 /opt/hadoop/

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

cd /opt/
 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>中的内容

内容如下:

<configuration>
<property>
<name>hadoop.tmp.dir</name>
<value>file:/opt/hadoop/tmp</value>
<description>Abase for other temporary directories.</description>
</property>
<property>
<name>fs.defaultFS</name>
<value>hdfs://zhoujun:9000</value>
</property>
</configuration>

vim hdfs-site.xml,

<configuration>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>zhoujun:50090</value>
</property>
<property>
<name>dfs.namenode.datanode.registration.ip-hostname-check</name>
<value>false</value>
</property>
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/opt/hadoop/tmp/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/opt/hadoop/tmp/dfs/data</value>
</property>
</configuration>

修改mapred-site.xml

cp mapred-site.xml.template mapred-site.xml

vim mapred-site.xml

内容如下:

<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.jobhistory.address</name>
<value>zhoujun:10020</value>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>zhoujun:19888</value>
</property>
</configuration>

修改 yarn-site.xml

vim yarn-site.xml

内容如下:

<configuration>

<!-- Site specific YARN configuration properties -->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>zhoujun</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>

配置slaves 文件

vim slaves

内容如下:

192.168.1.105
172.16.12.129
172.16.12.131

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

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

vim ~/,bashrc

在文件的头部添加:

#Java
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64 #Hadoop
export HADOOP_HOME=/opt/hadoop
export HADOOP_INSTALL=$HADOOP_HOME
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export YARN_HOME=$HADOOP_HOME
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin

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

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

先压缩, 再上传

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

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

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

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

同理对于hadoop3 执行第5步,

6, 格式化hdfs文件系统

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. ReentrantLock显示锁

    public class AttemptLocking { /* * public AttemptLocking() { * * System.out.println("构造器初始化...& ...

  2. python安装库报错的处理方法

    在安装python map库时遇到了还多问题,找了好的方法都没有安装成功,最后改安装basemap库参考了了:https://www.jb51.net/article/147780.htm一文操作,最 ...

  3. Kubernetes官方java客户端之四:内部应用

    欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...

  4. 基础篇:JAVA原子组件和同步组件

    前言 在使用多线程并发编程的时,经常会遇到对共享变量修改操作.此时我们可以选择ConcurrentHashMap,ConcurrentLinkedQueue来进行安全地存储数据.但如果单单是涉及状态的 ...

  5. docker安装(yum方式)

    1. 更新现有的yum 包:sudo yum update 2.添加Docker源: 2.1首先创建docker.repo: touch /etc/yum.repos.d/docker.repo [d ...

  6. 杭电OJ2010---水仙花数(c++)(方法:输出几个数之间用空格隔开,最后一个数没有空格)

    水仙花数 Problem Description 春天是鲜花的季节,水仙花就是其中最迷人的代表,数学上有个水仙花数,他是这样定义的: "水仙花数"是指一个三位数,它的各位数字的立方 ...

  7. Head First 设计模式 —— 07. 适配器模式

    思考题 你能想到真实世界中,还有哪些适配器的例子? P236 HDMI 转 VGA 转换器 Type-C 转 3.5mm 线 适配器模式解析 客户使用适配器的过程: P241 客户通过目标接口调用适配 ...

  8. oracle 常用指令(持续更新中....)

    1. 查看所有表空间大小 select tablespace_name,sum(bytes)/1024/1024 from dba_data_files group by tablespace_nam ...

  9. leetcode1637-两点之间不包括任何点的最宽垂直面积

    题目 给你 n 个二维平面上的点 points ,其中 points[i] = [xi, yi] ,请你返回两点之间内部不包含任何点的 最宽垂直面积 的宽度. 垂直面积 的定义是固定宽度,而 y 轴上 ...

  10. Openstack Keystone 认证服务(四)

    Openstack Keystone 认证服务(四) keystone 的安装完全依赖ocata的源, 如果没有建议自己搭建. 否则用的源不对会产生各种奇葩问题. 创建keystone库和用户: ## ...