hadoop集群搭建-(三台机器)

目录

安装jdk

安装hadoop

配置ssh

配置集群

 集群启动及测试

附录

Hadoop组成

HDFS架构概述

YARN架构概述

MapReduce架构概述

        大数据技术生态体系


小二是一名学生,他在研究大数据,那么hadoop是必不可少要去学习的。他没有多余的linux机器,只能用自己的笔记本安装VMware虚拟机程序,他克隆了三台centOS6.6版本的linux系统,然后开始了他的hadoop集群搭建之旅。再下也不知道他是不是跑偏了,若有,请不吝赐教,再下不胜感谢。

首先,模拟搭建hadoop集群环境你需要在机子上安装VMware,若您还没有安装,小二献出一记,请参考介个-----https://blog.csdn.net/iiiiiilikangshuai/article/details/79781630   。这个是以前安装7 的时候写的,若是您没有centos6的镜像,嘿嘿,留言邮箱给我,或者官网下去。嘻嘻!

其次,学习大数据你需要有不弱的linux命令操作,需要知道怎么去使用这么一个好的操作系统,去习惯命令行式的简洁。若是基础有些不足,请参考介个------https://blog.csdn.net/iiiiiilikangshuai/article/details/83868239 。嘿嘿,写的些许有些粗糙。不过命令都是需要拿小本本记下来的。

最后,就是搭建集群之旅。-----痛苦的开始(错误好多啊!!!!)

       1)准备3台客户机(关闭防火墙、静态ip、主机名称

       2)安装jdk

       3)配置环境变量

       4)安装hadoop

       5)配置环境变量

       6)安装ssh

       7)配置集群

       8)启动测试集群

安装jdk

若是您不会。嘻嘻。请参考---https://blog.csdn.net/iiiiiilikangshuai/article/details/91891565 。

安装hadoop

首先上传hadoop安装包,若没有,在下也已经准备好啦!!!

使用XShell和Xftp上传

解压安装文件到/opt/module下面

[root@hadoop101 software]# tar -zxf hadoop-2.7.2.tar.gz -C /opt/module/

3)查看是否解压成功

[root@hadoop101 software]# ls /opt/module/

hadoop-2.7.2 

4)配置hadoop中的hadoop-env.sh

(1)Linux系统中获取jdk的安装路径:

[root@hadoop101 jdk1.7.0_79]# echo $JAVA_HOME

/opt/module/jdk1.7.0_79

(2)修改hadoop-env.sh文件中JAVA_HOME 路径:

export JAVA_HOME=/opt/module/jdk1.7.0_79

5)将hadoop添加到环境变量

       (1)获取hadoop安装路径:

[root@ hadoop101 hadoop-2.7.2]# pwd

/opt/module/hadoop-2.7.2

       (2)打开/etc/profile文件:

root@ hadoop101 hadoop-2.7.2]# vi /etc/profile

              在profie文件末尾添加jdk路径:(shitf+g)

##HADOOP_HOME

export HADOOP_HOME=/opt/module/hadoop-2.7.2

export PATH=$PATH:$HADOOP_HOME/bin

export PATH=$PATH:$HADOOP_HOME/sbin                 

(3)保存后退出:

:wq

       (4)让修改后的文件生效:

root@ hadoop101 hadoop-2.7.2]# source /etc/profile

       (5)重启(如果hadoop命令不能用再重启): 

root@ hadoop101 hadoop-2.7.2]# sync

              root@ hadoop101 hadoop-2.7.2]# reboot

配置ssh

(1)基本语法

ssh 另一台电脑的ip地址

(2)ssh连接时出现Host key verification failed的解决方法

[root@hadoop2 opt]# ssh 192.168.1.103

The authenticity of host '192.168.1.103 (192.168.1.103)' can't be established.

RSA key fingerprint is cf:1e:de:d7:d0:4c:2d:98:60:b4:fd:ae:b1:2d:ad:06.

Are you sure you want to continue connecting (yes/no)?

Host key verification failed.

(3)解决方案如下:直接输入yes

2)无密钥配置

(1)进入到我的home目录

              cd  ~/.ssh

(2)生成公钥和私钥:

ssh-keygen -t rsa

然后敲(三个回车),就会生成两个文件id_rsa(私钥)、id_rsa.pub(公钥)

(3)将公钥拷贝到要免密登录的目标机器上

ssh-copy-id 192.168.1.102

