开始学习Hadoop
1、什么是hadoop
hadoop中有3个核心组件:
分布式文件系统:HDFS —— 实现将文件分布式存储在很多的服务器上
分布式运算编程框架:MAPREDUCE —— 实现在很多机器上分布式并行运算
分布式资源调度平台:YARN —— 帮用户调度大量的mapreduce程序,并合理分配运算资源
2.hdfs整体运行机制
hdfs:分布式文件系统
hdfs有着文件系统共同的特征:
1、有目录结构,顶层目录是: /
2、系统中存放的就是文件
3、系统可以提供对文件的:创建、删除、修改、查看、移动等功能
hdfs跟普通的单机文件系统有区别:
1、单机文件系统中存放的文件,是在一台机器的操作系统中
2、hdfs的文件系统会横跨N多的机器
3、单机文件系统中存放的文件,是在一台机器的磁盘上
4、hdfs文件系统中存放的文件,是落在n多机器的本地单机文件系统中(hdfs是一个基于linux本地文件系统之上的文件系统)
hdfs的工作机制:
1、客户把一个文件存入hdfs,其实hdfs会把这个文件切块后,分散存储在N台linux机器系统中(负责存储文件块的角色:data node)<准确来说:切块的行为是由客户端决定的>
2、一旦文件被切块存储,那么,hdfs中就必须有一个机制,来记录用户的每一个文件的切块信息,及每一块的具体存储机器(负责记录块信息的角色是:name node)
3、为了保证数据的安全性,hdfs可以将每一个文件块在集群中存放多个副本(到底存几个副本,是由当时存入该文件的客户端指定的)
综述:一个hdfs系统,由一台运行了namenode的服务器,和N台运行了datanode的服务器组成!
3.搭建hdfs分布式集群
这一部分是多台在虚拟机上进行操作,有很多细节需要注意到,简单来说有这几部分:
1.准备n台linux服务器
2.修改各台及其的主机名和ip地址
3.配置linux服务器的基础软件环境
关闭防火墙
安装jdk
集群内主机的域名映射配置
4.安装hdfs集群
上传安装包,配置环境变量
修改配置文件(hadoop-env.sh core-site.xml hdfs-site.xml)
5.启动HDFS
初始化name的的元数据目录
启动namenode进程
端口访问
4.遇到的问题
1.Xshell连接不上Linux服务,同时在服务器内部运行Shell无法查询出ip,通过重启网卡(service network restart)解决
2.运行Hadoop命令出现警告:
Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
需要升级gilbc,用到的命令依次为:
wget http://ftp.gnu.org/gnu/glibc/glibc-2.17.tar.gz
tar -xf glibc-2.17.tar.gz
cd glibc-2.17
mkdir build; cd build
../configure --prefix=/usr --disable-profile --enable-add-ons --with-headers=/usr/include --with-binutils=/usr/bin
make -j 8
make install