hadoop安装 hadoop2.0介绍 1.伪分布式安装 2.分布式安装

  hadoop2.0 功能:

HDFS:hadoop的分布式文件系统

    运行架构:主从架构

    主:namenode 一个                    ---->管理       

      为解决单点故障添加助理        

      助理:secondarynamenode ---->帮助namenode备份数据 但是接替不了namenode的工作
    从:datanode   多个

      存储数据的 —>干活的

MAPREDUCE:应用程序 什么时候执行 什么时候启动(代码 数据 资源)

YARN:资源调度的为每一个应用程序 进行资源的分配

主从结构

  主:resourcemanager  ---->资源分配的老大 负责资源的分配

  从:nodemanager

  服从resourcemanager的安排 为应用程序提供资源


代码的结构上分:
  hdfs: 分布式文件系统的 NTFS
  MAPREDUCE 分布式计算的代码 QQ 微信
  YARN 资源调度的 操作系统
  common :工具包 通信的协议


搭建一个hadoop集群 启动的时候:
5个:
namenode
datanode
secondarynamenode
resourcemanager
nodemanager
安装:
版本:
3.1 最新版本
2.7
2.8
2.7.6
不选最新版本 也不选老版本 中间的一个稳定版本

1.伪分布式安装

1.安装准备
1)ip
2)主机名
3)映射
4)关闭防火墙和sellinux
vi /etc/sysconfig/selinux
SELINUX=disabled
linux的安全认证 高级运维人员会用到
5)为普通用户添加 sudoers
vi /etc/sudoers
hadoop ALL=(ALL) ALL
6) 切换到普通用户
7)做免密码登录
这里和用户有关的
ssh-keygen
ssh-copy-id model
测试:
ssh model
8)安装jdk

sudo rpm -e java-1.7.0-openjdk-1.7.0.99-2.6.5.1.el6.x86_64 --nodeps
sudo rpm -e java-1.6.0-openjdk-1.6.0.38-1.13.10.4.el6.x86_64 --nodeps

source /etc/profile
9)修改系统的启动级别 3
sudo vi /etc/inittab
注意:所有的安装过程 在你的普通用户下
安装hadoop
1)上传
2)解压
tar -xvzf hadoop-2.7.6.tar.gz
目录介绍:
bin/sbin 脚本命令文件
etc 配置文件
lib 依赖包
share 共享的文档集依赖包
3)修改配置文件
etc/hadoop/
1)hadoop-env.sh
将java的环境变量添加上
export JAVA_HOME=/home/hadoop/apps/jdk1.8.0_73
2)hdfs-site.xml hdfs的相关配置信息
hdfs的副本的个数
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
3)core-site.xml 公共的配置
hdfs的访问的url mysql连接的url mysql:jdbc://
hdfs(协议)://主机名:端口(内部通信端口)
<property>
<name>fs.defaultFS</name>
<value>hdfs://model:9000</value>
</property>
4)mapred-site.xml mapreduce的相关配置
cp mapred-site.xml.template mapred-site.xml
mapreduce任务进行资源调度的框架
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
5)yarn-site.xml
资源调度的 计算任务的类型
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
6)slaves 从节点的信息
一行一个主机名 不要有多余的空格 也不要有多余的换行符
model
4)配置hadoop的环境变量
export JAVA_HOME=/home/hadoop/apps/jdk1.8.0_73
export HADOOP_HOME=/home/hadoop/apps/hadoop-2.7.6
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
source /etc/profile
验证
hadoop version
5)格式化hdfs的文件系统
hadoop namenode -format
18/09/27 15:41:40 INFO common.Storage: Storage directory /tmp/hadoop-hadoop/dfs/name has been successfully formatted.
ps:格式化不成功 一致格式化 直到成功 一旦成功 不能重复执行
6)启动
先启动hdfs
start-dfs.sh
启动yarn
start-yarn.sh
验证:
hdfs:
http://namenode:50070
http://model:50070

http://resourcemanager:8088
http://model:8088

2.分布式安装

集群安装在多个节点上的
1)多个节点的要求:
多个节点的用户名(安装的时候使用的用户/普通用户)一定要统一
多个节点的安装目录统一
集群规划:集群中的各个节点安装的组件有哪些


        HDFS                  yarn                     
     namenode   datanode       secondarynamenode    rm    nm
hadoop01  namenode                resourcemanager
hadoop02         datanode       secondarynamenode nodemanager
hadoop03         datanode                   nodemanager
hadoop04      datanode                 nodemanager
搭建
准备:
1)ip

2)主机名

3)映射

4)关闭防火墙和sellinux

vi /etc/sysconfig/selinux
SELINUX=disabled
linux的安全认证 高级运维人员会用到

5)为普通用户添加 sudoers
vi /etc/sudoers
hadoop ALL=(ALL) ALL

6) 切换到普通用户

