前提工作:

克隆2台虚拟机完成后:新的2台虚拟机,请务必依次修改3台虚拟机的ip地址和主机名称【建议三台主机名称依次叫做:master、node1、node2 】 上一篇博客

(三台虚拟机都要开机)

Hadoop2.6.0 的压缩包,这里我提供百度云,没有的可以进行下载

    链接:https://pan.baidu.com/s/1euN5AwSHHP-mqz4U_6ldEQ
    提取码:jh1m

1、设置主机名与ip的映射,修改配置文件命令:vi /etc/hosts

2、将hosts文件拷贝到node1和node2节点

命令:

scp /etc/hosts node1:/etc/hosts

scp /etc/hosts node2:/etc/hosts

3、上述修改完成后,请依次重启三台虚拟机:重启命令:reboot

4、关闭防火墙(三台都要操作),使用命令:service iptables stop

5、关闭防火墙的自动启动(三台都要操作),使用命令:chkconfig iptables off

6、设置ssh免密码登录(只在Master 这台主机操作

主节点执行命令  ssh-keygen -t rsa     产生密钥 一直回车

执行命令

7、将密钥拷贝到其他两个子节点,命令如下:

ssh-copy-id -i node1

ssh-copy-id -i node2

实现免密码登录到子节点。

8、实现主节点master本地免密码登录

首先进入到/root 命令:cd  /root

再进入进入到 ./.ssh目录下

命令:cd ./.ssh/

9、然后将公钥写入本地执行命令:

cat ./id_rsa.pub >> ./authorized_keys

如图

--------------------------------------------------------------------------以下操作都在master上进行-----------------------------------------------------------------------------------------------------------------------

10、将hadoop的jar包先上传到虚拟机/usr/local/soft目录下,主节点。可以使用xshell拖拽

11、解压。tar -zxvf hadoop-2.6.0.tar.gz 解压完后会出现 hadoop-2.6.0的目录

12、修改master中hadoop的一个配置文件/usr/local/soft/etc/hadoop/slaves

删除原来的所有内容,修改为如下(你的节点名称)

node1

node2

13、修改hadoop的几个组件的配置文件 进入cd /usr/local/soft/hadoop-2.6.0/etc/hadoop 目录下(请一定要注意配置文件内容的格式,可以直接复制过去黏贴。不要随意改 !!!!!!!!)

* 修改hadoop-env.sh文件

加上一句:

export JAVA_HOME=/usr/local/soft/jdk1.8.0_171 (自己的jdk路径)

14、修改 core-site.xml

将下面的配置参数加入进去修改成对应自己的

<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:9000</value> //这里的master是我的主机名
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/local/soft/hadoop-2.6.0/tmp</value> //你的Hadoop路径
</property>
<property>
<name>fs.trash.interval</name>
<value>1440</value>
</property>
</configuration>

15、修改 hdfs-site.xml 将dfs.replication设置为1  (因为我这里就只有一个主节点和两个子节点)

<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>
</configuration>

16、修改文件yarn-site.xml

 <configuration>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>master</value> //你的主机名
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>
<property>
<name>yarn.log-aggregation.retain-seconds</name>
<value>604800</value>
</property>
<property>
<name>yarn.nodemanager.resource.memory-mb</name>
<value>20480</value>
</property>
<property>
<name>yarn.scheduler.minimum-allocation-mb</name>
<value>2048</value>
</property>
<property>
<name>yarn.nodemanager.vmem-pmem-ratio</name>
<value>2.1</value>
</property>
</configuration>

17、(将mapred-site.xml.template 复制一份为 mapred-site.xml

命令:cp mapred-site.xml.template mapred-site.xml) 然后修改 mapred-site.xml

<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.jobhistory.address</name>
<value>master:10020</value> //我的主节点名字叫master
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>master:19888</value> //我的主节点名字叫master
</property>
</configuration>

18、将hadoop的安装目录分别拷贝到其他子节点

scp -r /usr/local/soft/hadoop-2.6.0  node1:/usr/local/soft/

scp -r /usr/local/soft/hadoop-2.6.0  node2:/usr/local/soft/

19、启动hadoop

首先看下hadoop-2.6.0目录下有没有tmp文件夹。

如果没有 执行一次格式化命令:

cd  /usr/local/soft/hadoop-2.6.0目录下

执行命令:

./bin/hdfs namenode -format

会生成tmp文件。

20、/usr/local/soft/hadoop-2.6.0目录下

启动执行:./sbin/start-all.sh

21、启动完成后通过jps命令查看验证进程:jps

主节点进程为下面几个(下面是进程名称,不是命令):

Namenode

secondarnamenode

resourcemanager

22、子节点进程 (在node1和node2上分别输入命令:jps)

datanode

nodenodemanager

23、验证hdfs:

可以windows电脑登录浏览器(强烈建议chrome浏览器)

地址:192.168.1.80:50070 (ip地址是master的地址)

看到下面页面证明 hdfs装好了

下图是我已经创建了一个hdfs上的目录,刚装好的hadoop应该是空的什么都没有

******* 如果第一次启动失败了,请重新检查配置文件或者哪里步骤少了。

再次重启的时候

1需要手动将每个节点的tmp目录删除:

rm -rf /usr/local/soft/hadoop-2.6.0/tmp

然后执行将namenode格式化

2在主节点执行命令:

./bin/hdfs namenode -format

如果在put文件的过程中出现了_COPYING_ could only be replicated to 0 nodes instead  of minReplication (=1).

的报错

1 格式化重来

2 如果不行,看下时间,防火墙

3 修改 hosts文件,把里面那两条删了

大数据之路week06--day07(完全分布式Hadoop的搭建)的更多相关文章

  1. 大数据之路week07--day05 (一个基于Hadoop的数据仓库建模工具之一 HIve)

    什么是Hive? 我来一个短而精悍的总结(面试常问) 1:hive是基于hadoop的数据仓库建模工具之一(后面还有TEZ,Spark). 2:hive可以使用类sql方言,对存储在hdfs上的数据进 ...

  2. java大数据最全课程学习笔记(1)--Hadoop简介和安装及伪分布式

    Hadoop简介和安装及伪分布式 大数据概念 大数据概论 大数据(Big Data): 指无法在一定时间范围内用常规软件工具进行捕捉,管理和处理的数据集合,是需要新处理模式才能具有更强的决策力,洞察发 ...

  3. 胖子哥的大数据之路(6)- NoSQL生态圈全景介绍

    引言: NoSQL高级培训课程的基础理论篇的部分课件,是从一本英文原著中做的摘选,中文部分参考自互联网.给大家分享. 正文:  The NoSQL Ecosystem 目录 The NoSQL Eco ...

  4. 大数据之路week07--day03(Hadoop深入理解,JAVA代码编写WordCount程序,以及扩展升级)

    什么是MapReduce 你想数出一摞牌中有多少张黑桃.直观方式是一张一张检查并且数出有多少张是黑桃. MapReduce方法则是: 1.给在座的所有玩家中分配这摞牌 2.让每个玩家数自己手中的牌有几 ...

  5. 大数据之路week06--day07(Hadoop生态圈的介绍)

    Hadoop 基本概念 一.Hadoop出现的前提环境 随着数据量的增大带来了以下的问题 (1)如何存储大量的数据? (2)怎么处理这些数据? (3)怎样的高效的分析这些数据? (4)在数据增长的情况 ...

  6. 大数据之路week04--day06(I/O流阶段一 之异常)

    从这节开始,进入对I/O流的系统学习,I/O流在往后大数据的学习道路上尤为重要!!!极为重要,必须要提起重视,它与集合,多线程,网络编程,可以说在往后学习或者是工作上,起到一个基石的作用,没了地基,房 ...

  7. C#码农的大数据之路 - 使用C#编写MR作业

    系列目录 写在前面 从Hadoop出现至今,大数据几乎就是Java平台专属一般.虽然Hadoop或Spark也提供了接口可以与其他语言一起使用,但作为基于JVM运行的框架,Java系语言有着天生优势. ...

  8. 胖子哥的大数据之路(11)-我看Intel&&Cloudera的合作

    一.引言 5月8日,作为受邀嘉宾,参加了Intel与Cloudera在北京中国大饭店新闻发布会,两家公司宣布战略合作,该消息成为继Intel宣布放弃大数据平台之后的另外一个热点新闻.对于Intel的放 ...

  9. 胖子哥的大数据之路(10)- 基于Hive构建数据仓库实例

    一.引言 基于Hive+Hadoop模式构建数据仓库,是大数据时代的一个不错的选择,本文以郑商所每日交易行情数据为案例,探讨数据Hive数据导入的操作实例. 二.源数据-每日行情数据 三.建表脚本 C ...

随机推荐

  1. 记联想SR850 Raid配置的一个bug

    管理raid阵列时,如果要删除某个指定的阵列,则需要选中阵列名而不能选中虚拟磁盘.如果选中的是虚拟磁盘,点击删除后,会删除整个阵列列表里的第一个阵列,而非虚拟磁盘所在的阵列. 过程如下 联想SR850 ...

  2. 预训练中Word2vec,ELMO,GPT与BERT对比

    预训练 先在某个任务(训练集A或者B)进行预先训练,即先在这个任务(训练集A或者B)学习网络参数,然后存起来以备后用.当我们在面临第三个任务时,网络可以采取相同的结构,在较浅的几层,网络参数可以直接加 ...

  3. 记录 centos samba 安装

    https://www.ruletree.club/archives/4/ https://www.linuxidc.com/Linux/2017-03/141390.htm

  4. React项目使用React-Router

    ⒈初始化React项目(略) 请参考 初始化一个React项目(TypeScript环境) ⒉集成React-Router 在React世界里,公认最好用的路由是React-Router.那我们直接来 ...

  5. C++中深拷贝与浅拷贝

    浅拷贝和深拷贝 在某些状况下,类内成员变量需要动态开辟堆内存,如果实行位拷贝,也就是把对象里的值完全复制给另一个对象,如A=B.这时,如果B中有一个成员变量指针已经申请了内存,那A中的那个成员变量也指 ...

  6. 【自学系列一】HTML5大前端学习路线+视频教程(完整版)

    今年,本公司全新发布了囊括Java.HTML5前端.大数据.Python爬虫.全链UI设计.软件测试.Unity 3D.Go语言等多个技术方向的全套视频. 面对这么多的知识点,有的盆友就麻爪了…… 我 ...

  7. 【并发】6、借助FQueue 实现多线程生产消费队列

    1.这里先要说一下为什么会想到fqueue,因为这个是一个轻量级的消息队列框架,并且速度很快,用起来很方便,就是这样 当然后期考虑使用redis,这里先上一个fqueue的版本,后面有时间我再吧他改成 ...

  8. 从C++到Qt(舍弃IDE或qmake、cmake等工具的束缚,尝试通过几个例子)

    Qt 是 C++ 的库,Qt 在 ansi C++ 的基础上进行了一点扩展. 但国内似乎比较浮躁,学Qt的很多连基本的C++如何编译似乎都不太清楚.本文舍弃IDE或qmake.cmake等工具的束缚, ...

  9. puppet工作原理之模块使用

    一.模块介绍 1.什么是模块 通常情况把manifest文件分解成易于理解得结构,例如类文件,配置文件分类存放,并通过某种机制整合使用,这种机制就是模块,有助于结构化.层次化的方式使用puppet,p ...

  10. Redis—.Net中的使用

    StackExchange.Redis使用以及封装 来源:http://www.cnblogs.com/qtqq/p/5951201.html,https://www.cnblogs.com/xsj1 ...