3).ssh文件夹下的文件功能解释

       (1)~/.ssh/known_hosts      :记录ssh访问过计算机的公钥(public key)

       (2)id_rsa    :生成的私钥

       (3)id_rsa.pub     :生成的公钥

       (4)authorized_keys    :存放授权过得无秘登录服务器公钥

配置集群

1)集群部署规划

 

Hadoop102

hadoop103

hadoop104

HDFS

 

NameNode

DataNode

 

DataNode

SecondaryNameNode

DataNode

YARN

 

NodeManager

ResourceManager

NodeManager

 

NodeManager

2)配置文件

       (1)core-site.xml

<!-- 指定HDFS中NameNode的地址 -->

       <property>

              <name>fs.defaultFS</name>

        <value>hdfs://hadoop102:9000</value>

       </property>

       <!-- 指定hadoop运行时产生文件的存储目录 -->

       <property>

              <name>hadoop.tmp.dir</name>

              <value>/opt/module/hadoop-2.7.2/data/tmp</value>

       </property>

       (2)Hdfs

              hadoop-env.sh

export JAVA_HOME=/opt/module/jdk1.7.0_79

              hdfs-site.xml

<configuration>    

       <property>

              <name>dfs.replication</name>

              <value>3</value>

       </property>

       <property>

        <name>dfs.namenode.secondary.http-address</name>

        <value>hadoop104:50090</value>

    </property>

</configuration>

              slaves

hadoop102

hadoop103

hadoop104

       (3)yarn

              yarn-env.sh

export JAVA_HOME=/opt/module/jdk1.7.0_79

              yarn-site.xml

<configuration>

<!-- Site specific YARN configuration properties -->

<!-- reducer获取数据的方式 -->

    <property>

        <name>yarn.nodemanager.aux-services</name>

        <value>mapreduce_shuffle</value>

    </property>

 

<!-- 指定YARNResourceManager的地址 -->

       <property>

              <name>yarn.resourcemanager.hostname</name>

              <value>hadoop103</value>

       </property>

       </configuration>

       (4)mapreduce

              mapred-env.sh

export JAVA_HOME=/opt/module/jdk1.7.0_79

              mapred-site.xml

<configuration>

<!-- 指定mr运行在yarn -->

       <property>

              <name>mapreduce.framework.name</name>

              <value>yarn</value>

       </property>

       </configuration>

3)在集群上分发以上所有文件

cd /opt/module/hadoop-2.7.2/etc/hadoop

scp /opt/module/hadoop-2.7.2/etc/hadoop/core-site.xml  root@hadoop102:/opt/module/hadoop-2.7.2/etc/hadoop/

scp /opt/module/hadoop-2.7.2/etc/hadoop/yarn-site.xml root@hadoop102:/opt/module/hadoop-2.7.2/etc/hadoop/

scp /opt/module/hadoop-2.7.2/etc/hadoop/slaves root@hadoop102:/opt/module/hadoop-2.7.2/etc/hadoop/

 集群启动及测试

1)启动集群

       (0)如果集群是第一次启动,需要格式化namenode

              [root@hadoop102 hadoop-2.7.2]# bin/hdfs namenode -format

1)启动HDFS

[root@hadoop102 hadoop-2.7.2]# sbin/start-dfs.sh

[root@hadoop102 hadoop-2.7.2]# jps

4166 NameNode

4482 Jps

4263 DataNode

 

[root@hadoop103 桌面]# jps

3218 DataNode

3288 Jps

[root@hadoop104 桌面]# jps

3221 DataNode

3283 SecondaryNameNode

3364 Jps

(2)启动yarn

sbin/start-yarn.sh

注意:NamenodeResourceManger如果不是同一台机器,不能在NameNode上启动 yarn,应该在ResouceManager所在的机器上启动yarn

2)集群基本测试

