我的集群是三个节点,主机名分别为master slave1 slave2
主机名修改可以用hostnamectl set-hostname
hostnamectl set-hostname master
hostnamectl set-hostname slvae1
hostnamectl set-hostname slave2
修改之后可以用bash 立即执行
bash
在三个节点分别查询一下IP地址 使用ifconfig命令
ifconfig
修改hosts文件
查看并复制三个节点的IP地址 用于修改hosts文件
vi /etc/hosts
进入hosts文件后按键盘上的i键进入编辑模式,在文件中 添加三个节点的IP和主机名
192.168.8.130 master
192.168.8.131 slave1
192.168.8.132 slave2
按ESC键退出编辑模式 再输入:wq保存并退出文件
三个节点分别关闭防火墙systemctl stop firewalld
同步时间使用tzselect
tzselect
根据选项分别键入5 9 1 1
当提示:
You can make this change permanent for yourself by appending the line
TZ='Asia/Shanghai'; export TZ
to the file '.profile' in your home directory; then log out and log in again.
Here is that TZ value again, this time on standard output so that you
can use the /usr/bin/tzselect command in shell scripts:
Asia/Shanghai 输入
timedatectl set-timezone 'Asia/Shanghai'
然后三个节点分别下载ntp
yum install -y ntp
master是ntp的主服务器,在master上面修改ntp的配置文件
vi /etc/ntp.conf
在文件中添加
server 127.127.1.0
fudge 127.127.1.0 stratum 10 #stratum这个数据0-15都可以
重启ntp服务
/bin/systemctl restart ntpd.service
然后就是从节点同步(slave1 slave2)等个五六分钟吧 然后登录两个从节点
ntpdate master
配置SSH免密
三个节点分别产生公私密钥
ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
密钥产生的目录在用户主目录下的.ssh文件中 可以查看
cd ~/.ssh
id_dsa为私钥 id_dsa.pub为公钥 把公钥文件复制为authorized_keys文件(只在主节点的.ssh/路径下 *** 作)
cat id_dsa.pub >> authorized_keys
然后就可以实现ssh内回环 即可以在主节点上连接自己
ssh master
分别登录两个从节点,并打开.ssh文件使用scp命令远程登录主节点,并且复制主节点的公钥文件到当前目录下,并重命名为master_dsa.pub 这个需要密码验证
scp master:~/.ssh/id_dsa.pub ./master_dsa.pub
cat master_dsa.pub >> authorized_keys
这样以后主节点就可以连接两个从节点了,在主节点键入ssh 命令
ssh slave1
ssh slave2
第一次登录需要输入密码,之后就不需要啦
安装jdk安装jdk可以先在主节点进行 *** 作,主节点安装配置好以后复制给两个从节点。首先查询一下系统是否自带有jdk
java -version
如果提示有jdk,就键入命令卸载掉
rpm -qa | grep -i java | xargs -n1 rpm -e --nodeps
再次输入java -version查询一下是否卸载成功
把上传的jdk压缩包解压到当前目录(tar -zxvf 后面跟的就是压缩包名)
tar -zxvf jdk-8u212-linux-x64.tar.gz
然后配置环境变量修改profile文件
vim /etc/profile
在文件底部加入一下内容
export JAVA_HOME=/home/happy/jdk1.8.0_212 #jdk的安装目录
export PATH=$PATH:$JAVA_HOME/bin$PATH
退出文件并执行立即生效的命令
source /etc/profile
然后可以用java -version查询一下安装结果
主节点的jdk安装好以后,可以使用scp命令复制给从节点,后面Hadoop的安装配置也是这样 *** 作的。scp -r +jdk的路径 root@主机名:从节点准备放置jdk的目录(scp命令使用之前 记得把从节点系统自带的jdk先删除掉,和主节点 *** 作步骤一样。
scp -r /home/happy/jdk1.8.0_212 root@slave1:/home/happy/
scp -r /home/happy/jdk1.8.0_212 root@slave2:/home/happy/
然后把profile文件也复制到从节点上
scp -r /etc/profile root@slave1:/etc/
scp -r /etc/profile root@slave2:/etc/
然后分别在两个从节点上面执行立即生效命令
source /etc/profile
*** 作完成以后,可以查询一下 java -version
Hadoop的配置部署Hadoop的安装和配置部署也是现在主节点上完成 *** 作,然后使用scp命令把配置好的环境复制到两个从节点上面去。首先在当前目录解压已经上传好的压缩包
tar -zxvf /home/happy/hadoop-2.7.7.tar.gz
使用cd命令打开Hadoop文件夹
cd /home/happy/hadoop-2.7.7/etc/hadoop
可以使用ll命令查询一下Hadoop文件夹里面的东西,我们要配置的文件大部分都在里面
配置环境变量hadoop-env.sh文件hadoop-env.sh我们只需要配置jdk的路径就可以了
vim hadoop-env.sh
在文件中找到一行代码:#export JAVA_HOME=${JAVA_HOME}将其修改为
export JAVA_HOME=/home/happy/jdk1.8.0_212 #配置的是你自己的jdk路径
编辑好以后wq保存并退出,Hadoop的环境变量hadoop-env.sh配置完成,此时Hadoop具备了运行时的环境
配置环境变量yarn-env.shYARN负责管理Hadoop集群的资源,这个模块也是用JAVA语言开发的,所以同样需要配置其运行时的环境变量jdk
vim yarn-env.sh
在文件比较靠前的部分找到#export JAVA_HOME=/home/y/..../jdk1.6.0/并修改
export JAVA_HOME=/home/happy/jdk1.8.0_212 #配置的是你自己的jdk路径
编辑好以后wq保存并退出
配置核心组件core-site.xml这个文件的配置是关于集群中分布式文件系统的入口地址和分布式文件系统中数据落地到服务器本地磁盘位置的。HDFS是分布式存储文件的核心系统,他的入口地址决定了Hadoop集群架构的主节点hdfs://master:9000 协议为hdfs 主机为master也就是主节点 端口号为9000
vim core-site.xml
在文件中添加一下内容
fs.defaultFS
hdfs://master:9000
hadoop.tmp.dir
/home/happy/hadoopdata
配置hdfs-site.xml文件
这个主要是配置数据块副本个数的,在Hadoop集群中,主节点是不存储数据副本的,所以副本都存储在从节点上面,我们这个集群是三台服务器,其中从节点是两个,所以这里的数据块副本数只能配置1或2 。具体的数据块副本这个概念关系到HDFS文件存储数据的机制,我就不做赘述了。
vim hdfs-site.xml
dfs.replication
2
配置YARN资源系统yarn-site.xml
yarn是主从结构,运行在主节点上的守护进程是ResourceManager,负责整个集群资源的管理协调;运行在从节点上的守护进程是NodeManager,负责从节点本地的资源管理协调。Hadoop集群有两大核心模块:HDFS分布式文件系统和MapReduce分布式并行计算框架。MR在运行一个计算任务的时候需要集群的内存和CPU的资源,这个时候MR就会向ResourceManager申请计算需要的集群资源。下面开始配置这个yarn-site.xml
vim yarn-site.xml
yarn.nodemanager.aux-services
mapreduce_shuffle
yarn.resourcemanager.address
master:18040
yarn.resourcemanager.scheduler.address
master:18030
yarn.resourcemanager.resource-tracker.address
master:18025
yarn.resourcemanager.admin.address
master:18141
yarn.resourcemanager.webapp.address
master:18088
配置计算框架mapred-site.xml
前面配置的YARN,主要负责分布式集群的资源管理,现在配置mapred-site.xml是为了将Hadoop MapReduce分布式并行计算框架在运行的时候需要的内存 CPU这些资源交给YARN来协调分配。因为当前文件夹里面是没有mapred-site.xml文件的,所以首先需要用cp命令复制一下
cp mapred-site.xml.template mapred-site.xml
vim mapred-site.xml
mapreduce.framework.name
yarn
在master里面配置slaves
主节点的角色在配置HDFS分布式文件系统的入口地址已经做了配置说明啦,从节点的角色配置是在slaves文件中进行的。
vim slaves
编辑slaves文件 里面只需要剩下slave1 slave2即可,如下
slave1
slave2
现在主节点的配置就已经结束啦。我们可以scp复制到两个从节点就可以啦
scp -r /home/happy/hadoop-2.7.7 root@slave1:/home/happy/
scp -r /home/happy/hadoop-2.7.7 root@slave2:/home/happy/
配置Hadoop启动的系统环境
配置profile文件
vim /etc/profile
# # #Hadoop Path configuration
export HADOOP_HOME=/home/happy/hadoop-2.7.7
export PATH=$HADOOP_HOME/sbin:$PATH
在profile文件中添加如上代码以后执行生效的命令
source /etc/profile
登录两个从节点重复 *** 作profile *** 作
创建数据目录之前配置那个core-site.xml的时候配置Hadoop集群HDFS分布式文件系统的入口地址hdfs://master:9000还有那个HDFS分布式文件系统存储数据最终落地到各个数据节点上的本地磁盘的那个hadoopdata目录是需要自己创建的(三个节点都要进行这一步 *** 作)
mkdir /home/happy/hadoopdata
启动Hadoop集群
首先格式化一下文件系统HDFS
hdfs namenode -format
然后会出现一堆东西 最后几行会有一个 Exiting with status 0 表示格式化成功 如果是1就是失败
失败的话就排查一下环境配置是不是哪里弄错了。格式化成功以后就可以开始启动集群啦。
Hadoop是主从架构,启动集群的 *** 作需要在主节点master上完成
cd /home/happy/hadoop-2.7.7
sbin/start-all.sh
执行命令后,在提示处输入yes
然后查看进程是否启动输入jps
正常情况下应该是
master里面分别是jps ,resourcemanager ,secondarnamenode ,namenode
slave1 和slave2 里面分别是jps ,datenode ,nodemanager
Web UI查看集群是否启动成功在浏览器查看http://master:50070/检查namenode和datanode是否正常
在浏览器查看http://master:18088/查看YARN是否正常
好啦,祝你顺利!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)