Hadoop集群的搭建
所需安装包:
1.jdk压缩包
2.hadoop压缩包
有需要的可在百度云下载:
jdk:链接: https://pan.baidu.com/s/1Jaclnw1-Ml4lrLgnBJIV9A 提取码: 6pgi
hadoop:链接: https://pan.baidu.com/s/1Lr1NDR00DpjcMG1Kczg59A 提取码: mqig
开始搭建hadoop集群(以下操作确定一下虚拟机的网是通的才可进行):
一. 使用VMvare创建一个虚拟机,我使用的是CentOS 7,所以以下是以CentOS7为例(也可以直接创建3台,不过我的个人习惯是先创一台,配好环境什么的再复制)
因为是主机,所以习惯上取名为master,不过这个看个人喜好
在虚拟机搭建完成后可用CRT或者Xshell进行远程登录、操作服务器;
二. jdk的安装
2.1 上传安装包等准备工作
mkdir /home/software #创一个文件夹专门存放安装包啥的,看个人习惯吧
cd /home/software/
rz #可用rz命令进行上传jdk文件,若rz没有,用 yum install lrzsz 进行下载,下载成功后在home目录下rz进行上传jdk文件,再ls查看一下文件即可查看jdk上传成功
tar -zxvf jdk-8u144-linux-x64.tar.gz #解压jdk到当前目录
ls #查看解压是否成功
mv jdk1.8.0_144/ jdk #改名
pwd #查看当前目录
2.2 配置/etc/profile 文件
vim /etc/profile #在jdk目录下配置一下java的环境变量,用vi 命令也可以
添加:
#java path configuration
export JAVA_HOME=/home/software/jdk #是jdk的安装路径
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
#注意中间的空格为tab键
:wq 保存退出
生效配置文件
source /etc/profile
java -version #看java是否安装配置成功
javac
java
chkconfig iptables off #如果之前忘记关防火墙,可用此命令进行防火墙永久关闭
出现以下情况,则成功安装配置jdk
没截全
也没截全
三. Hadoop的安装
3.1 上传安装包等准备工作
cd /home/software/
rz #上传hadoop安装包
tar -zxvf hadoop-2.6.5.tar.gz
ls #查看解压是否成功
mv hadoop-2.6.5 hadoop
3.2 配置/etc/profile 文件
vim /etc/profile #配置hadoop的环境变量
添加:
#hadoop configuration
export HADOOP_HOME=/home/software/hadoop
export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
#注意中间的空格为tab键
:wq 保存退出
3.3 生效配置文件
source /etc/profile
hadoop version #查看是否成功
四,克隆虚拟机(slave1,slave2)
4.1复制两台虚拟机
找到虚拟机的目录,直接复制两台虚拟机,命名为Slave1,Slave2,并相应打开文件删除
下面的文件 (否则有可能打不开)
点击 “我已复制该虚拟机”
4.2 记得分别修改他们的网卡配置文件的ip地址即:
vi /etc/sysconfig/network-scripts/ifcfg-ens33,
记得重启网卡:
systemctl restart network
4.3 关闭master,slave1,slave2的防火墙
systemctl stop firewalld.service #停止firewall
systemctl disable firewalld.service #禁止firewall开机启动
4.4 分别修改他们的主机名
CentOS7修改主机名:
hostnamectl set-hostname +主机名
hostnamectl set-hostname Master
hostname #查看一下
ls
同理,slave1,slave2也是如此。
如是CentOS6修改主机名则用
vi /etc/sysconfig/network
Master上改主机名
vi /etc/sysconfig/network
修改
HOSTNAME=Master
Slave1改主机名
vi /etc/sysconfig/network
添加
HOSTNAME=Slave1
Slave2改主机名
vi /etc/sysconfig/network
添加
HOSTNAME=Slave2
4.5 hosts修改域名:(三个节点上都配一遍)
vi /etc/hosts
修改内容为
192.168.100.10 Master Master.cn
192.168.100.11 Slave1 Slave1.cn
192.168.100.12 Slave2 Slave2.cn
#ip地址 hostname 域名 ,
省时间点:
scp /etc/hosts slave1.cn:/etc/ # (不行就修改一下,把域名改成接受文件的那台虚拟机的ip地址),传给例外两部
不然就一台一台的修改,反正每台都要修改的
设置完之后可以用域名进行访问
重新启动一下
reboot
测试域名是否配置成功:
Master上建一个文件如:如
touch 18hadoop.bc,
scp 18hadoop.bc Slave1.cn:/root #传到Slave1上
在Slave1 上
ls #即可看见文件已通过域名方式传送成功
五,配置ssh免密码登录
cd ~
ssh-keygen -t rsa #一直按回车
ssh-copy-id Master.cn #拷贝到另外一台虚拟机
ssh-copy-id Slave2.cn #拷贝到另外一台虚拟机
touch 2.c
scp 2.c Master.cn:/root #创一个文件上传给Master测试免密是否成功
ssh-copy-id Master.cn #将公钥复制到Master上
ssh-copy-id Slave2.cn #将公钥复制到Slave2上
以上操作在例外两台虚拟机上操作一遍
这样就实现了三台虚拟机免密码登录,传输文件
可用 scp 这个方法测试一下是否免密码登录成功
六. Master上修改配置文件进行集群
6.1 先创建一个存放hadoop数据库的文件夹
cd /home/software/ #进入software新建一个目录放data,然后ls一下
mkdir data
cd data
mkdir -p hadoop/tmp #在data下新建一个放hadoop数据,然后ls一下
6.2 修改 hadoop的配置文件
- 修改 hadoop-env.sh 文件*
cd /home/software/hadoop/etc/
ls
cd hadoop/ cd hadoop/ #进入到etc的hadoop的配置文件
vim hadoop-env.sh #进入修改一下JAVA_HOME的安装目录
- 修改 mapred-env.sh 文件
vim mapred-env.sh #同样进入修改一下JAVA_HOME的安装目录
- 修改 core-site.xml 文件
vim core-site.xml #配置 core-site.xml
在<configuration>和</configuration>中间添加:
<property>
<name>hadoop.tmp.dir</name>
<value>/home/software/data/hadoop/tmp</value>
</property>
<property>
<name>fs.defaultFS</name>
<value>hdfs://192.168.100.10:9000</value>
</property>
#其中/export/data/hadoop/tmp是之前是建的放hadoop数据的地方
#hdfs://192.168.100.10:9000 前面为主机Master的IP地址,后面为端口号,可以默认为9000
- 修改 yarn-site.xml 文件
vim yarn-site.xml #配置yarn-sit.xml
在<configuration>和</configuration>中间添加
<property>
<name>yarn.resourcemanager.hostname</name>
<value>192.168.100.10</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name
<value>mapreduce_shuffle</value>
</property>
#其中192.168.100.10是为主机Master的IP地址
- 修改 hdfs-site.xml 文件
vim hdfs-site.xml #配置hdfs-site.xml
在<configuration>和</configuration>中间添加
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<property>
<name>dfs.secondary.http.address</name
<value>192.168.100.10:50090</value>
</property>
#其中192.168.100.10是为主机的IP地址,3为机器的节点数
- 修改 mapred-site.xml 文件
cp mapred-site.xml.template mapred-site.xml #复制一份 mapred-site.xml
vim mapred-site.xml #配置mapred-site.xml(资源管理器)
在<configuration>和</configuration>中间添加
<property>
<name>mapreduce.framework.name</name
<value>yarn</value>
</property>
- 修改 slaves 文件
vim slaves #配置slaves
修改
localhost--->Slave1.cn Slave2.cn
#lave1.cn Slave2.cn为你要集群的机器
#以上配置文件已完成
配置完分发到其他机器上:
cd /home/software
ls
scp -r hadoop slave2.cn:/home/software/
scp -r hadoop slave1.cn:/home/software/
七,启动集群
启动前先格式化文件系统
hdfs namenode -format
start-dfs.sh #启动dfs
start-yarn.sh #启动yarn
jps #可以查看各个节点所启动的进程,NameNode、ResourceManager、SecondrryNameNode、JobHistoryServer 进程在Slave1、2节点上jps可以看到DataNode 和 NodeManager
出现这个,
恭喜你,集群已搭建成功
关闭集群也是在Master上关闭,按顺序执行命令
stop-yarn.sh
stop-dfs.sh
start-all.sh启动整个集群
stop-all.sh 关闭整个集群