搭建三节点的hadoop集群:

要求:

主机名称

备注

IP地址

功能

hadoop01

Master

主节点

192.168.211.134

NameNode、DataNode、ResourceManager、NodeManager

hadoop02

Slave

次节点

192.168.211.129

DataNode、NodeManager、SecondaryNameNode

hadoop03

Slave

次节点

192.168.211.140

DataNode、NodeManager

所有机子都需要配置

1.JDK        2.SSH免登陆      3.Hadoop集群

三台机子同时进行:
步骤一:
添加用户,设置密码
useradd hadoop
passwd hadoop

步骤二:
为用户设置权限
su root
visudo
在文件的如下位置,为hadoop添加一行即可
root ALL=(ALL) ALL
hadoop ALL=(ALL) ALL
#如果需要用户hadoop使用sudo命令时不输入密码,则是输入以下一句:
hadoop ALL=(ALL) NOPASSWD:ALL

步骤三:
同步时间:三台主机同时设置
sudo date -s "00:00:00"

(可以用时间服务器定时同步主节点来修改)

步骤四;
设置主机名:
sudo vi /etc/sysconfig/network
每台各设置
hadoop01
hadoop02
hadoop03

(思考:可以用发送的方式来发送给从节点或其他主机)

步骤五:
配置内网域名映射(在各主机下都写三台主机的映射)sudo vi /etc/hosts
hadoop01
hadoop02
hadoop03

(思考:可以用发送的方式来发送给从节点或其他主机)

步骤六:
配置防火墙
service iptables start
service iptables status
service iptables stop
chkconfig iptables --list
chkconfig iptables off
service iptables save

(思考:是否可以用时间服务器定时对防火墙进行关闭保存,或者从一开始就设置防火墙自动关闭)

下面在一台主机上进行:

步骤七:
安装jdk,hadoop
上传jdk、Hadoop包
解压jdk包:/home/hadoop/jdk1.8.0_101
tar -zxvf jdk-8u101-linux-x64.tar.gz
修改配置文件 sudo vi /etc/profile
export JAVA_HOME=/home/hadoop/jdk1.8.0_101
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:
PATH=$PATH:$JAVA_HOME/bin:
刷新配置文件:source /etc/profile

(思考:是否可以将发送后的配置文件进行定时刷新)
which java 查看当前系统使用的jdk/home/hadoop/jdk1.8.0_101/bin/java

步骤八:
解压Hadoop包
tar -zxvf hadoop-2.6.1.tar.gz
修改配置文件(包括java,hadoop) sudo vi /etc/profile

export JAVA_HOME=/home/hadoop/jdk1.8.0_101
export HADOOP_HOME=/home/hadoop/hadoop-2.6.1
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:
PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

刷新配置文件:source /etc/profile

步骤九:设置免登录
免密登录作用:用于在namenode 和datanode 之间传递。

(在根目录(~)ssh (按table键显示ssh文件,包括ssh-key加密钥)
cd /home/hadoop/.ssh 可以进入.ssh文件夹
在.ssh 路径下 ls 可以看到know_hosts文件)

配置加密命令:
在根目录(~)下 cd ~
ssh-keygen -t rsa 回车执行,然后一路回车(好像一共回车3次)

然后在 /home/hadoop/.ssh/目录下
cd /home/hadoop/.ssh/
ls
显示增加了id_rsa id_rsa.pub两个文件

在/home/hadoop/.ssh/目录下,ssh- (按table键)
显示有ssh-copy-id 文件

在/home/hadoop/.ssh/下执行
ssh-copy-id hadoop@hadoop01 之后再输入密码,回车
ssh-copy-id hadoop@hadoop02 之后再输入密码,回车
ssh-copy-id hadoop@hadoop03 之后再输入密码,回车

在~根目录下,scp ./myfile hadoop@hadoop02:/home/hadoop/ 回车执行,可远程发送
在~根目录下,ssh hadoop@hadoop03 回车执行可进入第三台主机

删掉/hadoop-2.6.1/share文件夹下doc文件夹(用不到)

