hadoop(集群)完全分布式环境搭建
一,环境
主节点一台: 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的 安装包
解压
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(集群)完全分布式环境搭建的更多相关文章
- 沉淀,再出发——在Hadoop集群的基础上搭建Spark
在Hadoop集群的基础上搭建Spark 一.环境准备 在搭建Spark环境之前必须搭建Hadoop平台,尽管以前的一些博客上说在单机的环境下使用本地FS不用搭建Hadoop集群,可是在新版spark ...
- 3-3 Hadoop集群完全分布式配置部署
Hadoop集群完全分布式配置部署 下面的部署步骤,除非说明是在哪个服务器上操作,否则默认为在所有服务器上都要操作.为了方便,使用root用户. 1.准备工作 1.1 centOS6服务器3台 手动指 ...
- hadoop 集群HA高可用搭建以及问题解决方案
hadoop 集群HA高可用搭建 目录大纲 1. hadoop HA原理 2. hadoop HA特点 3. Zookeeper 配置 4. 安装Hadoop集群 5. Hadoop HA配置 搭建环 ...
- Hadoop学习笔记(3)——分布式环境搭建
Hadoop学习笔记(3) ——分布式环境搭建 前面,我们已经在单机上把Hadoop运行起来了,但我们知道Hadoop支持分布式的,而它的优点就是在分布上突出的,所以我们得搭个环境模拟一下. 在这里, ...
- 大数据系列(3)——Hadoop集群完全分布式坏境搭建
前言 上一篇我们讲解了Hadoop单节点的安装,并且已经通过VMware安装了一台CentOS 6.8的Linux系统,咱们本篇的目标就是要配置一个真正的完全分布式的Hadoop集群,闲言少叙,进入本 ...
- Hadoop集群完全分布式坏境搭建
前言 上一篇我们讲解了Hadoop单节点的安装,并且已经通过VMware安装了一台CentOS 6.8的Linux系统,咱们本篇的目标就是要配置一个真正的完全分布式的Hadoop集群,闲言少叙,进入本 ...
- 使用Docker搭建Hadoop集群(伪分布式与完全分布式)
之前用虚拟机搭建Hadoop集群(包括伪分布式和完全分布式:Hadoop之伪分布式安装),但是这样太消耗资源了,自学了Docker也来操练一把,用Docker来构建Hadoop集群,这里搭建的Hado ...
- 基于docker的spark-hadoop分布式集群之一: 环境搭建
一.软件准备 1.基础docker镜像:ubuntu,目前最新的版本是18 2.需准备的环境软件包: (1) spark-2.3.0-bin-hadoop2.7.tgz (2) hadoop-2.7. ...
- Hadoop集群 -Eclipse开发环境设置
1.Hadoop开发环境简介 1.1 Hadoop集群简介 Java版本:jdk-6u31-linux-i586.bin Linux系统:CentOS6.0 Hadoop版本:hadoop-1.0.0 ...
随机推荐
- Asp.net Core 2.0 实现Cookie会话
与1.0版本相比微软做了一些调整.详细请参考官方文档,我这里就讲2.0的吧 1.首先要在 根目录下 Startup.cs 类中启用 cookie会话,有两处要配置 第一处在 public void ...
- JedisCluster使用pipeline操作Redis Cluster最详细从0到1实现过程
公众号文章链接:https://mp.weixin.qq.com/s/6fMsG009RukLW954UUndbw 前言 2020年4月30日,Redis 6.0.0正式发布,标志着redis从此告别 ...
- 编写 Dockerfile 生成自定义镜像
一般情况下我们可以从公共渠道诸如 DockerHub 获取镜像上获取镜像,但是在实际生产过程中,往往需要定制化的镜像,例如修改一些配置文件,增加一些特殊的命令或软件等需求,这时就需要通过编写 Dock ...
- Prometheus集群介绍-1
Prometheus监控介绍 公司做教育的,要迁移上云,所以需要我这边从零开始调研加后期维护Prometheus:近期看过二本方面的prometheus书籍,一本是深入浅出一般是实战方向的:官方文档主 ...
- python 中的sum( )函数 与 numpy中的 sum( )的区别
一. python sum函数 描述: sum() 对序列进行求和 用法: sum(iterable[, start]) iterable:可迭代对象,例如,列表,元组,集合. start:指定相加的 ...
- Java基础--接口回调(接口 对象名 = new 类名)理解
接口 对象名1 = new 类名和类名 对象名2 = new 类名的区别是什么? 实例 /** *Person.java 接口 */ public interface Person { void in ...
- windows下使用mingw和msvc静态编译Qt5.15.xx
windows下使用mingw和msvc静态编译Qt5.15.xx 下载并安装相关依赖软件 Python version 2.7 https://www.python.org/downloads/ ( ...
- 【Linux】大于2T的磁盘怎么分区?
环境CentOS7.1 2.9t磁盘 fdisk 只能分区小于2t的磁盘,大于2t的话,就要用到parted 1,将磁盘上原有的分区删除掉: 进入:#parted /dev/sdb 查看:(par ...
- ctfhub技能树—sql注入—时间盲注
打开靶机 查看页面信息 测试时间盲注 可以看到在执行命令后会有一定时间的等待,确定为时间盲注 直接上脚本 1 #! /usr/bin/env python 2 # _*_ coding:utf-8 _ ...
- STGAN: A Unified Selective Transfer Network for Arbitrary Image Attribute Editing 阅读笔记和pytorch代码解读
一.论文采用的新方法 1.AttGan中skip connect的局限性 由于encoder中对特征的下采样实际上可能损失部分特征,我们在decoder中进行上采样和转置卷积也无法恢复所有特征,因此A ...