Centos7 +JDk1.8 + Hadoop2.7.7集群安装

hadoop中有3个核心组件:
分布式文件系统:HDFS —— 实现将文件分布式存储在很多的服务器上
分布式运算编程框架:MAPREDUCE —— 实现在很多机器上分布式并行运算
分布式资源调度平台:YARN —— 帮用户调度大量的mapreduce程序,并合理分配运算资源

hdfs

工作机制:
1、客户把一个文件存入hdfs,其实hdfs会把这个文件切块后,分散存储在N台linux机器系统中(负责存储文件块的角色:data node)<准确来说:切块的行为是由客户端决定的>
2、一旦文件被切块存储,那么,hdfs中就必须有一个机制,来记录用户的每一个文件的切块信息,及每一块的具体存储机器(负责记录块信息的角色是:name node
3、为了保证数据的安全性,hdfs可以将每一个文件块在集群中存放多个副本(到底存几个副本,是由当时存入该文件的客户端指定的)
综述:一个hdfs系统,由一台运行了namenode的服务器,和N台运行了datanode的服务器组成!

搭建hdfs分布式集群:
一.首先需要准备N台linux服务器,或者用虚拟机
先准备4台虚拟机,一个namenode节点,三台datanode节点

二.进行虚拟机相关的配置:详细步骤请参考我得另外一篇博客:

https://blog.csdn.net/weixin_43866709/article/details/87977822

三.安装JDK1.8(hadoop体系中的各软件都是java开发的)

  1. 利用alt+p 打开sftp窗口,然后将jdk压缩包拖入sftp窗口
  2. 然后在linux中将jdk压缩包解压到/root/apps 下
  3. 配置环境变量:JAVA_HOME PATH
    vi ~/.bashrc 在文件的最后,加入:
export JAVA_HOME=/root/apps/jdk1.8.0_60
export PATH=$PATH:$JAVA_HOME/bin
  1. 修改完成后,记得 source ~/.bashrc使配置生效
  2. 检验:在任意目录下输入命令: java -version 看是否成功执行
  3. 将安装好的jdk目录用scp命令拷贝到其他机器,如果机器很多,可以利用脚本,请参考博客:
    https://blog.csdn.net/weixin_43866709/article/details/88382027
  4. 将~/.bashrc配置文件也用scp命令拷贝到其他机器并分别执行source命令

四.安装hdfs集群
1、上传hadoop安装包到hdp-01,解压到/root/apps 目录下
2.修改配置文件:

核心配置参数:

  1. 指定hadoop的默认文件系统为:hdfs
  2. 指定hdfs的namenode节点为哪台机器
  3. 指定namenode软件存储元数据的本地目录
  4. 指定datanode软件存放文件块的本地目录

hadoop的配置文件在:/root/apps/hadoop安装目录/etc/hadoop/

  1. 修改hadoop-env.sh
export JAVA_HOME=/root/apps/jdk1.8.0_60
  1. 修改core-site.xml
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://hdp-01:9000</value>
</property>
</configuration>

  1. 修改hdfs-site.xml
<configuration>
<property>
<name>dfs.namenode.name.dir</name>
<value>/root/hdpdata/name/</value>         //保存namenode 元数据的目录
</property>

<property>
<name>dfs.datanode.data.dir</name>
<value>/root/hdpdata/data</value>           //保存datanode元数据的目录
</property>

<property>
<name>dfs.namenode.secondary.http-address</name>
<value>hdp-02:50090</value>
</property>

</configuration>

  1. 拷贝整个hadoop安装目录到其他机器
拷贝方法同JDK
  1. 启动HDFS
    所谓的启动HDFS,就是在对的机器上启动对的软件:
    要运行hadoop的命令,需要在linux环境中配置HADOOP_HOME和PATH环境变量
    vi ~/.bashrc
export JAVA_HOME=/root/apps/jdk1.8.0_60
export HADOOP_HOME=/root/apps/hadoop-2.7.7
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

首先,初始化namenode的元数据目录
要在hdp-01上执行hadoop的一个命令来初始化namenode的元数据存储目录

hadoop namenode -format

 创建一个全新的元数据存储目录
 生成记录元数据的文件fsimage
 生成集群的相关标识:如:集群id——clusterID

然后,启动namenode进程(在hdp-01上)

hadoop-daemon.sh start namenode

启动完后,首先用jps查看一下namenode的进程是否存在
然后,在windows中用浏览器访问namenode提供的web端口:50070

http://L1:50070

然后,启动众datanode们(在任意地方)

hadoop-daemon.sh start datanode
  1. 用自动批量启动脚本来启动HDFS
  1. 先配置hdp-01到集群中所有机器(包含自己)的免密登陆,请参考博客:https://blog.csdn.net/weixin_43866709/article/details/87982019
  2. 配完免密后,可以执行一次 ssh 0.0.0.0
  3. 修改hadoop安装目录中/etc/hadoop/slaves(把需要启动datanode进程的节点列入)
L1
L2
L3
L4
在hdp-01上用脚本:start-dfs.sh 来自动启动整个集群
如果要停止,则用脚本:stop-dfs.sh

五.hdfs的客户端操作
hdfs的客户端有多种形式:
1、网页形式
2、命令行形式
3、客户端在哪里运行,没有约束,只要运行客户端的机器能够跟hdfs集群联网
文件的切块大小和存储的副本数量,都是由客户端决定!
所谓的由客户端决定,是通过配置参数来定的
hdfs的客户端会读以下两个参数,来决定切块大小、副本数量:
切块大小的参数: dfs.blocksize
副本数量的参数: dfs.replication

上面两个参数应该配置在客户端机器的hadoop目录中的hdfs-site.xml中配置

<property>
<name>dfs.blocksize</name>
<value>64m</value>
</property>

<property>
<name>dfs.replication</name>
<value>2</value>
</property>

yarn

安装yarn集群
yarn集群中有两个角色:
主节点:Resource Manager 1台
从节点:Node Manager N台

Resource Manager一般安装在一台专门的机器上
Node Manager应该与HDFS中的data node重叠在一起

修改配置文件:yarn-site.xml

<property>
<name>yarn.resourcemanager.hostname</name>
<value>hdp-04</value>
</property>

<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>

然后复制到每一台机器上

用脚本启动yarn集群:

sbin/start-yarn.sh

停止:

sbin/stop-yarn.sh

启动完成后,可以在windows上用浏览器访问resourcemanager的web端口:http://hdp-04:8088
看resource mananger是否认出了所有的node manager节点

至此就安装完成了。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值