Hadoop基础

大数据技术之Hadoop(入门

大数据概论

预科内容

Hadoop框架讨论大数据生态

n 名字起源

该项目的创建者,Doug Cutting解释Hadoop的得名 :“这个名字是我孩子给一个棕黄色的大象玩具命名的

n 项目起源

u HadoopApache Software Foundation 公司于 2005 年秋天作为Lucene的子项目Nutch的一部分正式引入。它受到最先由 Google Lab 开发的 Map/Reduce Google File System(GFS) 的启发

n GoogleHadoop的思想之源(Google在大数据方面的三篇论文)

u GFS       ====> HDFS

u Map-Reduce ====> MR

u BigTable    ====> HBase

 

Ø Hadoop的优势

高可靠性:

因为Hadoop假设计算元素和存储会出现故障,因为它维护多个工作数据副本,在出现故障时可以对失败的节点重新分布处理。

高扩展性:

在集群间分配任务数据,可方便的扩展数以千计的节点。

高效性:

在MapReduce的思想下,Hadoop是并行工作的,以加快任务处理速度。

高容错性:

自动保存多份副本数据,并且能够自动将失败的任务重新分配。

Ø Hadoop组成

 

 

n Hadoop HDFSHadoop Distributed File System

一个高可靠、高吞吐量的分布式文件系统

n Hadoop MapReduce:

一个分布式的离线并行计算框架

n Hadoop YARN

l 作业调度与集群资源管理的框架。

n Hadoop Common:

l 支持其他模块工具模块ConfigurationRPC、序列化机制、日志操作)。

 

Ø HDFS架构概述

Ø YARN架构概述

ResourceManager(rm)

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

NodeManager(nm)

单个节点上的资源管理、处理来自ResourceManager的命令、处理来自ApplicationMaster的命令

ApplicationMaster

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

Container

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

Ø MapReduce架构概述

  • MapReduce计算过程分为两个阶段:MapReduce

n Map阶段并行处理输入数据

n Reduce阶段对Map结果进行汇总

Hadoop运行环境搭建

环境配置

Ø 关闭防火墙

n 关闭防火墙:systemctl stop firewalld.service

n 禁用防火墙:systemctl disable firewalld.service

n 查看防火墙:systemctl status firewalld.service

 

关闭Selinuxvi /etc/selinux /config

SELINUX=enforcing改为SELINUX=disabled

 

Ø 修改IP

善用Tab

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

l BOOTPROTO=static

l ONBOOT=yes

l IPADDR=192.168.X.51

l GATEWAY=192.168.X.2

l DNS1=8.8.8.8

l DNS2=8.8.4.4

l NETMASK=255.255.255.0

 

n vi /etc/resolv.conf

l nameserver 8.8.8.8

l nameserver 8.8.4.4

重启网卡:servie network restart

Ø 修改主机名

n hostnamectl set-hostname 主机名

Ø IP和主机名关系映射

n vi /etc/hosts

192.168.1.51 bigdata111

192.168.1.52 bigdata112

192.168.1.53 bigdata113

 

windowsC:\Windows\System32\drivers\etc路径下找到hosts并添加

192.168.1.51 bigdata111

192.168.1.52 bigdata112

192.168.1.53 bigdata113

 

Ø 连接Secure CRT & Xshell

输入IP、用户名和密码

 

Ø opt目录下创建文件(此步可选)

创建itstar用户

l adduser itstar

l passwd itstar

设置itstar用户具有root权限

l vi /etc/sudoers 92行 找到root    ALL=(ALL)       ALL

l 复制一行:itstar ALL=(ALL)       ALL

 

Ø 安装jdk

卸载现有jdk

1查询是否安装java软件:

 rpm -qa|grep java

2如果安装版本低于1.7卸载该jdk:

 rpm -e 软件名字

/opt目录下创建两个子文件

mkdir /opt/module /opt/software

n 解压jdk/opt/module目录

tar -zxvf jdk-8u144-linux-x64.tar.gz -C /opt/module/

配置jdk环境变量

vi /etc/profile

export JAVA_HOME=/opt/module/jdk1.8.0_144

export PATH=$PATH:$JAVA_HOME/bin

source /etc/profile

n 测试jdk安装成功

l java -version

l java version "1.8.0_144"

Hadoop运行模式

/完全分布式部署Hadoop

SSH密码登录

n 生成公钥和私钥:ssh-keygen -t rsa

然后(三个回车),就会生成两个文件id_rsa(私钥)、id_rsa.pub(公钥)

n 将公钥拷贝到要免密登录的目标机器上

u ssh-copy-id 主机名1

u ssh-copy-id 主机名2

u ssh-copy-id 主机名3

注:在另外两台机器上分别执行,共执行9遍

