零基础搭建Hadoop分布式集群

本文详细介绍Hadoop分布式集群的搭建过程,包括集群环境配置、HDFS安装与启动、客户端操作命令等内容,适用于大规模数据处理场景。

Hadoop分布式集群搭建

0 基本介绍

在互联网技术发展到现今阶段,大量日常、工作等事务产生的数据都已经信息化,人类产生的数据量相比以前有了爆炸式的增长,以前的传统的数据处理技术已经无法胜任,需求催生技术,一套用来处理海量数据的软件工具应运而生,这就是大数据!

换个角度说,大数据是:
1、有海量的数据
2、有对海量数据进行挖掘的需求
3、有对海量数据进行挖掘的软件工具(hadoop、spark、storm、flink、tez、impala…)
电商推荐系统:基于海量的浏览行为、购物行为数据,进行大量的算法模型的运算,得出各类推荐结论,以供电商网站页面来为用户进行商品推荐

精准广告推送系统:基于海量的互联网用户的各类数据,统计分析,进行用户画像(得到用户的各种属性标签),然后可以为广告主进行有针对性的精准的广告投放

1 hdfs集群组成结构

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

在这里插入图片描述

2 安装分布式hdfs集群

2.1 首先需要准备N台linux服务器

先准备4台虚拟机:1个namenode节点 + 3 个datanode 节点

2.2 修改各台机器的主机名和ip地址

主机名:hdp-01 对应的ip地址:192.168.33.61
主机名:hdp-02 对应的ip地址:192.168.33.62
主机名:hdp-03 对应的ip地址:192.168.33.63
主机名:hdp-04 对应的ip地址:192.168.33.64

2.3 配置linux服务器的基础软件环境

2.3.1 防火墙

关闭防火墙:service iptables stop
关闭防火墙自启: chkconfig iptables off

2.3.2 安装jdk
  1. 然后在linux中将jdk压缩包解压到/root/apps 下(此目录不唯一,改为你安装的jdk目录即可)
  2. 配置环境变量:JAVA_HOME PATH
    vi /etc/profile 在文件的最后,加入:
export JAVA_HOME=/root/apps/jdk1.8.0_60
export PATH=$PATH:$JAVA_HOME/bin
  1. 修改完成后,记得 source /etc/profile使配置生效
  2. 检验:在任意目录下输入命令: java -version 看是否成功执行
  3. 将安装好的jdk目录用scp命令拷贝到其他机器
  4. 将/etc/profile配置文件也用scp命令拷贝到其他机器并分别执行source命令
2.3.3 集群内主机的域名映射配置

在hdp-01上,vi /etc/hosts
在这里插入图片描述
然后,将hosts文件拷贝到集群中的所有其他机器上
scp /etc/hosts hdp-02:/etc/
scp /etc/hosts hdp-03:/etc/
scp /etc/hosts hdp-04:/etc/

注意:

如果在执行scp命令的时候,提示没有scp命令,则可以配置一个本地yum源来安装
1、先在虚拟机中配置cdrom为一个centos的安装镜像iso文件
2、在linux系统中将光驱挂在到文件系统中(某个目录)
3、mkdir /mnt/cdrom
4、mount -t iso9660 -o loop /dev/cdrom /mnt/cdrom
5、检验挂载是否成功: ls /mnt/cdrom
6、3、配置yum的仓库地址配置文件
7、yum的仓库地址配置文件目录: /etc/yum.repos.d
8、先将自带的仓库地址配置文件批量更名:
在这里插入图片描述
9、然后,拷贝一个出来进行修改
在这里插入图片描述
10、修改完配置文件后,再安装scp命令:
11、yum install openssh-clients -y

3 安装hdfs集群

3.1 上传hadoop安装包到hdp-01

3.2 修改配置文件

核心配置参数:

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

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

  1. 修改hadoop-env.sh
    这里的路径填上你安装java的路径
