hadoop的安装和介绍

1 大数据

1.1 大数据概念

大数据(big data),
IT行业术语,是指无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合,
是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产。

1.2 大数据的特征
Volume(大量)、
Velocity(高速)、
Variety(多样)、
Value(价值高、价值密度低)、
Veracity(真实性)。
1.3 大数据的单位:
bit byte KB MB GB TB PB EB
1.4 大数据的数据来源
业务系统数据库、日志、买数据接口|爬虫

2 Hadoop

2.1 Hadoop思想来源:Google
	Google的三大论文, 大数据的三驾马车
	文件系统	GFS
	计算框架	MapReduce
	大表格		bigTable
2.2 Hadoop发展
1. hadoop之父:	Doung Cutting
2. Doung等人使用2年业余时间实现HDFS和MapReduce
3. GFS与HDFS
	Google								Hadoop
	GFS(google file system)			   HDFS
	Mapreduce							MapReduce
2.3 Hadoop的介绍

官网: http://hadoop.apache.org/

开源的、可靠的分布式计算框架。

2.4 Hadoop的发行版本
  • Apache Hadoop
  • CDH Hadoop
  • DHP Hadoop

3 Hadoop的重要模块

  • Hadoop Common:支持其他Hadoop模块;包含序列化接口,协议,等等。
  • Hadoop分布式文件系统(HDFS):分布式文件系统。存储
  • Hadoop YARN:用于作业调度和群集资源管理的框架。任务调度,资源管理
  • Hadoop MapReduce:基于YARN的系统,用于并行处理大数据集。计算

4 HDFS架构

  • 主从(master/slaves)架构
nameNode 
	管理元数据(描述数据的数据:存储主机、路径、副本数、数据大小。。。)、
	处理来自客户端读写数据的请求;
	是主节点;

dataNode
	管理具体的数据;

Client
	发起文件读写请求

SecondaryNameNode
	同步元数据
  • HDFS读写流程简述
HDFS写入请求:
client(客户端)向NameNode发出写数据请求。
请求成功后,写入一条记录,返回DataNode列表。
client按128MB(默认)切分文件,将block写入对应的DataNode。
( 注意这里,还有一些具体的细节。比如将一个block写入一个最近的Datanode,
该DataNode,再将block写给下一个存储该block副本的Datanode;
同时在写入的时候是以packet的形式,建立管线写入到DataNode中 )
写入完成后,client向NameNode发送完成信号。

HDFS读取流程:
client向NameNode发起读取请求,
NameNode查询元数据信息,
获得这个文件的数据块位置列表,并返回。
client就近选取datanode服务器,读取数据。

5 Yarn架构

主要进程

ResourceManager
    处理客户端请求
    启动/监控ApplicationMaster
    监控NodeManager
    资源分配与调度

NodeManager
    单个节点上的资源管理
    处理来自ResourceManager的命令
    处理来自Application Master的命令

Client

Application master
    数据切分
    为应用程序申请资源,并分配给内部任务
    任务监控与容错

Container
	对任务运行环境的抽象,
	封装了CPU、内存等多维资源
	以及环境变量、启动命令等任务运行相关的信息

向Yarn提交任务流程

1 Client向ResourceManager发出请求,提交任务。
2 ResourceManager 发送命令给NodeManager节点,以启动App master。
3 App master启动后,向ResourceManager申请资源。
4 App master向资源所在的Nodemanager发送命令,启动task任务,App master监控这些任务的情况。
5 当这些task执行结束,向app master进行反馈。
6 所有任务结束之后,app master向Resource Manager反馈; 回收本次任务的资源。

6 MapReduce

分布式并行计算框架

7 Hadoop运行环境

  • 单机模式

    不需要启动任何守护进程,所有程序运行在单个JVM中,一般用于开发

  • 伪分布

    只有一个节点,所有守护进程运行在一个节点上。 用于开发,测试

  • 完全分布

    有多个节点,一般用于测试,生产。