7)做免密码登录
一定切换到普通用户
~/.ssh
这里和用户有关的
4台机器之间 相互都需要做 免密码登录
ssh-keygen
ssh-copy-id hadoop01
ssh-copy-id hadoop02
ssh-copy-id hadoop03
ssh-copy-id hadoop04

测试:
ssh hadoop01
ssh hadoop02
ssh hadoop03
ssh hadoop04


source /etc/profile

8)修改系统的启动级别 3
sudo vi /etc/inittab

hadoop的安装:
先装在一个节点上 在进行远程发送
mkdir /home/hadoop/apps
1)安装jdk

sudo rpm -e java-1.7.0-openjdk-1.7.0.99-2.6.5.1.el6.x86_64 --nodeps
sudo rpm -e java-1.6.0-openjdk-1.6.0.38-1.13.10.4.el6.x86_64 --nodeps

source /etc/profile
java -version
2)上传安装包
3)解压hadoop的安装包
tar -xvzf hadoop-2.7.6.tar.gz
4)配置hadoop的环境变量
sudo vi /etc/profile
export JAVA_HOME=/home/hadoop/apps/jdk1.8.0_73
export HADOOP_HOME=/home/hadoop/apps/hadoop-2.7.6
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

source /etc/profile
验证
hadoop version
5)修改hadoop的配置文件 6个
$HADOOP_HOME/etc/hadoop/
1)hadoop-env.sh
export JAVA_HOME=/home/hadoop/apps/jdk1.8.0_73
2)core-site.xml 公共的配置文件
hdfs的访问url hdfs://namenode的主机名:9000
<property>
<name>fs.defaultFS</name>
<value>hdfs://hadoop01:9000</value>
</property>
hdfs的文件的存储路径 包括namenode的信息存储目录 datanode的信息存储目录 没有配置 /tmp存储 会造成核心数据的丢失 这个生产环境中一定要配置的
<property>
<name>hadoop.tmp.dir</name>
<value>/home/hadoop/data/hadoopdata</value>
</property>
3)hdfs-site.xml
<property>
<name>dfs.namenode.name.dir</name>
<value>/home/hadoop/data/hadoopdata/name</value>
<description>namenode的数据的存储目录</description>
</property>

<property>
<name>dfs.datanode.data.dir</name>
<value>/home/hadoop/data/hadoopdata/data</value>
<description>datanode 的数据存储目录</description>
</property>

<property>
<name>dfs.replication</name>
<value>2</value>
<description>HDFS 的数据块的副本存储个数</description>
</property>
<property>
<name>dfs.secondary.http.address</name>
<value>hadoop02:50090</value>
<description>secondarynamenode 运行节点的信息,和 namenode 不同节点</description>
</property>
4)mapred-site.xml
cp mapred-site.xml.template mapred-site.xml
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
5)yarn-site.xml
配置的是yarn的主节点的 主机名
<property>
<name>yarn.resourcemanager.hostname</name>
<value>hadoop01</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
<description>YARN 集群为 MapReduce 程序提供的 shuffle 服务</description>
</property>
6)vi slaves
从节点信息 一行一个 不要有空格 和换行 datanode nodemanager
hadoop02
hadoop03
hadoop04
6)远程发送到其他节点
jdk
scp -r jdk1.8.0_73 hadoop02:/home/hadoop/apps/
scp -r jdk1.8.0_73 hadoop03:/home/hadoop/apps/
scp -r jdk1.8.0_73 hadoop04:/home/hadoop/apps/


hadoop:
scp -r hadoop-2.7.6 hadoop02:/home/hadoop/apps/
scp -r hadoop-2.7.6 hadoop03:/home/hadoop/apps/
scp -r hadoop-2.7.6 hadoop04:/home/hadoop/apps/

/etc/profile
sudo scp /etc/profile hadoop02:/etc/
sudo scp /etc/profile hadoop03:/etc/
sudo scp /etc/profile hadoop04:/etc/

4个节点都执行 source /etc/profile

验证:
jdk
java -version
hadoop
hadoop version
7)进行格式化 格式化的是hdfs
在namenode所在的节点 ---hadoop01
hadoop namenode -format
/home/hadoop/data/hadoopdata/name has been successfully formatted.

成功的格式化只能进行一次
8)启动
先启动hdfs:
任意一个节点启动 start-dfs.sh
jps
hadoop01: namenode
hadoop02: secondarynamenode datanode
hadoop03:datanode
hadoop04:datanode
启动yarn:
start-yarn.sh 最好在yarn的主节点执行 hadoop01

验证:
hdfs的网页:
主节点主机名或ip:50070
hadoop01:50070
yarn的网页:
yarn主节点的主机名或ip:8088

集群的关闭和重启的问题
集群关闭:
关闭hdfs:
stop-dfs.sh 任意节点执行
关闭yarn:
stop-yarn.sh 在yarn的主节点执行
集群重启:
不需要格式化
先启动hdfs
再启动yarn