步骤十:
注意:把配置好的jdk文件夹发送给其他节点:
scp -r jdk1.8.0_101 hadoop@hadoop02:/home/hadoop/
scp -r jdk1.8.0_101 hadoop@hadoop03:/home/hadoop/

也可以发送环境变量过去:
sudo scp /etc/profile root@hadoop02:/etc/
sudo scp /etc/profile root@hadoop03:/etc/
刷新系统环境变量配置文件: source /etc/profile

步骤十一:
给Hadoop框架配置jdk(作用:启动集群)
vi /home/hadoop//hadoop-2.6.1/etc/hadoop/hadoop-env.sh
将export JAVA_HOME=${JAVA_HOME} 修改为
export JAVA_HOME=/home/hadoop/jdk1.8.0_101

步骤十二:
在/home/hadoop/hadoop-2.6.1/路径下添加hadoopdata文件夹
cd /home/hadoop/hadoop-2.6.1/
mkdir hadoopdata

手动创建的hadoopdata文件夹是用来存放数据和元数据的,
注意:1.要放在/home/hadoop/hadoop-2.6.1/下,不能放在根目录下,放在根目录下没有权限操作。
2.要在发送环境变量和配置好的hadoop文件夹之前创建。

步骤十三:修改配置文件
修改配置文件
修改core-site.xml文件
<property>
<name>fs.defaultFS</name>
<!--配置hdfs系统的地址-->
<value>hdfs://hadoop01:8020</value>
</property>
<property>
<name>io.file.buffer.size</name>
<value>4096</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/home/hadoop/hadoop-2.6.1/hadoopdata/tmp</value>
</property>

修改hdfs-site.xml文件
<property>
<name>dfs.replication</name>
<!--副本数3-->
<value>3</value>
</property>
<property>
<!--hadoop2.x默认数据块大小是128M-->
<name>dfs.blocksize</name>
<value>134217728</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<!--NameNode节点存储元数据的位置-->
<value>file:///home/hadoop/hadoop-2.6.1/hadoopdata/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<!--DataNode节点存储数据块的位置-->
<value>file:///home/hadoop/hadoop-2.6.1/hadoopdata/dfs/data</value>
</property>
<property>
<name>fs.checkpoint.dir</name>
<value>file:///home/hadoop/hadoop-2.6.1/hadoopdata/checkpoint/dfs/cname</value>
</property>
<property>
<name>fs.checkpoint.edits.dir</name>
<value>file:///home/hadoop/hadoop-2.6.1/hadoopdata/checkpoint/dfs/cname</value>
</property>
<property>
<name>dfs.http.address</name>
<value>hadoop01:50070</value>
</property>
<property>
<!--hdfs系统的web地址-->(主机2为主机1做辅助作用)
<name>dfs.secondary.http.address</name>
<value>hadoop02:50090</value>
</property>
<property>
<name>dfs.webhdfs.enabled</name>
<value>true</value>
</property>
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>

修改mapred-site.xml文件
命令如下:
# mv mapred-site.xml.template mapred-site.xml
#vi mapred-site.xml

<property>
<!--配置执行计算模型时使用yarn资源调度器-->
<name>mapreduce.framework.name</name>
<value>yarn</value>
<final>true</final>
</property>
<property>
<!--配置MapReduce框架的历史服务的地址-->
<name>mapreduce.jobhistory.address</name>
<value>hadoop01:10020</value>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>hadoop01:19888</value>
</property>

修改yarn-site.xml
<property>
<!--配置resourcemanager服务的地址-->
<name>yarn.resourcemanager.hostname</name>
<value>hadoop01</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.resourcemanager.address</name>
<value>hadoop01:8032</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>hadoop01:8030</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>hadoop01:8031</value>
</property>
<property>
<name>yarn.resourcemanager.admin.address</name>
<value>hadoop01:8033</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>hadoop01:8088</value>
</property>

步骤十四:配置datanode,datamanager节点
#vi slaves
将所有需要配置成slave类型的机器的机器名写在其内部即可.
注意:每个机器名占一行。
hadoop01
hadoop02
hadoop03