8 伪分布的搭建

8.1 Linux网络配置

1.修改主机名【不能数字开头,不能特殊字符】

# vi /etc/hostname 

2.修改ip

# vi /etc/sysconfig/network-scripts/ifcfg-ens33

3.主机映射

# vi /etc/hosts
192.168.47.81 linux01
windows下主机映射
192.168.47.81 linux01

8.2 jdk安装

使用普通用户管理集群

创建两个目录

# mkdir /opt/software /opt/modules

​ /opt/software 存放软件包(*.tag.gz)

​ /opt/modules 安装文件位置

修改权限

# chown -R hadoop:hadoop /opt/modules /opt/software

安装jdk

# rpm -qa | grep jdk
# rpm -e jdkxxxxxxxxx --nodeps      //不验证依赖进行卸载

$ tar -zxf /opt/software/jdk-8u112-linux-x64.tar.gz -C /opt/modules/

配置环境变量

# vim /etc/profile
添加内容如下:
#JAVA_HOME
export JAVA_HOME=/opt/modules/jdk1.8.0_112
export PATH=$PATH:$JAVA_HOME/bin

使配置生效

# source /etc/profile

8.3 Linux 防火墙及安全子系统

# systemctl stop firewalld     ##关闭防火墙
# systemctl disable firewalld   ##不随机启动
# systemctl status firewalld   查看防火墙状态 
# vi /etc/sysconfig/selinux
SELINUX=disabled

# reboot

8.4 配置Hadoop

${HADOOP_HOME} 表示hadoop的安装目录

解压hadoop-2.x.tar.gz
# 注意用户,权限问题
$ tar -zxvf /opt/software/hadoop-2.6.0-cdh5.14.2.tar.gz -C /opt/modules/
1.配置hadoop的java环境支持

修改etc/hadoop目录下的

hadoop-env.sh ,mapred-env.sh,yarn-env.sh

在这3个文件中配置

export JAVA_HOME=/opt/modules/jdk1.8.0_112
2.与hdfs相关的配置

配置core-site.xml

<!--  NameNode地址,8020是指定进程8020,访问入口 -->
<property>
    <name>fs.defaultFS</name>
    <value>hdfs://linux01:8020</value>
</property>

<!--  hadoop在运行时产生的文件,元数据在本地的存放目录 -->
<property>
    <name>hadoop.tmp.dir</name>
    <value>/opt/modules/hadoop-2.6.0-cdh5.14.2/data</value>
</property>

hdfs-site.xml

<!--  存放到hdfs上的文件的副本数,伪分布式配置为1 -->
<property>
	<name>dfs.replication</name>
	<value>1</value>
</property>
3 格式化namenode

在${HADOOP_HOME}目录下:

$ bin/hdfs namenode -format     

只格式化一遍,不要重复格式化

4 启动hdfs守护进程
$ sbin/hadoop-daemon.sh start namenode  //启动namenode进程
$ sbin/hadoop-daemon.sh start datanode    //启动datanode

查看守护进程

$  jps
3097 Jps
2931 NameNode
3023 DataNode
5 web访问界面

http://主机名:50070/

6 HDFS文件系统常用命令
$ bin/hdfs dfs   //可以查看所有的dfs相关的操作指令
$ bin/hdfs dfs -ls /  
$ bin/hdfs dfs -mkdir -p /input/test
$ bin/hdfs dfs  -rmdir /input/test
$ bin/hdfs dfs  -put /opt/software/jdk-7u67-linux-x64.tar.gz /input/test
7 配置YARN
a 配置 etc/hadoop/yarn-site.xml
<!-- 指定ResorceManager所在服务器的主机名 -->
<property>
	<name>yarn.resourcemanager.hostname</name>
	<value>[hostname]</value>
</property>

<!-- 指明在执行MapReduce的时候使用shuffle -->
<property>
	<name>yarn.nodemanager.aux-services</name>
	<value>mapreduce_shuffle</value>
</property>

