Hadoop手把手逐级搭建,从单机伪分布到高可用+联邦(2)Hadoop完全分布式(full)

第二阶段: Hadoop完全分布式(full)

0. 步骤概述

1). 克隆4台虚拟机

2). 为完全分布式配置ssh免密

3). 将hadoop配置修改为完全分布式

4). 启动完全分布式集群

5). 在完全分布式集群上测试wordcount程序

1. 克隆4台虚拟机

1.1 使用hadoop0克隆4台虚拟机hadoop1,hadoop2,hadoop3,hadoop4

1.1.0 克隆虚拟机hadoop1

1.1.1 右键点击当前虚拟机hadoop0

1.1.2 在右键菜单选中“管理”

1.1.3 在“管理”的子菜单选中“克隆”

1.1.4 弹出“克隆虚拟机向导”窗口

1.1.5 点击“下一步”进入“克隆源”选择窗口

1.1.6 在“克隆源”中选择“虚拟机当前状态”或者“现有快照(仅限关闭的虚拟机)(S):”

1.1.7 点击下一步进入“克隆类型”窗口

1.1.8 选择“创建完整克隆”,点击下一步

1.1.9 在“新虚拟机名称”窗口,“虚拟机名称(V)”中填入新虚拟机“hadoop1”,“位置(L)”中选择目录

1.1.10 点击“完成”开始克隆

1.2生成新的mac地址

1.2.1 右键点击新建的虚拟机hadoop1

1.1.2在右键菜单选中点击“设置”

1.1.3 在“虚拟机设置”窗口,“硬件”标签下,选中“网络适配器”

1.1.4 在窗口右侧点击“高级”

1.1.5 在“网络适配器高级设置”窗口最下方“MAC 地址(M)”一栏点击“生成”

1.1.6 点击“确定”使设置生效

1.3 修改主机名

1.3.1 启动新虚拟机hadoop1

1.3.2 修改network中的HOSTNAME

1.3.2.1 修改生效前命令提示符中现有的主机名还是hadoop0
[root@hadoop0 ~]# vim /etc/sysconfig/network
HOSTNAME=hadoop1

1.3.2.2 修改完成后/etc/sysconfig/network完整内容如下
NETWORKING=yes
HOSTNAME=hadoop1
GATEWAY=192.168.111.2 

1.4 修改hadoop1的IP地址

