hadoop平台搭建(CentOS7 )
一、基础环境搭建
#以下操作都在root用户下
1、修改主机名(三台)
两种修改主机方式
1、修改主机名为master
方式一:
[[email protected]~]# hostnamectl set-hostname master
方式二:永久修改主机名
[[email protected]~]# vi /etc/sysconfig/network
2、下载相关工具(方便使用ifconfig/netstatus,也可以不安装)
[[email protected] ~]# yum install -y net-tools
3、重启reboot
4、查看主机名修改是否生效hostname
2.配置网络(三台):
1、打开网络配置文件
[[email protected] ~]#vi /etc/sysconfig/network-scripts/ifcfg-ens33
2、重新启动网络服务
[[email protected] ~]# service network restart
3、查看IP地址是否修改成功
[[email protected] ~]# ip addr
4、测试网络是否ping通
ping www.baidu.com
ping slave1和slave2
3.配置 hosts文件(三台):
hosts文件主要用于保存每个节点的ip地址,方便每个节点通过节点主机名连接对应的ip地址
[[email protected] ~]$ vi /etc/hosts
4.关闭防火墙(三台)
Stop停止防火墙 disable关闭开机自启 status查看防火墙状态:
[[email protected] ~]# systemctl stop firewalld
[[email protected] ~]# systemctl disable firewalld
[[email protected] ~]# systemctl status firewalld
5.时间同步(三台)
1、时区同步
先确保时区一样,否则同步以后时间也有时区差
[[email protected] ~]# timedatectl set-timezone Asia/Shanghai
[[email protected] ~]# timedatectl status
查看是否已安装ntp
[[email protected] ~]# rpm -qa | grep ntp
删除已安装ntp
[[email protected] ~]# yum -y remove ntpdate-4.2.6p5-28.el7.centos.x86_64
2、安装ntp
=== ntp 网络时间协议,用来同步时间,master作为ntp服务器,其余的当作ntp客户端
[[email protected] ~]# yum -y install ntp
2、修改ntp配置文件
[[email protected] ~]# vi /etc/ntp.conf
1)master:
2)slave1和slave2:
3、重启时间服务器,设置开机自启
restart重启ntp enable开机自启 status查看状态
[[email protected] ~]# systemctl restart ntpd
[[email protected] ~]# systemctl enable ntpd
[[email protected] ~]# systemctl status ntpd
4、使用# ntpstat命令查看slave1和slave2节点的时间同步状态,这个一般需要5分钟后才能成功连接和同步。所以,服务器启动后需要稍等下。
slave12连接master服务器成功后的状态是:
5、用# date命令或者# timedatectl status命令检查三台机器时间是否一样,相同则同步成功
5、免**登录配置
新建用户hadoop:
[[email protected] ~]# useradd hadoop
[[email protected] ~]# passwd hadoop
[[email protected] ~]# su Hadoop
接下来的操作在hadoop用户下
产生公私**(三台)
分别在三台机器输入下面命令
[[email protected] ~]$ ssh-****** -t rsa
(一直回车,直到出现下面图形)
接下来的操作只在master执行
2、查看.ssh下有id_rsa和id_rsa.pub, id_rsa 是私钥,id_rsa.pub 是公钥。
[[email protected] ~]$ cd .ssh
[[email protected] ~]$ cd ls
3、将公钥文件添加到authorized_keys文件
[[email protected] .ssh]$ cat id_rsa.pub >> authorized_keys
4、给authorized_keys赋读写权限
[[email protected] .ssh]$ chmod 600 authorized_keys
5、master分发**:
[[email protected] .ssh]$ scp authorized_keys [email protected]:~/.ssh
[[email protected] .ssh]$ scp authorized_keys [email protected]:~/.ssh
6、master节点与其他机器的首次连接是需要“YES”确认连接的,之后便可免密登录slave12。
[[email protected] ~]$ ssh slave1
[[email protected] ~]$ exit
[[email protected] ~]$ ssh slave2
[[email protected] ~]$ exit
设置完成,master可以通过ssh命令免密登录slave12了
6、 安装 JDK
1、在root用户下执行
1、删除原有的jdk
jdk:[[email protected] ~]#yum remove java-1.*
2、新建java文件夹:
[[email protected] ~]# mkdir /usr/java
3、上传jdk软件包jdk-8u171-linux-x64.tar.gz到/usr/java
4、解压到/usr/java :
[[email protected] java]# tar -xvf /usr/java/jdk-8u171-linux-x64.tar.gz
5、再赋予执行权限:
[[email protected] ~]# chmod +x /usr/java/jdk1.8.0_171/bin/cd
2、下面切换到Hadoop用户
1、查看jdk存放路径是否正确:
[[email protected] ~]$ cd /usr/java/jdk1.8.0_131
[[email protected] jdk1.8.0_131 ]$ pwd
2、配置环境变量:
[[email protected] ~]$ vi .bashrc
export JAVA_HOME=/usr/java/jdk1.8.0_171
export PATH=$PATH:$JAVA_HOME/bin
[[email protected] ~]$ source .bashrc
4、查看jdk版本:
[[email protected] ~]$ java -version
master节点jdk配置成功!
5、复制到其它机器:
[[email protected] ~]$ scp .bashrc [email protected]:~/
[[email protected] ~]$ scp .bashrc [email protected]:~/
[[email protected] ~]# scp -r /usr/java [email protected]:/usr/
[[email protected] ~]# scp -r /usr/java [email protected]:/usr/6、在其他两台机器上:
[[email protected] ~]$ . .bashrc
[[email protected] ~]$ java –version
能查到版本号则配置成功!
. .bashrc 等效于source .bashrc
source可以用“.”替换使用
非root用户:
~/.bash_profile文件:用户级的设置,只对当前用户有效,开机不自启
~/.bashrc文件:只对当前用户有效,开机自启
root用户:
/etc/bashrc文件:系统全局环境变量,对所有用户有效,开机自启
/etc/profile文件:系统全局环境变量,对所有用户有效
二、Hadoop集群搭建
1、Hadoop安装配置
1、分别在三台机器上新建software文件夹:(三台)
[[email protected] ~]$ mkdir /home/hadoop/software
[[email protected] ~]$ cd /home/hadoop/software
上传hadoop包hadoop-2.7.3.tar.gz到/home/hadoop/software
解压:
[[email protected] software]$ tar -zxvf hadoop-2.7.3.tar.gz
4、修改配置文件
[[email protected] software]$ cd /home/hadoop/software/hadoop-2.7.3/etc/hadoop
1)修改hadoop-env.sh
[[email protected] hadoop]$ vi hadoop-env.sh
注释原有的,添加:export JAVA_HOME=/usr/java/jdk1.8.0_171
2)修改 yarn-env.sh
[[email protected] hadoop]$ vi yarn-env.sh
找到:# export JAVA_HOME=/home/y/libexec/jdk1.6.0/
添加:export JAVA_HOME=/usr/java/jdk1.8.0_171
3)修改 core-site.xml
[[email protected] hadoop]$ vi core-site.xml
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/home/hadoop/software/hadoopdata</value>
</property>
<property>
<name>hadoop.proxyuser.hadoop.hosts</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.hadoop.groups</name>
<value>*</value>
</property>
</configuration>
4)修改 hdfs-site.xml
[[email protected] hadoop]$ vi hdfs-site.xml
<configuration>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
</configuration>
5)修改 yarn-site.xml
[[email protected] hadoop]$ vi yarn-site.xml
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.resourcemanager.address</name>
<value>master:18040</value>
</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>
</configuration>
6)修改 mapred-site.xml
[[email protected] hadoop]$ cp mapred-site.xml.template mapred-site.xml
[[email protected] hadoop]$ vi mapred-site.xml
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
7)修改slaves
[[email protected] hadoop]$ vi slaves
删除内容,添加:
slave1
slave2
5、复制到slave节点
使用下面的命令将已经配置完成的 hadoop 复制到slave节点上:
[[email protected] hadoop]$ cd /home/hadoop/software
[[email protected] software]$ scp -r hadoop-2.7.3 slave1:/home/hadoop/software/hadoop-2.7.3
[[email protected] software]$ scp -r hadoop-2.7.3 slave2:/home/hadoop/software/hadoop-2.7.3
6、配置 hadoop的环境变量
[[email protected] ~]$ vi .bashrc
1)将下面的代码追加到末尾:
export HADOOP_HOME=/home/hadoop/software/hadoop-2.7.3
export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
2)使环境变量生效:
[[email protected] ~]$ source .bashrc
3)复制.bashrc文件给另外两台:
[[email protected] ~]$ scp -r .bashrc slave1:/home/hadoop/
[[email protected] ~]$ scp -r .bashrc slave2:/home/hadoop/
4)在slave1和2中使.bashrc文件生效:
[[email protected] ~]$ . .bashrc
[[email protected] ~]$ . .bashrc
7、启动hadoop集群
1)创建数据目录hadoopdata
[[email protected] ~]$ mkdir /home/hadoop/software/hadoopdata
[[email protected] ~]$ mkdir /home/hadoop/software/hadoopdata
[[email protected] ~]$ mkdir /home/hadoop/software/hadoopdata
2)master中格式化hdfs文件系统
[[email protected] ~]$ hdfs namenode -format
3)启动hadoop
[[email protected] ~]$start-all.sh
4)查看java进程(三台)
[[email protected] ~]$ jps
[[email protected] ~]$ jps
[[email protected] ~]$ jps
启动成功!
8、通过网页查看启动是否正常
1)打开浏览器,访问http://192.168.6.100:50070/,检查namenode 和 datanode 是否正常
2)访问http://192.168.6.100:18088/,检查 Yarn 是否正常。