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

一、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

将软件包移动到普通用户的家目录下,以普通用户的身份解压操作
在这里插入图片描述

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

在这里插入图片描述

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

在这里插入图片描述
建立一个input目录
在这里插入图片描述
执行命令输出output

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

在这里插入图片描述
在这里插入图片描述

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

在这里插入图片描述

vim hdfs-site.xml

在这里插入图片描述

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

在这里插入图片描述

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

在这里插入图片描述

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

在这里插入图片描述

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

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

三、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

在这里插入图片描述
server2的配置:
把server1共享的家目录挂载到本地
在这里插入图片描述
server3的配置与server2相同:
在这里插入图片描述
server1配置文件的修改:

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

在这里插入图片描述

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

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在浏览器上可以看到我们加入的节点状态
在这里插入图片描述
在这里插入图片描述
给集群中上传数据,看数据在两个数据节点上怎么保存

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

在这里插入图片描述
在这里插入图片描述

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/

在这里插入图片描述

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

在这里插入图片描述
在浏览器上查看server4是否添加
在这里插入图片描述

3.使一个节点退役

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

vim hdfs-site.xml

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值