14.1.1 修改hadoop1的IP地址为192.168.111.211
[root@hadoop0 ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0
IPADDR=192.168.111.211

1.4.2 修改完成后/etc/sysconfig/network-scripts/ifcfg-eth0完整内容如下
DEVICE=eth0
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=static
IPADDR=192.168.111.211
NETMASK=255.255.255.0
GATEWAY=192.168.111.2

1.5 删除70-persistent-net.rules文件

[root@hadoop0 ~]# rm -rf /etc/udev/rules.d/70-persistent-net.rules

1.6 重启虚拟机使配置生效

[root@hadoop0 ~]# init 6

1.7 查看主机名:命令提示符中主机名已变成hadoop1

[root@hadoop1 ~]# hostname
hadoop1

1.8 测试外网是否畅通

[root@hadoop1 ~]# ping baidu.com
64 bytes from 111.13.101.208: icmp_seq=1 ttl=128 time=5.50 ms
64 bytes from 111.13.101.208: icmp_seq=1 ttl=128 time=5.50 ms

#如果返回如上信息表示网络畅通

1.9 克隆另外3台虚拟机

使用同样的方式克隆并配置另外3台虚拟机,分别命名为hadoop2,hadoop3,hadoop4

2. 为完全分布式配置ssh免密

2.1 在hadoop1上修改hosts文件

2.1.1 将/etc/hosts文件内容替换如下
[root@hadoop1 ~]# vim /etc/hosts
192.168.111.211 hadoop1
192.168.111.212 hadoop2
192.168.111.213 hadoop3
192.168.111.214 hadoop4

2.1.2 将hadoop1上的/etc/hosts分发到hadoop2,hadoop3,hadoop4三个节点
[root@hadoop1 ~]# scp /etc/hosts hadoop2:/etc/hosts
[root@hadoop1 ~]# scp /etc/hosts hadoop3:/etc/hosts
[root@hadoop1 ~]# scp /etc/hosts hadoop4:/etc/hosts

2.2 在hadoop1上生成密匙

[root@hadoop1 ~]# ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa

2.3 设置本机ssh免密

[root@hadoop1 ~]# cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys

2.4 将hadoop1生成的公匙拷贝到hadoop2

2.4.1 拷贝过程中需要输入hadoop2的密码
[root@hadoop1 ~]# ssh-copy-id -i ~/.ssh/id_dsa.pub hadoop2
root@hadoop2's password:
Now try logging into the machine, with "ssh 'hadoop2'", and check in:
.ssh/authorized_keys
to make sure we haven't added extra keys that you weren't expecting.

2.4.2 同理,将公匙拷贝hadoop3和hadoop4

2.5 测试从hadoop1通过ssh连接到hadoop2

2.5.1 ssh到hadoop2
[root@hadoop1 ~]# ssh hadoop2
Last login: Mon Nov 27 04:10:16 2017 from 192.168.111.211

2.5.2无需输入密码直接进入hadoop2,说明免密成功
[root@hadoop2 ~]

2.6 退出hadoop2连接,回到hadoop1

2.6.1 使用exit命令退出
[root@hadoop2 ~]# exit
logout
Connection to hadoop2 closed.

2.6.2 命令提示符显示已经回到hadoop1
[root@hadoop1 ~]# 

3. 将hadoop配置修改为完全分布式

3.0 进入$HADOOP_HOME/etc/hadoop目录

[root@hadoop1 ~]# cd /opt/test/hadoop-2.6.5/etc/hadoop

3.1 修改core-site.xml配置

# 将$HADOOP_HOME/etc/hadoop/core-site.xml内容替换如下
[root@hadoop1 hadoop]# vim core-site.xml
<configuration>
<!-- 修改defaultFS为hadoop1-->
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://hadoop1:9000</value>
    </property>
<!-- 修改了临时文件存放位置-->
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/var/test/hadoop/full</value>
</property>
</configuration>

3.2 修改hdfs-site.xml配置

# 将$HADOOP_HOME/etc/hadoop/hdfs-site.xml内容替换如下
[root@hadoop1 hadoop]# vim hdfs-site.xml
<configuration>
<!-- 将备份数修改为3,小于等于当前datanode数目即可-->
    <property>
        <name>dfs.replication</name>
        <value>3</value>
    </property>
<!-- 将secondary namenode改为hadoop2-->
    <property>
        <name>dfs.namenode.secondary.http-address</name>
        <value>hadoop2:50090</value>
</property>
<property>
       <name>dfs.namenode.name.dir</name>
    <value>file://${hadoop.tmp.dir}/dfs/name</value>
 </property>
 <property>
    <name>dfs.namenode.data.dir</name>
    <value>file://${hadoop.tmp.dir}/dfs/data</value>
 </property>
 <property>
    <name>dfs.permissions.enabled</name>
    <value>false</value>
 </property>
</configuration>

3.3 修改yarn-site.xml

# 将$HADOOP_HOME/etc/hadoop/yarn-site.xml内容替换如下
[root@hadoop1 hadoop]# vim yarn-site.xml
<configuration>
<!-- 添加了yarn.resourcemanager.hostname 属性-->
<property>
    <name>yarn.resourcemanager.hostname</name>
    <value>hadoop1</value>
</property>

<property>
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</value>
</property>
<!-- 添加了yarn.nodemanager.auxservices.mapreduce.shuffle.class属性-->
<property>
    <name>yarn.nodemanager.auxservices.mapreduce.shuffle.class</name>
    <value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
</configuration>

3.4 配置salves文件

# 将$HADOOP_HOME/etc/hadoop/slaves内容替换如下
[root@hadoop1 hadoop]# vim slaves
hadoop2
hadoop3
hadoop4

3.5 分发hadoop配置到所有节点

[root@hadoop1 hadoop]# scp core-site.xml hdfs-site.xml yarn-site.xml slaves hadoop2:`pwd`
[root@hadoop1 hadoop]# scp core-site.xml hdfs-site.xml yarn-site.xml slaves hadoop3:`pwd`
[root@hadoop1 hadoop]# scp core-site.xml hdfs-site.xml yarn-site.xml slaves hadoop4:`pwd`

3.6 分发hosts文件到所有节点

[root@hadoop1 hadoop]# scp /etc/hosts hadoop2:/etc/
[root@hadoop1 hadoop]# scp /etc/hosts hadoop3:/etc/
[root@hadoop1 hadoop]# scp /etc/hosts hadoop4:/etc/

4. 启动完全分布式集群

4.1 在hadoop1上重新格式化namenode

[root@hadoop1 ~]# hdfs namenode -format

4.2 在hadoop1上启动集群

[root@hadoop1 ~]# start-dfs.sh

4.3 在hadoop1上启动yarn

[root@hadoop1 ~]# start-yarn.sh

4.4 在各节点上查看进程

4.4.1 节点hadoop1
[root@hadoop1 ~]# jps
1466 NameNode
1756 ResourceManager
2014 Jps

4.4.2 节点hadoop2
[root@hadoop2 ~]# jps
1663 Jps
1546 NodeManager
1397 DataNode
1454 SecondaryNameNode

4.4.3 节点hadoop3
[root@hadoop3 ~]# jps
1599 Jps
1457 NodeManager
1399 DataNode

4.4.4 节点hadoop4
[root@hadoop4 ~]# jps
1411 DataNode
1475 NodeManager
1613 Jps

5. 在完全分布式集群上测试wordcount程序

5.1 从hadoop1进入$HADOOP_HOME/share/hadoop/mapreduce/目录

[root@hadoop1 ~]# cd /opt/test/hadoop-2.6.5/share/hadoop/mapreduce/

5.2上传test.txt文件到根目录

5.2.1 默认上传
[root@hadoop1 mapreduce]# hadoop fs -put test.txt /

5.2.2 也可以指定blocksize上传
[root@hadoop1 mapreduce]# hdfs dfs -D dfs.blocksize=1048576 -put test.txt /

5.3 运行wordcount测试程序,输出到/output

[root@hadoop1 mapreduce]#
hadoop jar hadoop-mapreduce-examples-2.6.5.jar wordcount /test.txt /output
#运行时会首先看到如下信息
INFO client.RMProxy: Connecting to ResourceManager at /0.0.0.0:8032

5.4 查看mapreduce运行结果

[root@hadoop1 mapreduce]# hadoop dfs -text /output/part-*
hello    100003
world    200002
“hello    100000
时间: 2024-10-24 09:01:26

Hadoop手把手逐级搭建,从单机伪分布到高可用+联邦(2)Hadoop完全分布式(full)的相关文章

Hadoop手把手逐级搭建,从单机伪分布到高可用+联邦(1)单机伪分布

总体概述 1. 目标 1). 零基础手把手纯操作,包含每个细节 2). 逐级进阶,每个阶段都在上一阶段的基础上修改而成 2. 工具及版本 1). 操作系统Windows 10 2). 虚拟机软件VMware Workstation 12 Pro 3). Linux版本CentOS-6.9-x86_64-minimal 4). jdk版本jdk-7u67-linux-x64.tar.gz 5). hadoop版本hadoop-2.6.5.tar.gz 6). 辅助工具: xShell, xFtp

