手把手教你搭建hadoop集群(CentOS6.X)

一、新建虚拟机

略(只要建立一个普通的虚拟机即可,虚拟机作为主机:hadoopmaster)

启动此虚拟机如上图所示。
 

二、VMware VMnet8 模式共享主机网络配置

NAT 网络模式:
 
     宿主机可以看做一个路由器,虚拟机通过宿主机的网络来访问 Internet
     可以安装多台虚拟机,组成一个小型局域网,例如:搭建 hadoop 集群、分布式服务。
 

步骤一 VMnet8 设置静态 IP

具体的IP地址需要根据个人情况做相对应改变,我的IP地址是192.168.93.2;默认网关是192.168.93.1

步骤二 Centos 网络设配器为 NAT 模式

应该默认都是NAT模式,如果不是的话,切换成NAT模式;

步骤三 VMware 虚拟网络设置

在VMware中找到虚拟网络编辑器,按上述操作进行配置。

步骤五 修改网络设置
 
 
 


 

步骤六 验证结果:
 
 ping www.baidu.com 看网络是否通了
 
如果出现了上面的情况,则说明网络已经通了,配置成功。
 
3 、 克隆集群节点 hadoopSlave1 与 hadoopSlave2
 
步骤一 关闭 h adoopmaster 服务器,在该节点单击鼠标右键,选择【管理】 - 【克隆】选项
 
 
 
步骤二 克隆虚拟机向导:

将虚拟机重命名为 HadoopSlave1 ,并选择一个存储位置
 
 
同理 再克隆一台虚拟机命名为hadoopslave2; 完成 Hadoop 分布式集群的虚拟硬件环境搭建
 
 
4 、 Linux 系统配置 (最好用root用户配置)
 
步骤一 配置时钟同步
 
安装 crontab:在命令行里输入 yum install vixie-cron  和  yum install crontabs
配置自动时钟同步 : 0 1 * * * /usr/sbin/ntpdate cn.pool.ntp.org 或者 0 1 * * * /usr/sbin/ntpdate aliyun.com
 
手动时间同步: /usr/sbin/ntpdate cn.pool.ntp.org  或者  /usr/sbin/ntpdate cn.pool.ntp.org
 
 
步骤二 配置主机名
 
root 用户身份登录 HadoopMaster 节点,直接使用 vim 编辑器打开 network 网络配置文件,命令如下:
 
vim /etc/sysconfig/network
 
打开 network 文件,配置信息如下,将 HadoopMaster 节点的主机名修改为 master ,即下 面第二行代码所示:
 
NETWORKING=yes # 启动网络
 
HOSTNAME=master # 主机名
 
 
Esc 键,输入 :wq 保存退出。 确认修改生效,命令如下:
 
hostname master
 
在操作之前要关闭当前的终端,重新打开一个终端: 输入查看是否修改成功:hostname
 
 
 
 
步骤三 配置 HadoopSlave1 HadoopSlave2 网络环境,并关闭三台主机的防火墙
 
 
 
 
 
 
将虚拟机的网络地址修改为固定的IP地址,不然每次开机时可能导致IP地址不同,导致集群启动失败。
 

可以用图形化操作(点桌面右上角的小电脑图标配置),如果不行的话用命令行操作:

vi /etc/sysconfig/network-scripts/ifcfg-eth0(etho网卡的配置文件)

修改ONBOOT=yes;BOOTPROTO=static;添加IPADDR,GATEWAY,DNS1(保持与网关一致即可)

(具体要根据自己的电脑的网络来配置,不能照抄!!!!)

修改后,使用service network restart重启网络或者reboot重启虚拟机即可。

需要注意的是:如果用命令行修改时,不仅要把虚拟机的IP地址修改,还要把两台克隆的虚拟机上UUID 和 HWADDR 删掉!!

下次虚拟机开机时会自动分配对应的UUID和HWADDR!

 
防火墙关闭:
 
 
 
设置关闭即可
 
 
步骤四 配置 Hosts 列表
 
root 用户身份登录三个节点,将下面 3 行代码添加到主机列表 /etc/hosts 文件中。
 
vi  /etc/hosts
 
192.168.93.128 master
 
192.168.93.129 slave1
 
192.168.93.130 slave2
 
验证主机 hosts 是否配置成功
 
ping master
 
ping slave1
 
ping slave2
 
 
 
步骤五 安装 JDK
 
jdk-7u79-linux-x64.tar.gz 复制到新建的 /usr/java 目录下解压
 
cd /usr
 
mkdir java
 
cd java
 
tar -zxvf jdk-7u79-linux-x64.tar.gz
修改用户的系统环境变量文件/home/hadoop/.bash_profile
 
vi /home/hadoop/.bash_profile
 
将下面代码赋值到profile文件中即可;
 
export JAVA_HOME=/usr/java/jdk1.7.0_79
export JRE_HOME=/usr/java/jdk1.7.0_79/jre
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
export PATH=$JRE_HOME/bin:$JAVA_HOME/bin:$PATH
 