.ssh文件夹下的文件功能解释

1~/.ssh/known_hosts :记录ssh访问过计算机的公钥(public key)

2id_rsa :生成的私钥

3id_rsa.pub :生成的公钥

4authorized_keys :存放授权过得无秘登录服务器公钥

配置集群(表格版)

1) 集群部署规划:

 

bigdata111 

bigdata112

bigdata113

HDFS

 

NameNode

SecondaryNameNode

DataNode

 

 

DataNode

 

 

DataNode

YARN

ResourceManager

NodeManager

 

NodeManager

 

NodeManager

2) 配置文件:

文件

配置

core-site.xml

<!-- 指定HDFSNameNode的地址 -->

<property>

<name>fs.defaultFS</name>

        <value>hdfs://主机名1:9000</value>

</property>

 

<!-- 指定hadoop运行时产生文件的存储目录 -->

<property>

<name>hadoop.tmp.dir</name>

<value>/opt/module/hadoop-2.X.X/data/tmp</value>

</property>

hdfs-site.xml

    <!--数据冗余数-->

<property>

<name>dfs.replication</name>

<value>3</value>

</property>

    <!--secondary的地址-->

<property>

        <name>dfs.namenode.secondary.http-address</name>

        <value>主机名1:50090</value>

</property>

<!--关闭权限-->

<property>

     <name>dfs.permissions</name>

     <value>false</value>

 </property>

yarn-site.xml

<!-- reducer获取数据的方式 -->

<property>

 <name>yarn.nodemanager.aux-services</name>

 <value>mapreduce_shuffle</value>

</property>

 

<!-- 指定YARNResourceManager的地址 -->

<property>

<name>yarn.resourcemanager.hostname</name>

<value>主机名1</value>

</property>

     <!-- 日志聚集功能使能 -->

<property>

<name>yarn.log-aggregation-enable</name>

<value>true</value>

</property>

<!-- 日志保留时间设置7() -->

<property>

<name>yarn.log-aggregation.retain-seconds</name>

<value>604800</value>

</property>

mapred-site.xml

<!-- 指定mr运行在yarn-->

<property>

<name>mapreduce.framework.name</name>

<value>yarn</value>

</property>

    <!--历史服务器的地址-->

<property>

    <name>mapreduce.jobhistory.address</name>

    <value>主机名1:10020</value>

</property>

    <!--历史服务器页面的地址-->

<property>

<name>mapreduce.jobhistory.webapp.address</name>

<value>主机名1:19888</value>

</property>

hadoop-env.sh、yarn-env.sh、mapred-env.sh(分别在这些的文件中添加下面的路径)

 

export JAVA_HOME=/opt/module/jdk1.8.0_144(注:是自己安装的路径)

slaves

bigdata111bigdata112bigdata113(自己设置的主机名)

格式化Namenode

hdfs namenode -format

启动集群得命令:

Namenode的主节点:sbin/start-dfs.sh

Yarn的主节点:sbin/stop-yarn.sh

 

注意:NamenodeResourceManger如果不是同一台机器,不能在NameNode上启动 yarn,应该在ResouceManager所在的机器上启动yarn

scp文件传输

实现两台远程机器之间的文件传输bigdata112主机文件拷贝到bigdata113主机上)

scp -r [文件] 用户@主机名:绝对路径

注:伪分布式是一台、完全分布是三台

完全分布式

步骤

1)克隆2客户机关闭防火墙、静态ip、主机名称)

2)安装jdk

3)配置环境变量

4)安装hadoop

5)配置环境变量

6)安装ssh

7)配置集群

8)启动测试集群

注:此配置直接使用虚拟机克隆伪分布式两台即可

Ø 自带官方wordcount案例

随意上传一个文本文件

上传命令:hadoop fs -put 文件名 /

执行命令:

hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.X.X.jar wordcount //

 

命令解析:

hadoop jar 路径的jar包 全类名 输入路径 输出路径

查看结果:

hadoop fs -cat 路径

Hadoop启动和停止命令:

以下命令都在$HADOOP_HOME/sbin下,如果直接使用,记得配置环境变量

启动/停止历史服务器

mr-jobhistory-daemon.sh start|stop historyserver

启动/停止总资源管理器

yarn-daemon.sh start|stop resourcemanager

启动/停止节点管理器

yarn-daemon.sh start|stop nodemanager

启动/停止 NN DN

start|stop-dfs.sh

启动/停止 RN NM

start|stop-yarn.sh

启动/停止 NNDNRNNM

start|stop-all.sh

启动/停止 NN

hadoop-daemon.sh start|stop namenode

启动/停止 DN

hadoop-daemon.sh start|stop datanode

posted @ 2019-07-26 02:11  jareny  阅读(242)  评论(0编辑  收藏  举报