步骤十五:
(Master文件存的是的secondarynamenode列表)(master文件没有,需手动创建)注意要在hadoop目录下创建
#vi /etc/hadoop/master
# vi ./master
hadoop02

步骤十六:
//将配置好的Hadoop文件夹发送给slave1和slave2机子。在~根目录下进行发送,即远程拷贝
#scp -r hadoop-2.6.1 hadoop@hadoop02:/home/hadoop/
#scp -r hadoop-2.6.1 hadoop@hadoop03:/home/hadoop/

步骤十七:
配置Hadoop框架的环境变量:----一会儿调一下
export HADOOP_HOME=/home/hadoop/hadoop-2.6.1 (直接粘贴)
PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin (配置bin,是因为执行脚本在bin里面.将 :$HADOOP_HOME/bin:$HADOOP_HOME/sbin 直接添加
在 PATH=$PATH:$JAVA_HOME/bin 后即可) 作用:配置之后,在任何路径下都可以使用/sbin目录下的脚本。
# source /etc/profile

步骤十八:
发送hadoop的环境变量到其他节点:
scp /etc/profile root@hadoop02:/etc/
scp /etc/profile root@hadoop03:/etc/

步骤十九;
可测试:根目录~下 st+table键出现以st开头的文件即表明配置成功。

步骤二十:
//启动Hadoop集群(因为name和data目录只有在格式化之后才创建)
在/home/hadoop/hadoop-2.6.1/hadoopdata文件夹下格式化
//启动之前先格式化,只需要一次即可(在NameNode节点)
#hadoop namenode -format

启动之前最好检查防火墙是否处于关闭状态。

步骤二十一;启动hdfs集群和yarn集群
在根目录下~,执行start-dfs.sh 先启动hdfs集群。执行完毕之后,显示启动namenode 和datanode。
在/dfs文件夹下自动创建了data和name两个文件夹。

在~根目录下,执行start-yarn.sh ,启动yarn集群,启动后显示resourcemanager和nodemanager
(log显示在第一台启动resourcemanager)
步骤二十二;
jps验证:显示启动各个功能