单机伪分布ganglia 监控hadoop,监控不到hadoop的相关监测指标

问题描述 单机伪分布ganglia 监控hadoop,监控不到hadoop的相关监测指标 就一台计算机,ubuntu 12.04 安装ganglia 是通过apt-get ... . ganglia版本是3.1.7 hadoop是2.4.1,hadoop是单机伪分布式环境下,相关配置配置好后,主要是ip地址,都是127.0.0.1,在监控的web页面上只能监控到cpu,内存,网络等指标,但hadoop 的相关指标(hdfs mapreduce)监测不到.下面是配置文件.麻烦看看是什么原因. gm

CentOS 7上搭建安全、容灾、高可用的etcd集群

本文讲的是CentOS 7上搭建安全.容灾.高可用的etcd集群[编者的话]etcd 是 CoreOS 团队发起的开源项目,基于 Go 语言实现,做为一个分布式键值对存储,通过分布式锁,leader选举和写屏障(write barriers)来实现可靠的分布式协作. 本文目标是部署一个基于TLS(Self-signed certificates)的安全.快速灾难恢复(Disaster Recovery, SNAPSHOT)的高可用(High Availability)的etcd集群. 准备工作

高可用Hadoop平台-集成Hive HAProxy

1.概述 这篇博客是接着<高可用Hadoop平台>系列讲,本篇博客是为后面用 Hive 来做数据统计做准备的,介绍如何在 Hadoop HA 平台下集成高可用的 Hive 工具,下面我打算分以下流程来赘述: 环境准备 集成并配置 Hive 工具 使用 Java API 开发 Hive 代码 下面开始进行环境准备. 2.环境准备 Hive版本:<Hive-0.14> HAProxy版本:<HAProxy-1.5.11> 注:前提是 Hadoop 的集群已经搭建完成,若还没

