Hadoop
一、背景
? hadoop最早起源于Nutch。Nutch的设计目标是构建一个大型的全网搜索引擎,包括网页抓取、索引、查询等功能,但随着抓取网页数量的增加,遇到了严重的可扩展性问题–如何解决数十亿网页的存储和索引问题。后面Nutch的开发人员实现了HDFS和MAPREDUCE,并从Nutch脱离成为独立项目Hadoop
二、简介
? hadoop是一整个大数据处理体系,利用服务器集群,根据用户自定义业务逻辑对海量数据进行分布式处理。最终,大数据的处理就是存储和计算。狭义上讲,它就是一个框架平台,它包括以下几个部分
-
HDFS:Hadoop分布式文件系统,可提供对应用数据的高吞吐量访问。 -
Hadoop YARN:作业调度和集群资源管理的框架。 -
Hadoop MapReduce:用于并行处理大型数据集的基于YARN的系统。 -
Hadoop Common:支持其他Hadoop模块的常用工具
Hadoop=HDFS(分布式?件系统)+MapReduce(分布式计算框架)+Yarn(资源协调框架)+Common模块
它还包括其他辅助框架,实际上指的是一个大数据生态圈,例如:
三、优缺点
3.1、优点
- 具有存储和处理数据能力的高可靠性
- 通过计算机集群分配数据完成存储和计算任务,这些集群可以方便的扩展,具有高扩展性。
- 能够在节点之间进行动态的移动数据,并保证各个节点的动态平衡,处理速度快,具有高效性
- 能自动保存数据的多个副本,并且能够将失败的任务重新分配,具有高容错性。
3.2、缺点
- 不适用于低延迟数据访问
- 不能高效存储大量小文件
- 不支持多用户写入并任意修改文件
四、其他组件说明
4.1、HDFS
Hadoop Distribute File System,?个?可靠、?吞吐量的分布式?件系统,
HDFS介绍
4.2、MapReduce
MapReduce计算 = Map阶段 + Reduce阶段
- Map阶段就是“分”的阶段,负责并行处理输入数据
- Reduce阶段就是“合”的阶段,对Map阶段结果进行汇总
Reduce介绍
4.3、Yarn
作业调度与集群资源管理的框架
4.4、Common
?持其他模块的?具模块(Configuration、队列、RPC、序列化机制、?志操作)
五、Hadoop单机伪集群搭建
5.1、创建hadoop用户
sudo useradd -m hadoop -s /bin/bash
sudo passwd hadoop
sudo adduser hadoop sudo
当设置完后,直接退出shell,然后登录hadoop用户
5.2、安装SSH、配置SSH无密码登录
单节点、集群都需要用到ssh登录,类似需要远程登录,然后运行命令
-
更新apt sudo apt-get update
-
安装 SSH server,有可能已经安装了 apt-get install openssh-server
-
命令登录本机 ssh localhost
-
登录过一次后会产生~/.ssh/文件夹信息,我们先退出刚才的登录到原来的窗口下 exit
-
进去该用户下的.ssh文件夹,利用 ssh-keygen 生成密钥,并将密钥加入到授权中
cd ~/.ssh/
ssh-keygen -t rsa
cat ./id_rsa.pub >> ./authorized_keys
-
测试shell无密码登录,不输入密码则代表成功 ssh localhost
5.3、安装Hadoop3
-
下载安装包,传到对应的目录下 #官网地址
https://www.apache.org/dyn/closer.cgi/hadoop/common/hadoop-3.1.3/hadoop-3.1.3.tar.gz
-
下载后需要授权目录权限 sudo chown -R hadoop {hadoop目录}
-
配置环境变量
vim /etc/profile
export HADOOP_HOME=hadoop的安装路径
export PATH=$HADOOP_HOME/bin
source /etc/profile
5.4、配置hdfs
-
修改配置文件 core-site.xml vim {hadoop目录}/etc/hadoop/core-site.xml
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>file:/home/hadoop/tmp</value>
</property>
</configuration>
-
修改配置文件 hdfs-site.xml <configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/home/hadoop/tmp/dfs</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/home/hadoop/tmp/data</value>
</property>
</configuration>
-
配置完成,执行 NameNode 的初始化 {hadoop目录}/bin/hdfs namenode -format
观察日志,有错误的信息很有可能是配置信息出错了
-
启动 {hadoop目录}/sbin/start-dfs.sh
启动完成后,通过jps来判断启动是否成功,若成功启动则会列出如下进程:NameNode、DataNode 和 SecondaryNameNode。
5.5、YARN配置
-
修改配置文件 mapred-site.xml <configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
-
yarn-site.xml <configuration>
<property>
<!--配置 NodeManager 上运行的附属服务。需要配置成 mapreduce_shuffle 后才可以在 Yarn 上运行 MapReduce 程序。-->
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>
-
运行 ./start-yarn.sh
5.5、命令
-
启动hfs {hadoop目录}/sbin/start-dfs.sh
-
停止hfs {hadoop目录}/sbin/stop-dfs.sh
-
初始化namenode {hadoop目录}/bin/hdfs namenode -format
-
启动yarn {hadoop目录}/sbin/start-yarn.sh
5.6、测试
启动完成后,通过jps来判断启动是否成功,若成功启动则会列出如下进程:NameNode、DataNode 和 SecondaryNameNode,ResourceManager,NodeManager
查看webUi,端口号为8088和9870
参考文献
# 大数据的说明
https://zhuanlan.zhihu.com/p/61613198
# 官方中文文档
https://hadoop.apache.org/docs/r1.0.4/cn/quickstart.html
# 总结介绍
https://zhuanlan.zhihu.com/p/320280591
# HDFS介绍
https://www.cnblogs.com/yangyquin/p/5017785.html
# hadoop安装
http://dblab.xmu.edu.cn/blog/2441-2/
|