输入 source/home/hadoop/.bash_profile   使命令生效
 
输入java -version
 
 
说明安装成功!
 
步骤六   免密钥登录配置
 
root 用户切换到 hadoop 用户,输入 su hadoop ,在终端生成密钥,输入以下命令:
 
ssh-keygen –t rsa
 
ssh-keygen 是生成密钥的命令; -t rsa 表示使用 rsa 算法进行加密
 
生成的密钥在 /home/hadoop/.ssh/ 目录下,私钥为 id_rsa ,公钥为 id_rsa.pub
 
复制公钥文件到 authorized_keys 文件中,命令如下:
 
cat /home/hadoop/.ssh/id_rsa.pub >> /home/hadoop/.ssh/authorized_keys
 
修改 authorized_keys 文件的权限,只有当前用户 hadoop 有权限操作 authorized_keys 文件, 命令如下:
 
chmod 600 /home/hadoop/.ssh/authorized_keys
 
HadoopMaster 主节点生成的 authorized_keys 公钥文件复制到 HadoopSlave1 和 HadoopSlave2 从节点,命令如下:
 
scp /home/hadoop/.ssh/authorized_keys hadoop@slave1:/home/hadoop/.ssh/
 
scp /home/hadoop/.ssh/authorized_keys hadoop@slave2:/home/hadoop/.ssh/
 
如果出现提示,则输入 yes 并按回车键,输入密码,这里密码是 hadoop
 
此时, HadoopMaster 节点的公钥文件信息就被复制到 HadoopSlave1 HadoopSlave2 节点上了。
 
hadoop 用户身份登录 HadoopSlave1 HadoopSlave2 节点,进入到 /home/hadoop/.ssh 目录,修改 authorized_keys 文件的权限为当前用户可读可写,输入以下命令:
 
chmod 600 /home/hadoop/.ssh/authorized_keys
 
此时,在 HadoopSlave1 HadoopSlave2 节点上就存放了 HadoopMaster 节点的公钥,那 么 HadoopMaster 节点就可以以 SSH 方式直接登录 HadoopSlave1 HadoopSlave2 节点。验证 免密钥登录,在 HadoopMaster 节点的 Terminal 终端上输入以下命令验证免密钥登录。
 
 
[hadoop@master ~]$ ssh slave1
Last login: Sat Feb 1 01:23:58 2020 from slave1
[hadoop@slave1 ~]$ exit
logout
Connection to slave1 closed.
[hadoop@master ~]$ ssh slave2
Last login: Fri Jan 31 09:23:24 2020 from slave1
[hadoop@slave2 ~]$ exit
logout
Connection to slave2 closed.
[hadoop@master ~]$
 
 
5 、 Hadoop 的部署配置(以下都使用hadoop用户进行配置)
 
步骤一 解压 Hadoop 安装文件
 
Hadoop 安装文件通过 SSH 工具上传到 HadoopMaster 节点 hadoop 用户的主目录下。
进入 hadoop 用户主目录
 
cd ~
 
输入以下命令进行解压:
 
tar –zxvf hadoop-2.5.2.tar.gz
 
步骤二 配置环境变量 hadoop-env.sh
 
打开 Hadoop 的环境变量文件,只需要配置 JDK 的路径。
 
vim /home/hadoop/hadoop-2.5.2/etc/hadoop/hadoop-env.sh
 
在文件靠前的部分找到以下代码:
 
export JAVA_HOME=${JAVA_HOME}
 
将这行代码修改为:
 
export JAVA_HOME=/usr/java/jdk1.7.0_79
 
 
步骤三 配置环境变量 yarn-env.sh
 
打开 Hadoop YARN 模块的环境变量文件 yarn-env.sh ,只需要配置 JDK 的路径。
 
vim /home/hadoop/hadoop-2.5.2/etc/hadoop/yarn-env.sh
 
在文件靠前的部分找到以下代码:
 
#export JAVA_HOME
 
将这行代码修改为:
 
export JAVA_HOME=/usr/java/jdk1.7.0_79
 
按esc后,:wq!退出
 
 
步骤四 配置核心组件 core-site.xml
 
打开 Hadoop 的核心配置文件 core-site.xml
 
vim /home/hadoop/hadoop-2.5.2/etc/hadoop/core-site.xml
 
<!-- Put site-specific property overrides in this file. --> 下方,输入
 
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/home/hadoop/hadoopdata</value>
</property>
</configuration>
 
按esc后,:wq!退出
 
 
步骤五 配置文件系统 hdfs-site.xml
 
打开 hdfs-site.xml 配置文件
 
vim /home/hadoop/hadoop-2.5.2/etc/hadoop/hdfs-site.xml
 
<!-- Put site-specific property overrides in this file. --> 下方,输入
 