步骤二十三:
集群启动成功,上传文件测试:
根目录~下,vi aaa ,随便写点东西即可,保存退出
根目录下执行,hadoop fs -put  ./aaa  / (注:./aaa表示当前路径,后面的 / 表示hdfs系统的根路径

搭建集群主要在于配置文件,配置文件说明链接:http://www.cnblogs.com/pingzizhuanshu/p/8964011.html

以五节点为例:链接:http://www.cnblogs.com/pingzizhuanshu/p/8964025.html

搭建hadoop集群关键步骤--以三节点为例的更多相关文章

  1. 搭建Hadoop集群 (三)

    通过 搭建Hadoop集群 (二), 我们已经可以顺利运行自带的wordcount程序. 下面学习如何创建自己的Java应用, 放到Hadoop集群上运行, 并且可以通过debug来调试. 有多少种D ...

  2. Linux下搭建Hadoop集群

    本文地址: 1.前言 本文描述的是如何使用3台Hadoop节点搭建一个集群.本文中,使用的是三个Ubuntu虚拟机,并没有使用三台物理机.在使用物理机搭建Hadoop集群的时候,也可以参考本文.首先这 ...

  3. 搭建Hadoop集群 (二)

    前面的步骤请看  搭建Hadoop集群 (一) 安装Hadoop 解压安装 登录master, 下载解压hadoop 2.6.2压缩包到/home/hm/文件夹. (也可以从主机拖拽或者psftp压缩 ...

  4. 使用Windows Azure的VM安装和配置CDH搭建Hadoop集群

    本文主要内容是使用Windows Azure的VIRTUAL MACHINES和NETWORKS服务安装CDH (Cloudera Distribution Including Apache Hado ...

  5. virtualbox 虚拟3台虚拟机搭建hadoop集群

    用了这么久的hadoop,只会使用streaming接口跑任务,各种调优还不熟练,自定义inputformat , outputformat, partitioner 还不会写,于是干脆从头开始,自己 ...

  6. 搭建Hadoop集群 (一)

    上面讲了如何搭建Hadoop的Standalone和Pseudo-Distributed Mode(搭建单节点Hadoop应用环境), 现在我们来搭建一个Fully-Distributed Mode的 ...

  7. Hadoop入门进阶步步高(五)-搭建Hadoop集群

    五.搭建Hadoop集群 上面的步骤,确认了单机能够运行Hadoop的伪分布运行,真正的分布式运行无非也就是多几台slave机器而已,配置方面的有一点点差别,配置起来就很easy了. 1.准备三台se ...

  8. Linux 搭建Hadoop集群 成功

    内容基于(自己的真是操作步骤编写) Linux 搭建Hadoop集群---Jdk配置 Linux 搭建Hadoop集群 ---SSH免密登陆 一:下载安装 Hadoop 1.1:下载指定的Hadoop ...

  9. 虚拟机搭建Hadoop集群

    安装包准备 操作系统:ubuntu-16.04.3-desktop-amd64.iso 软件包:VirtualBox 安装包:hadoop-3.0.0.tar.gz,jdk-8u161-linux-x ...

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

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

随机推荐

  1. 面向教师的OBS直播速成教程

    引言 本文是面向教师讲述的如何使用OBS软件进行课程直播的速成教程. 本文配套视频链接如下️ 面向教师的OBS直播教学速成教程_哔哩哔哩_bilibili 环境准备 1. 下载对应本机系统版本的并安装 ...

  2. 08. C语言函数

    [函数基础] 函数用于将程序代码分类管理,实现不同功能的代码放在不同函数内,一个函数等于一种功能,其它函数可以调用本函数执行. C语言规定所有的指令数据必须定义在函数内部,比如之前介绍的程序执行流程控 ...

  3. OpenTelemetry agent 对 Spring Boot 应用的影响:一次 SPI 失效的

    背景 前段时间公司领导让我排查一个关于在 JDK21 环境中使用 Spring Boot 配合一个 JDK18 新增的一个 SPI(java.net.spi.InetAddressResolverPr ...

  4. .NET 代理模式(一)基本概念

    代理模式 代理模式,它是一种结构型的设计模式. 让你能够提供对象的替代品或其占位符. 代理控制着对于原对象的访问, 并允许在将请求提交给对象前后进行一些处理. 简单理解就是 客户端不会直接与实际实现类 ...

  5. linux 文件的特殊权限:suid sgid sticky

    目录 一.关于文件的特殊权限 二.suid 三.SGID 四.Stickybit 一.关于文件的特殊权限 1.文件与目录设置不止基础权限:r,w,x,还有所谓的特殊权限.特殊权限会拥有一些" ...

  6. Python 数据降级(重采样)

    在数据处理中,经常有高频数据转成低频,秒级数据转成分钟.小时数据等.我们将讨论以下方法: 使用 Pandas 的 resample 方法: 示例:将天数据转化成月数据. 代码示例: import pa ...

  7. Java 对象的揭秘

    前言 作为一个 Java 程序员,我们在开发者最多的操作要属创建对象了.那么你了解对象多少?它是如何创建?如何存储布局以及如何使用的?本文将对 Java 对象进行揭秘,以及讲解如何使用 JOL 查看对 ...

  8. 在 Rainbond 中一键安装高可用 Nacos 集群

    描述如何通过云原生应用管理平台 Rainbond 一键安装高可用 Nacos 集群.这种方式适合不太了解 Kubernetes.容器化等复杂技术的用户使用,降低了在 Kubernetes 中部署 Na ...

  9. iOS线程While-True死循环会发生什么

    一.在工作的代码有一段while-True轮训的逻辑,循环中主要的工作是阻塞的IO 代码大概如下: dispatch_async(dispatch_get_global_queue(0, 0), ^{ ...

  10. Opencv笔记(12)傅里叶变换

    在之前了解的OpenCV为我们实现的图像变换,这些本质上是从图像到输出图像的映射,即输入仍是一幅图像.本章的傅里叶变换,输出数组的值在含义上和原图像的强度值大不相同,是输入图像的频域表示. cv::d ...