示例环境 |
|||||
主机名 |
IP |
角色 |
系统版本 |
数据目录 |
Hadoop版本 |
master |
192.168.174.200 |
nameNode |
CentOS Linux release 7.4.1708 (Core)
|
2.8.0 |
|
slave1 |
192.168.129.201 |
dataNode |
CentOS Linux release 7.4.1708 (Core) |
2.8.0 |
确认本机安装的JDK版本为1.7以上,建议为1.8.
查看本机安装JDK
rpm -e --nodeps 'rpm -qa | grep java'
如:安装过其他版本的JDK,移除原JDK
rpm -e --nodeps java-1.8.0-openjdk-headless-1.8.0.131-11.b12.el7.x86_64
rpm -e --nodeps java-1.7.0-openjdk-headless-1.7.0.141-2.6.10.5.el7.x86_64
rpm -e --nodeps java-1.7.0-openjdk-1.7.0.141-2.6.10.5.el7.x86_64
rpm -e --nodeps java-1.8.0-openjdk-1.8.0.131-11.b12.el7.x86_64
下载JDK
curl -O http://download.oracle.com/otn-pub/java/jdk/8u161-b12/2f38c3b165be4555a1fa6e98c45e0808/jdk-8u161-linux-x64.tar.gz?AuthParam=1520556529_7efdd22074a16eff52be3c1e15843903
解压
tar -zxvf jdk-8u161-linux-x64.tar.gz
配置环境变量
gedit ~/.bashrc
或
vim ~/.bashrc
配置添加如下图:
立即生效
source ~/.bashrc
修改主机名(分别在两台虚拟机修改为:master、slave1、..):
vi /etc/hostname
增加IP与主机映射:
vi /etc/hosts
#增加以下内容:
192.168.174.200 master
192.168.174.201 slave1
rpm -qa | grep ssh
如果返回的结果如下图所示,包含了 SSH client 跟 SSH server,则不需要再安装。
若需要安装,则可以通过 yum 进行安装(安装过程中会让你输入 [y/N],输入 y 即可):
yum install openssh-clients
yum install openssh-server
设置免登录
主节点
ssh localhost
查看用户主目录.ssh文件夹下
cd .ssh/
ssh-keygen -t rsa#连续回车,系统自动生成图形公钥
#将生成的公钥id_rsa.pub 内容追加到authorized_keys
cat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys
从节点
ssh localhost
查看用户主目录.ssh文件夹下
cd .ssh/
ssh-keygen -t rsa#连续回车,系统自动生成图形公钥
#将从节点的id_rsa.pub复制到主节点并改名为id_rsa.pub.s1
scp id_rsa.pub master:/root/.ssh/id_rsa.pub.s1
主节点
#将从节点的id_rsa.pub.s1公钥追加到主节点的authorized_keys中
cat id_rsa.pub.s1 >> authorized_keys
#将生成的包含从节点的秘钥的authorized_keys 复制到从节点的.ssh目录下
scp authorized_keys slave1:/root/.ssh/
验证ssh的免密码登录:
在master中输入:ssh slave1是否需要密码,如果不需要,则ssh免密码配置成功。
wget http://mirrors.hust.edu.cn/apache/zookeeper/zookeeper-3.4.10/zookeeper-3.4.10.tar.gz
解压
tar -zxvf zookeeper-3.4.10.tar.gz
移动文件夹
mv zookeeper-3.4.10 /usr/local/haddop
修改配置
cd /usr/local/hadoop/zookeeper-3.4.10/conf
mv zoo_sample.cfg zoo.cfg
vim zoo.cfg
复制到从机
scp zookeeper-3.4.10 slave1:/usr/local/hadoop/
根据dataDir进行X的配置(主从机均执行)
cd /usr/local/hadoop/zookeeper-3.4.10
mkdir data
cd data
vim myid
#之后会产生一个新文件,直接在里面写 X 即可
#比如我配置的三个server,myid里面写的X就是server.X=ip:2888:3888 中ip所对应的X
server.1=192.168.174.200:2888:3888【192.168.174.200服务器上面的myid填写1】
server.2=192.168.174.201:2888:3888【192.168.174.201服务器上面的myid填写2】
启动(主从均执行)
cd /usr/local/hadoop/zookeeper-3.4.10/bin
zkServer.sh start
检查状态
zkServer.sh status
wget https://archive.apache.org/dist/hadoop/common/hadoop-2.8.0/hadoop-2.8.0.tar.gz
tar -zxvf hadoop-2.8.0.tar.gz
mv hadoop-2.8.0 /usr/local/haddop
参照上节JDK安装配置环境变量
修改/opt/hadoop/hadoop-2.8.0/etc/hadoop/core-site.xml文件
hadoop.tmp.dir
file:/data/hadoop/tmp
Abase for other temporary directories.
fs.defaultFS
hdfs://master:9000
io.file.buffer.size
131072
修改hdfs-site.xml
dfs.namenode.secondary.http-address
master:9001
dfs.namenode.name.dir
file:/data/hadoop/hdfs/nn
dfs.namenode.checkpoint.dir
file:/data/hadoop/hdfs/snn
dfs.namenode.checkpoint.edits.dir
file:/data/hadoop/hdfs/snn
fs.datanode.data.dir
file:/data/hadoop/hdfs/dn
dfs.replication
2
dfs.webhdfs.enabled
true
在该版本中,有一个名为mapred-site.xml.template的文件,复制该文件,然后改名为mapred-site.xml,命令是:
cp /usr/local/hadoop/hadoop-2.8.0/etc/hadoop/mapred-site.xml.template /usr/local/hadoop/hadoop-2.8.0/etc/hadoop/mapred-site.xml
mapreduce.framework.name
yarn
mapreduce.jobhistory.address
master:10020
mapreduce.jobhistory.webapp.address
master:19888
修改/usr/local/hadoop/hadoop-2.8.0/etc/hadoop/slaves文件,将里面的localhost删除,添加如下内容:
slave1
修改/opt/hadoop/hadoop-2.8.0/etc/hadoop/yarn-site.xml文件,
在
yarn.nodemanager.aux-services
mapreduce_shuffle
yarn.nodemanager.aux-services.mapreduce.shuffle.class
org.apache.hadoop.mapred.ShuffleHandler
yarn.resourcemanager.address
master:8032
yarn.resourcemanager.scheduler.address
master:8030
yarn.resourcemanager.resource-tracker.address
master:8031
yarn.resourcemanager.admin.address
master:8033
yarn.resourcemanager.webapp.address
master:8090
yarn.nodemanager.local-dirs
file:/data/hadoop/yarn/nm
yarn.scheduler.maximum-allocation-mb
2048
每个节点可用内存,单位MB,默认8182MB
yarn.nodemanager.vmem-pmem-ratio
2.1
yarn.nodemanager.resource.memory-mb
2048
yarn.nodemanager.vmem-check-enabled
false
说明:yarn.nodemanager.vmem-check-enabled这个的意思是忽略虚拟内存的检查,如果你是安装在虚拟机上,这个配置很有用,配上去之后后续操作不容易出问题。如果是实体机上,并且内存够多,可以将这个配置去掉。
cd /user/local/hadoop/hadoop-2.8.0/bin
执行初始化脚本,也就是执行命令:
./hadoop namenode -format
关闭防火墙,CentOS7下,命令:
systemctl stop firewalld.service
sbin/start-all.sh
启动后,master上进程和slave进程列表
http://192.168.174.200:50070/http://192.168.174.200:8090/
至此Hadoop集群搭建完毕