<configuration>
<property>
<!-- 配置数据块的副因子(即副本数)为 2-->
<name>dfs.replication</name>
<value>2</value>
</property>
</configuration>
按esc后,:wq!退出
 
步骤六 配置 YARN 资源系统 yarn-site.xml
 
打开 yarn-site.xml 配置文件
 
vim /home/hadoop/hadoop-2.5.2/etc/hadoop/yarn-site.xml
 
<!-- Site specific YARN configuration properties --> 下方,输入
 
 
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.resourcemanager.address</name>
<value>master:18040</value> 15
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>master:18030</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>master:18025</value>
</property>
<property>
<name>yarn.resourcemanager.admin.address</name>
<value>master:18141</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>master:18088</value>
</property>
步骤七 配置计算框架 mapred-site.xml
 
通过以下命令打开 mapred-site.xml 配置文件
 
vim /home/hadoop/hadoop-2.5.2/etc/hadoop/mapred-site.xml
 
<!-- Put site-specific property overrides in this file. --> 下方,输入
 
<configuration>
 <property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
 
步骤八 HadoopMaster 配置 slaves ,复制 hadoop 到从节点
 
打开 slaves 配置文件
 
vim /home/hadoop/hadoop-2.5.2/etc/hadoop/slaves
 
用下面的内容替换 slaves 文件中的内容:
 
slave1
slave2
 
Hadoop 集群中,每个节点上的配置和安装的应用都是一样的,这是分布式集群的特性, 所以,此时已经在 HadoopMaster 节点上安装了 Hadoop-2.5.2 的应用,只需要将此应用复制到各个从节点(即 HadoopSlave1 节点和 HadoopSlave2 节点)即可将主节点的 hadoop 复制到从节点上。
 
scp –r /home/hadoop/hadoop-2.5.2 hadoop@slave1:~/
 
scp –r /home/hadoop/hadoop-2.5.2 hadoop@slave2:~/
 
 
步骤九 配置 Hadoop 启动的系统环境变量
 
此配置需要同时在 HadoopMaster HadoopSlave1 HadoopSlave2 上进行操作,操作命令如下:
 
vim /home/hadoop/.bash_profile
 
将下面的代码追加到 .bash_profile 文件的末尾:
 
#Hadoop Path configuration
export HADOOP_HOME=/home/hadoop/hadoop-2.5.2
export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
 
输入 :wq 保存退出,并执行生效命令:
 
source /home/hadoop/.bash_profile
 
登录 HadoopSlave1 HadoopSlave2 节点,依照上述配置方法,配置 Hadoop 启动环境变量
 
 
步骤十 配置数据目录
 
HDFS 分布式文件系统存储数据最终落地到各个数据节点上的本地磁盘位置信息 /home/hadoop/hadoopdata,该目录是需要自己创建的。
 
要在 HadoopMaster HadoopSlave1 HadoopSlave2 上分别创建数据目录 /home/hadoop/hadoopdata。
 
mkdir /home/hadoop/hadoopdata
 
6 、 Hadoop 集群的启动
 
步骤一 格式化文件系统(只在第一次运行时输入即可)
 
启动集群时,首先要做的就是在 HadoopMaster 节点上格式化分布式文件系统 HDFS
 
hdfs namenode –format
 
步骤二 启动 Hadoop
 
Hadoop 是主从架构,启动时由主节点带动从节点,所以启动集群的操作需要在主节点 HadoopMaster 完成,命令如下:
 
cd /home/hadoop/hadoop-2.5.2
 
sbin/start-all.sh
 
执行命令后,在提示处输入 yes
 
步骤三 查看进程是否启动
 
HadoopMaster 终端执行 jps 命令,在打印结果中会看到 4 个进程,分别是
 
ResourceManager Jps NameNode SecondaryNameNode
 
HadoopSlave 的终端执行 jps 命令,在打印结果中会看到 3 个进程,分别是
 
NodeManager 、 DataNode 和 Jps
 
 
则表示主、从节点进程启动成功。
 
步骤四 Web UI 查看集群是否成功启动
 
HadoopMaster 上启动 Firefox 浏览器,在浏览器地址栏中输入 http://master:50070/ ,检查 NameNode DataNode 是否正常;在浏览器地址栏中输入 http://master:18088/ ,检查 YARN是否正常。
 
 
步骤五 运行 PI 实例检查集群是否启动成功
 
HadoopMaster 节点上,进入 hadoop 安装主目录,分别执行下面的命令:
 
cd hadoop-2.5.2/share/hadoop/mapreduce
 
hadoop jar hadoop-mapreduce-examples-2.5.2.jar pi 10 10
 
最后输出为:
 
Estimated value of Pi is 3.20000000000000000000
 
最后结束hadoop命令:stop-all.sh
 
在关闭hadoop后再关闭虚拟机!
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
发布了7 篇原创文章 · 获赞 8 · 访问量 857

猜你喜欢

转载自blog.csdn.net/qq_44320146/article/details/104995085