(1)上传文件到集群

       上传小文件

       bin/hdfs dfs -mkdir -p /user/local/tmp/conf

       bin/hdfs dfs -put etc/hadoop/*-site.xml /user/local/tmp/conf

       上传大文件

[root@hadoop102 hadoop-2.7.2]$ bin/hadoop fs -put /opt/software/hadoop-2.7.2.tar.gz  /user/local/input

(2)上传文件后查看文件存放在什么位置

       文件存储路径

       [root@hadoop102 subdir0]$ pwd

/opt/module/hadoop-2.7.2/data/tmp/dfs/data/current/BP-938951106-192.168.10.107-1495462844069/current/finalized/subdir0/subdir0

附录

Hadoop组成

1)Hadoop HDFS:一个高可靠、高吞吐量的分布式文件系统。

2)Hadoop MapReduce:一个分布式的离线并行计算框架。

3)Hadoop YARN:作业调度与集群资源管理的框架。

4)Hadoop Common:支持其他模块的工具模块。

HDFS架构概述

1)NameNode(nn):存储文件的元数据,如文件名,文件目录结构,文件属性(生成时间、副本数、文件权限),以及每个文件的块列表和块所在的DataNode等。

2)DataNode(dn):在本地文件系统存储文件块数据,以及块数据的校验和。

3)Secondary NameNode(2nn):用来监控HDFS状态的辅助后台程序,每隔一段时间获取HDFS元数据的快照。

YARN架构概述

1)ResourceManager(rm):处理客户端请求、启动/监控ApplicationMaster、监控NodeManager、资源分配与调度;

2)NodeManager(nm):单个节点上的资源管理、处理来自ResourceManager的命令、处理来自ApplicationMaster的命令;

3)ApplicationMaster:数据切分、为应用程序申请资源,并分配给内部任务、任务监控与容错。

4)Container:对任务运行环境的抽象,封装了CPU、内存等多维资源以及环境变量、启动命令等任务运行相关的信息。

MapReduce架构概述

MapReduce将计算过程分为两个阶段:Map和Reduce

1)Map阶段并行处理输入数据

2)Reduce阶段对Map结果进行汇总

大数据技术生态体系

 

图中涉及的技术名词解释如下:

1)Sqoop:sqoop是一款开源的工具,主要用于在Hadoop(Hive)与传统的数据库(mysql)间进行数据的传递,可以将一个关系型数据库(例如 : MySQL ,Oracle 等)中的数据导进到Hadoop的HDFS中,也可以将HDFS的数据导进到关系型数据库中。

2)Flume:Flume是Cloudera提供的一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统,Flume支持在日志系统中定制各类数据发送方,用于收集数据;同时,Flume提供对数据进行简单处理,并写到各种数据接受方(可定制)的能力。

3)Kafka:Kafka是一种高吞吐量的分布式发布订阅消息系统,有如下特性:

(1)通过O(1)的磁盘数据结构提供消息的持久化,这种结构对于即使数以TB的消息存储也能够保持长时间的稳定性能。

(2)高吞吐量:即使是非常普通的硬件Kafka也可以支持每秒数百万的消息

(3)支持通过Kafka服务器和消费机集群来分区消息。

(4)支持Hadoop并行数据加载。

4)Storm:Storm为分布式实时计算提供了一组通用原语,可被用于“流处理”之中,实时处理消息并更新数据库。这是管理队列及工作者集群的另一种方式。 Storm也可被用于“连续计算”(continuous computation),对数据流做连续查询,在计算时就将结果以流的形式输出给用户。

5)Spark:Spark是当前最流行的开源大数据内存计算框架。可以基于Hadoop上存储的大数据进行计算。

6)Oozie:Oozie是一个管理Hdoop作业(job)的工作流程调度管理系统。Oozie协调作业就是通过时间(频率)和有效数据触发当前的Oozie工作流程。

7)Hbase:HBase是一个分布式的、面向列的开源数据库。HBase不同于一般的关系数据库,它是一个适合于非结构化数据存储的数据库。

8)Hive:hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供简单的sql查询功能,可以将sql语句转换为MapReduce任务进行运行。 其优点是学习成本低,可以通过类SQL语句快速实现简单的MapReduce统计,不必开发专门的MapReduce应用,十分适合数据仓库的统计分析。

10)R语言:R是用于统计分析、绘图的语言和操作环境。R是属于GNU系统的一个自由、免费、源代码开放的软件,它是一个用于统计计算和统计制图的优秀工具。

11)Mahout:

Apache Mahout是个可扩展的机器学习和数据挖掘库,当前Mahout支持主要的4个用例:

推荐挖掘:搜集用户动作并以此给用户推荐可能喜欢的事物。

聚集:收集文件并进行相关文件分组。

分类:从现有的分类文档中学习,寻找文档中的相似特征,并为无标签的文档进行正确的归类。

频繁项集挖掘:将一组项分组,并识别哪些个别项会经常一起出现。

12)ZooKeeper:Zookeeper是Google的Chubby一个开源的实现。它是一个针对大型分布式系统的可靠协调系统,提供的功能包括:配置维护、名字服务、 分布式同步、组服务等。ZooKeeper的目标就是封装好复杂易出错的关键服务,将简单易用的接口和性能高效、功能稳定的系统提供给用户。

 

 

  • 22
    点赞
  • 183
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值