<property>
	<name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
	<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>

复制并重名模板文件

$ cp etc/hadoop/mapred-site.xml.template etc/hadoop/mapred-site.xml
b 配置etc/hadoop/mapred-site.xml
<!-- 指定MapReduce基于Yarn来运行 -->
<property>
	<name>mapreduce.framework.name</name>
	<value>yarn</value>
</property>
8.启动hdfs yarn进程

重启hdfs

$ sbin/hadoop-daemon.sh start namenode
$ sbin/hadoop-daemon.sh start datanode
$ sbin/yarn-daemon.sh start resourcemanager
$ sbin/yarn-daemon.sh start nodemanager
9.检查守护进程
$ jps

4595 ResourceManager
4419 NameNode
4836 NodeManager
5896 Jps
4506 DataNode

Yarn的web访问: http://centos01:8088

10.向yarn提交mapreducer任务
1)计算圆周率
$ bin/yarn jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.6.0-cdh5.14.2.jar pi 5 100

2)wordcount词频统计

a.在用户主目录创建一个wordcount.txt

$ vi /home/user01/wordcount.txt
hadoop java
html java
linux hadoop
yarn hadoop

b.上传到hdfs的input目录下

$ bin/hdfs dfs -put ~/wordcoun.txt /input/

c.提交wordcount任务

$bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.5.0.jar  wordcount  /input /output
11 常见错误
1:主机名配置错误或者未配置主机名;
2:xml没有正确配置	SAXParserException
3:namenode重复格式化
4:修改配置参数,未保存
6: 再次执行wordcount会提示输出目录已存在
		org.apache.hadoop.mapred.FileAlreadyExistsException: Output directory 	hdfs://hadoop.beifeng.com:8020/output already exists
	 解决: 删除hdfs上的输出目录或者重新指定输出目录
7: unknowHostException  
检查主机映射
8:无法通过windows, 使用浏览器访问hdfs http://centos01:50070 ,防火墙,主机映射
12.配置日志聚合

修改 mapred-site.xml 追加配置

<!--  指定jobhistory服务的主机及RPC端口号  -->
<property>
	<name>mapreduce.jobhistory.address</name>
	<value>主机名:10020</value>
</property>

<!--  指定jobhistory服务的web访问的主机及RPC端口号  -->
<property>
	<name>mapreduce.jobhistory.webapp.address</name>
	<value>主机名:19888</value>
</property>

修改配置yarn-site.xml

<!--  启用日志聚合功能  -->
<property>
	<name>yarn.log-aggregation-enable</name>
	<value>true</value>
</property>

<!--  日志保存时间  -->
<property>
	<name>yarn.log-aggregation.retain-seconds</name>
	<value>86400</value>
</property>

12.停止所有进程重新启动,以便配置文件生效

1)停止进程

$ sbin/hadoop-daemon.sh stop namenode
$ sbin/hadoop-daemon.sh stop datanode
$ sbin/yarn-daemon.sh stop resourcemanager
$ sbin/yarn-daemon.sh stop nodemanager

2)启动进程

$ sbin/hadoop-daemon.sh start namenode
$ sbin/hadoop-daemon.sh start datanode
$ sbin/yarn-daemon.sh start resourcemanager
$ sbin/yarn-daemon.sh start nodemanager
启动历史服务
$ sbin/mr-jobhistory-daemon.sh start historyserver

3)查看守护进程

28904 ResourceManager

28724 NameNode

28808 DataNode

29152 NodeManager

29304 JobHistoryServer

30561 Jps

  1. web页面查看hadoop集群
查看hdfs的web界面
http://hadoop.beifeng.com:50070
查看yarn的web访问界面
http://hadoop.beifeng.com:8088
查看历史日志的web访问界面
http://hadoop.beifeng.com:19888
发布了42 篇原创文章 · 获赞 1 · 访问量 330
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 1024 设计师: 上身试试

分享到微信朋友圈

×

扫一扫,手机浏览