export JAVA_HOME=/root/apps/jdk1.8.0_60
  1. 修改core-site.xml
    这里的fs.defaultFS指HDFS默认地址,value中可以写主机名也可以写对应的ip地址
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://hdp-01:9000</value>
</property>
</configuration>
  1. 修改hdfs-site.xml
    dfs.namenode.name.dir表示namenode数据存放目录,这个目录可以按自己的要求指定
    dfs.datanode.data.dir表示datanode数据存放目录,这个目录可以按自己的要求指定
<configuration>
<property>
<name>dfs.namenode.name.dir</name>
<value>/root/dfs/name</value>
</property>

<property>
<name>dfs.datanode.data.dir</name>
<value>/root/dfs/data</value>
</property>

</configuration>

  1. 拷贝整个hadoop安装目录到其他机器
    scp -r /root/apps/hadoop-2.8.0 hdp-02:/root/apps/
    scp -r /root/apps/hadoop-2.8.0 hdp-03:/root/apps/
    scp -r /root/apps/hadoop-2.8.0 hdp-04:/root/apps/

  2. 启动HDFS
    所谓的启动HDFS,就是在对的机器上启动对的软件
    提示: 要运行hadoop的命令,需要在linux环境中配置HADOOP_HOME和PATH环境变量
    vi /etc/profile

export JAVA_HOME=/root/apps/jdk1.8.0_60
export HADOOP_HOME=/root/apps/hadoop-2.8.0
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

首先,初始化namenode的元数据目录。要在hdp-01上执行hadoop的一个命令来初始化namenode的元数据存储目录
hadoop namenode -format
这个命令的作用:
a 创建一个全新的元数据存储目录
b 生成记录元数据的文件fsimage
c 生成集群的相关标识:如:集群id——clusterID

然后,启动namenode进程(在hdp-01上)
hadoop-daemon.sh start namenode
启动完后,首先用jps查看一下namenode的进程是否存在
然后,在windows中用浏览器访问namenode提供的web端口:50070
http://hdp-01:50070
然后,启动众datanode们(在任意地方)
hadoop-daemon.sh start datanode

  1. 用自动批量启动脚本来启动HDFS
    a 先配置hdp-01到集群中所有机器(包含自己)的免密登陆
    b 配完免密后,可以执行一次 ssh 0.0.0.0
    c 修改hadoop安装目录中/etc/hadoop/slaves(把需要启动datanode进程的节点列入)
    d 在hdp-01上用脚本:start-dfs.sh 来自动启动整个集群
    e 如果要停止,则用脚本:stop-dfs.sh

4 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

5 hdfs命令行客户端的常用操作命令

0、查看hdfs中的目录信息
hadoop fs -ls /hdfs路径

1、上传文件到hdfs中
hadoop fs -put /本地文件 /aaa
hadoop fs -copyFromLocal /本地文件 /hdfs路径 ## copyFromLocal等价于 put

hadoop fs -moveFromLocal /本地文件 /hdfs路径 ## 跟copyFromLocal的区别是:从本地移动到hdfs中

2、下载文件到客户端本地磁盘
hadoop fs -get /hdfs中的路径 /本地磁盘目录
hadoop fs -copyToLocal /hdfs中的路径 /本地磁盘路径 ## 跟get等价
hadoop fs -moveToLocal /hdfs路径 /本地路径 ## 从hdfs中移动到本地

3、在hdfs中创建文件夹
hadoop fs -mkdir -p /aaa/xxx

4、移动hdfs中的文件(更名)
hadoop fs -mv /hdfs的路径 /hdfs的另一个路径

5、删除hdfs中的文件或文件夹
hadoop fs -rm -r /aaa

6、修改文件的权限
hadoop fs -chown user:group /aaa
hadoop fs -chmod 700 /aaa

7、追加内容到已存在的文件
hadoop fs -appendToFile /本地文件 /hdfs中的文件

8、显示文本文件的内容
hadoop fs -cat /hdfs中的文件
hadoop fs -tail /hdfs中的文件

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值