Hadoop 集群搭建

目录

1、基础集群环境准备

1.1、修改主机名

1.2、设置系统默认启动级别

1.3、配置 hadoop 用户 sudoer 权限 

1.4、配置 IP

1.5、关闭防火墙/关闭 Selinux

1.6、添加内网域名映射

1.7、安装 JDK

 做完以上步骤后,可以开始克隆虚拟机。因为以上系统的配置,都是一些基础性的操作。 都是必须的。

1.8、同步服务器时间

1.9、配置免密登录

2、Hadoop 集群环境安装

hadoop 分布式集群安装

3、集群初步使用

3.1、Hadoop 集群启动

3.2、HDFS 初步使用

3.3、mapreduce 初步使用


1、基础集群环境准备

1.1、修改主机名

1、 在 root 账号下用命令:vi /etc/sysconfig/network 或者如果配置了 hadoop sudo 权限,则在 hadoop 登录情况下使用命令: sudo vi /etc/sysconfig/network

2、 Hadoop 集群搭建修改好后,保存退出即可

1.2、设置系统默认启动级别

1、在 root 账号下输入 vi /etc/inittab

Hadoop 集群搭建

1.3、配置 hadoop 用户 sudoer 权限 

1、 在 root 账号下,命令终端输入:vi /etc/sudoers

Hadoop 集群搭建

2、 找到 root ALL=(ALL) ALL 这一行,然后在他下面添加一行: hadoop ALL=(ALL) ALL 保存,退出 

Hadoop 集群搭建

1.4、配置 IP

Linux 服务器的 IP 修改方式有三种,在此不细讲,可以参照前面Linux的网络ip配置

1.5、关闭防火墙/关闭 Selinux

防火墙操作相关:

查看防火墙状态:service iptables status
关闭防火墙:service iptables stop
开启防火墙:service iptables start
重启防火墙:service iptables restart
关闭防火墙开机启动:chkconfig iptables off
开启防火墙开机启动:chkconfig iptables on

关闭 Selinux:具体做法是修改/etc/selinux/config 配置文件中的 SELINUX=disabled

Hadoop 集群搭建

1.6、添加内网域名映射

Hadoop 集群搭建

1.7、安装 JDK

1、 上传 jdk-8u73-linux-x64.tar.gz
2、 解压到/usr/local 目录下
    tar -zxvf jdk-8u73-linux-x64.tar.gz -C /usr/local
3、 配置环境变量
    a) vi /etc/profile
    b) 在最后加入两行:
         export JAVA_HOME=/usr/local/jdk1.8.0_73
         export PATH=$PATH:$JAVA_HOME/bin
    c) 保存退出
4、 source /etc/profile
5、 检测是否安装成功,输入命:java -version

 做完以上步骤后,可以开始克隆虚拟机。因为以上系统的配置,都是一些基础性的操作。 都是必须的。

1.8、同步服务器时间

1、使用 date 命令手动简单同步一下
命令:date -s "2016-10-23 11:11:11"
修改时间后,需要写入硬件 bios 才能在重启之后依然生效
命令:hwclock -w
2、配置 crontab 服务,用 ntpdate 定时同步时间(推荐方式)
ntpdate 202.120.2.101
3、如果类似 202.120.2.101 这种网络时间服务器无法访问,那么请自行搭建时间服务器
以上两种方式不管怎么做,都不要忘记更改时区

1.9、配置免密登录

Linux 配置免密登录有两种方式:

第一种

a) 在 hadoop 登录状态下,输入命令 ssh-****** 或者 ssh-****** -t rsa

b) 之后你会发现,在/home/hadoop/.ssh 目录下生成了公钥文件

Hadoop 集群搭建

c) 复制公钥文件到授权列表 cat ./id_rsa.pub >> authorized_keys

d) 修改文件权限 chmod 600 ./authorized_keys 

Hadoop 集群搭建

e) 将该授权文件 authorized_keys 文件复制到 slave 节点 scp ./authorized_keys [email protected]:~/.ssh/

Hadoop 集群搭建

f) 检查免密登录是否设置成功 ssh hadoop02 看看是不是能登录进入 hadoop02 的服务器

第二种

a) 在 hadoop 登录状态下,输入命令 ssh-****** 或者 ssh-****** -t rsa

b) 之后你会发现,在/home/hadoop/.ssh 目录下生成了公钥文件 

Hadoop 集群搭建

c) 使用一个更简单的方式,使用命令: ssh-copy-id hadoop02 建立 hadoop01 到 hadoop02 的免密登录

Hadoop 集群搭建

2、Hadoop 集群环境安装

hadoop 分布式集群安装

Hadoop 集群搭建

总共三个 datanode 节点,设置副本数为 3,是为了观察数据块分布方便,大家可以根据自 己的机器性能酌情决定 

具体步骤:

一、上传安装包,并解压到相关目录
    put c:/hadoop-2.6.5-centos-6.7.tar.gz
    tar -zxvf hadoop-2.6.5-centos-6.7.tar.gz -C /home/hadoop/apps