搭建Oracle高可用数据库环境

24*7(有些叫法也为24*7*365)的高可用系统越来越多的受到广泛重视与应用,那是因为在实际环境中,不间断的系统代表的就是不间断的义务收入.但是 ◆怎么样搭建与管理24*7的高可用环境? ◆各种各样的高可用环境之间到底有什么差别? ◆我们是否适合于哪种环境? ◆现在高可用环境的主要方式以及以后的发展趋势是什么? 这些话题,都是决策者与实施者都应当考虑的,也是本文所探讨的,我们需要搭建一个怎么样的高可用环境,才能真正做到最适合. 一.什么是高可用(High Availability) 在高可用

搭建高可用的MongoDB集群(上):MongoDB的配置与副本集

传统的关系数据库具有不错的性能及稳定性,同时,久经历史考验,许多优秀的数据库沉淀了下来,比如MySQL.然而随着数据体积的爆发性增长,数据类型的增多,许多传统关系数据库扩展难的特点也爆发了出来,NoSQL数据库也应运而生.然而区别于以往的使用方法,许多NoSQL都有着自己的限制,从而也导致了入门难的问题.这里我们为大家分享上海创行科技技术总监严澜的博文--如何搭建高效的MongoDB集群. 以下为原文 在大数据的时代,传统的关系型数据库要能更高的服务必须要解决高并发读写.海量数据高效存储.高可扩

《深入理解大数据:大数据处理与编程实践》一一2.2 单机和单机伪分布式Hadoop系统安装基本步骤

2.2 单机和单机伪分布式Hadoop系统安装基本步骤 默认情况下,Hadoop被配置成一个以非分布式模式运行的独立Java进程,适合程序员在本地做编程和调试工作.Hadoop也可以在单节点上以伪分布式模式运行,用不同的Java进程模拟分布式运行中的各类节点(NameNode.DataNode.JobTracker.TaskTracker和Secondary NameNode).2.2.1 安装和配置JDK Hadoop是以Java语言写成,因而需要在本地计算机上预先安装Java 6或者更新版本

Linux CentOS下Hadoop伪分布再配置,再次一定要玩真的集群啦~~

上次配了一次,没多少感觉. 代码看累了. 配置一次再轻松一下脑袋... 不过,这次是在家里的VM上,用最新的JDK-7U-17和上HADOOP-1.1.2搞的. CENTOS版本来6.3-I386. 一次OK. 这次参考的贴子是: http://bjbxy.blog.51cto.com/854497/352692 相关输出如下: # jps2614 Jps2280 TaskTracker1908 NameNode2110 SecondaryNameNode2012 DataNode2169 Jo

hadoop集群搭建详述

1.集群搭建策略 分析: 我手上只有3台电脑,两台华硕笔记本i7.i3的处理器,一台台式机Pentium4处理器.为了更好的测试zookeeper的功能, 我们总共需要6台ubuntu(Ubuntu 14.04.3 LTS)的主机.以下是我的主机分布策略: i7:开启4台ubuntu虚拟机分别是 虚拟机名 内存 硬盘 网络连接 master 1G 20G 桥接 master2 1G 20G 桥接 rm 512M 20G 桥接 slave3 1G 20G 桥接 i3: 安装ubuntu系统 ,作为