大数据的存储和分析——hadoop

文章目录

    • 一、hadoop的简介
    • 二、hadoop的单机构建
        • 1.环境准备
        • 2.服务配置
    • 三、hadoop的集群构建
        • 1.三台机器构成一个集群
        • 2.给集群添加一个新节点
        • 3.使一个节点退役

一、hadoop的简介

Hadoop是一个由Apache基金会所开发的分布式系统基础架构。
用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。
Hadoop实现了一个分布式文件系统(Hadoop Distributed File System),简称HDFS。HDFS有高容错性的特点,并且设计用来部署在低廉的(low-cost)硬件上;而且它提供高吞吐量(high throughput)来访问应用程序的数据,适合那些有着超大数据集(large data set)的应用程序。HDFS放宽了(relax)POSIX的要求,可以以流的形式访问(streaming access)文件系统中的数据。
Hadoop的框架最核心的设计就是:HDFS和MapReduce。HDFS为海量的数据提供了存储,而MapReduce则为海量的数据提供了计算。

二、hadoop的单机构建

1.环境准备

官网说明:

http://hadoop.apache.org/docs/r3.0.3/hadoop-project-dist/hadoop-common/SingleCluster.html

需要获取两个安装包,hadoop及其运行所需的jdk环境
本机使用的版本是hadoop-3.0.3.tar.gz和jdk-8u181-linux-x64.tar.gz

useradd -u 1000 hadoop		
##让hadoop以普通用户的身份运行,之后的集群里每个节点上都应该有这个用户,并且uid相同
echo redhat | passwd --stdin hadoop

将软件包移动到普通用户的家目录下,以普通用户的身份解压操作
大数据的存储和分析——hadoop_第1张图片

2.服务配置

首先配置java环境(注意是在普通用户下操作)
vim ~/.bash_profile			##把java命令添加到环境变量里
source ~/.bash_profile

大数据的存储和分析——hadoop_第2张图片

在hadoop的环境变量里添加java路径
vim hadoop/etc/hadoop/hadoop-env.sh

在这里插入图片描述
建立一个input目录
大数据的存储和分析——hadoop_第3张图片
执行命令输出output

bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-\
3.0.3.jar grep input/ output 'dfs[a-z.]+'

大数据的存储和分析——hadoop_第4张图片
大数据的存储和分析——hadoop_第5张图片

修改配置文件,把本机加入hadoop
cd /home/hadoop/hadoop/etc/hadoop
vim core-site.xml

大数据的存储和分析——hadoop_第6张图片

vim hdfs-site.xml

大数据的存储和分析——hadoop_第7张图片

vim workers
ssh-keygen		##与本机做好免密
ssh-copy-id localhost

在这里插入图片描述

格式化
/home/hadoop/hadoop
bin/hdfs namenode -format

大数据的存储和分析——hadoop_第8张图片

##开启hdfs
sbin/start-dfs.sh
jps					##查看正在运行的java进程

大数据的存储和分析——hadoop_第9张图片

浏览器访问172.25.20.1:9870测试,并尝试给节点上传数据

大数据的存储和分析——hadoop_第10张图片
大数据的存储和分析——hadoop_第11张图片
大数据的存储和分析——hadoop_第12张图片

三、hadoop的集群构建

1.三台机器构成一个集群

首先在三台主机上安装nfs服务,并且把server2和server3上也创建hadoop这个普通用户
##三个节点上都要做的操作
useradd -u 1000 hadoop		##server2和server3上都操作
echo redhat | passwd --stdin hadoop
yum install nfs-utils -y
systemctl start rpcbind		##不开启的话无法共享数据

server1上的配置:
修改nfs的配置文件,把hadoop的家目录共享出去

vim /etc/exports
systemctl start nfs

大数据的存储和分析——hadoop_第13张图片
server2的配置:
把server1共享的家目录挂载到本地
大数据的存储和分析——hadoop_第14张图片
server3的配置与server2相同:
大数据的存储和分析——hadoop_第15张图片
server1配置文件的修改:

sbin/stop-dfs.sh		##添加节点时先停掉dfs服务
cd etc/hadoop/
vim workers				##把本机换成另外两个节点的ip

大数据的存储和分析——hadoop_第16张图片

vim hdfs-site.xml
/home/hadoop/hadoop/sbin/start-dfs.sh		##开启dfs服务

大数据的存储和分析——hadoop_第17张图片
大数据的存储和分析——hadoop_第18张图片
大数据的存储和分析——hadoop_第19张图片
大数据的存储和分析——hadoop_第20张图片
在浏览器上可以看到我们加入的节点状态
在这里插入图片描述
大数据的存储和分析——hadoop_第21张图片
给集群中上传数据,看数据在两个数据节点上怎么保存

bin/hdfs dfs -put LICENSE.txt
##如果上传不成功且报错如下,那要解除安全模式
bin/hdfs dfsadmin -safemode leave
bin/hdfs dfs -put LICENSE.txt	##解除安全模式后再次上传

大数据的存储和分析——hadoop_第22张图片
大数据的存储和分析——hadoop_第23张图片

2.给集群添加一个新节点

新加入节点server4的配置:

yum install nfs-utils -y		##与server2,3相同
systemctl start rpcbind
showmount -e 172.25.20.1
useradd -u 1000 hadoop
echo redhat | passwd --stdin hadoop 
mount 172.25.20.1:/home/hadoop/ /home/hadoop/

大数据的存储和分析——hadoop_第24张图片

su - hadoop
cd /home/hadoop/hadoop/etc/hadoop
vim workers			#把新节点的ip追加进去
/home/hadoop/hadoop/bin/hdfs --daemon start datanode	##把自己加载成datanode

大数据的存储和分析——hadoop_第25张图片
在浏览器上查看server4是否添加
在这里插入图片描述

3.使一个节点退役

为了和添加的节点区分,我们让server3退役
首先在server1上进行配置:
在对应的路径中把要删除的节点ip或主机名写入文件
大数据的存储和分析——hadoop_第26张图片
编辑workers文件和dfs.hosts文件,两个文件的内容相同,将要留下的所有data node节点写入。
大数据的存储和分析——hadoop_第27张图片
按照官网的说明,编辑配置文件hdfs-site.xml,正确的写入两个文件的路径。

vim hdfs-site.xml

在这里插入图片描述
大数据的存储和分析——hadoop_第28张图片
执行下面的命令 进行刷新
在这里插入图片描述
刷新成功后在浏览器中查看,可以看到server3的状态为Decommission正在退役。
在被去除的节点上面停止datanode。bin/hdfs --daemon stop datanode
等状态变成Decommissioned后就可以关闭这个节点了,可在要移除的节点上运行相应的关闭命令
几分钟后,节点将从Decommissioned进入Dead状态。
然后再在浏览器中查看。server3节点则被移除。(但是我暂未成功)

你可能感兴趣的:(实战)