二、主要讲配置文件的配置
     1、修改 hadoop-env.sh
         export JAVA_HOME=/usr/java/jdk1.8.0_73
     2、修改 core-site.xml
     <property>
         <name>fs.defaultFS</name>
         <value>hdfs://hadoop02:9000</value>
     </property>
     <property>
         <name>hadoop.tmp.dir</name>
         <value>/home/hadoop/hadoopdata</value>
     </property>
     3、修改 hdfs-site.xml
     <property>
         <name>dfs.namenode.name.dir</name>
         <value>/home/hadoop/hadoopdata/name</value>
         <description>为了保证元数据的安全一般配置多个不同目录</description>
     </property>
     <property>
         <name>dfs.datanode.data.dir</name>
         <value>/home/hadoop/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>hadoop03:50090</value>
         <description>secondarynamenode 运行节点的信息,和 namenode 不同节点</description>      
     </property>
     4、修改 mapred-site.xml(集群只有 mapred-site.xml.template,可以从这个文件进行复
制,或者直接改名也可)
     <property>
         <name>mapreduce.framework.name</name>
         <value>yarn</value>
     </property>
     5、修改 yarn-site.xml
     <property>
         <name>yarn.resourcemanager.hostname</name>
         <value>hadoop04</value>
     </property>
     <property>
         <name>yarn.nodemanager.aux-services</name>
         <value>mapreduce_shuffle</value>
         <description>YARN 集群为 MapReduce 程序提供的 shuffle 服务</description>
     </property>
     6、修改 slaves 文件,添加以下内容,该内容是从节点列表
     hadoop02
     hadoop03
     hadoop04
三、分发安装包到各个节点,Hadoop 集群的每个节点都需要安装 Hadoop 安装包
     scp -r hadoop-2.6.5 hadoop02:$PWD
     scp -r hadoop-2.6.5 hadoop03:$PWD
四、在 HDFS 主节点上执行命令进行初始化 namenode
     bin/hadoop namenode -format

查看初始化是否成功

Hadoop 集群搭建

五、在 HDFS 上的主节点启动 HDFS,其实在哪里启动并无关系
 sbin/start-dfs.sh
 结果:在主节点启动了 NameNode 守护进程
 在从节点启动了 DataNode 守护进程
 在配置的一个特定节点上 hadoop03 会启动 SecondaryNameNode 进程

 Hadoop 集群搭建

 

六、在 YARN 主节点启动 YARN,要求在 YARN 主节点进行启动,否则 ResourceManager 主进
程会启动不成功,需要额外手动启动
     sbin/start-yarn.sh
     结果:在主节点启动了 resourcemanager 守护进程
     在从节点启动了 nodemanager 守护进程
七、测试集群是否安装成功
     1、检测 hdfs 是否启动成功
         hadoop fs -ls /
     2、检测 yarn 集群是否启动成功(提交 mapreduce 例子程序试跑)
         bin/hadoop jar hadoop-mapreduce-examples-2.6.5.jar pi 5 5
八、补充说明
     1、启动 namenode 或者 datenode
         sbin/hadoop-daemon.sh start datanode
         sbin/hadoop-daemon.sh start namenode
         sbin/hadoop-daemon.sh start secondarynamenode
     2、启动 yarn nodemanager
         sbin/yarn-daemon.sh start nodemanager
         sbin/yarn-daemon.sh start resourcemanager
     3、hdfs 集群信息 web 管理界面地址
         http://hadoop02:50070    
     4、mapreduce 运行状态信息 web 管理界面
         http://hadoop04:8088
     5、查看集群状态
         hadoop dfsadmin -report
         hdfs dfsadmin -report(推荐用这个)

3、集群初步使用

3.1、Hadoop 集群启动

DFS 集群启动:sbin/start-dfs.sh
DFS 集群关闭:sbin/stop-dfs.sh
YARN 集群启动:sbin/start-yarn.sh
YARN 集群启动:sbin/stop-yarn.sh

3.2、HDFS 初步使用

查看集群文件:hadoop fs -ls /
上传文件:hadoop fs -put filepath destpath
下载文件:hadoop fs -get destpath
创建文件夹:hadoop fs -mkdir /hadoopdata
查看文件内容:hadoop fs -cat /hadoopdata/mysecret.txt

3.3、mapreduce 初步使用

演示 hadoop 自带的例子程序并观察执行过程:

1、求 PI

hadoop jar hadoop-mapreduce-examples-2.6.5.jar pi 5 5 (该 jar 位于:/home/hadoop/apps/hadoop-2.6.5/share/hadoop/mapreduce/)

执行结果: Job Finished in 70.913 seconds Estimated value of Pi is 3.20000000000000000000

2、单词计数

hadoop jar hadoop-mapreduce-examples-2.6.5.jar wordcount /hadoopdata/mysecret.txt