1、环境准备
本次环境准备三台机器192.168.153.10、192.168.153.11、192.168.153.12,首先将机器的网络环境配置好。
2、配置hosts文件
vi /etc/hosts:
192.168.153.10 master
192.168.153.11 slave01
192.168.153.12 slave02
3、关闭SELinux和防火墙
1.关闭SELinux:
vi /etc/selinux/config ,修改如下:
SELINUX=disabled
2. 关闭防火墙:
service iptables stop
chkconfig iptables off
chkconfig iptables --list
4、设置SSH免密登录
1.生成密钥:
ssh-keygen -t rsa(默认位于 ~/.ssh/)
2. 拷贝公钥到所有机器:(每台机器都执行一下三个命令)
ssh-copy-id root@master
ssh-copy-id root@slave01
ssh-copy-id root@slave02
3.测试免密登录:
ssh master
ssh slave01
ssh slave02
5、设置NTP时间同步
1.安装 ntp
yum –y install ntp
2.设置NTP服务开机启动
chkconfig ntpd on
将master设置为主服务器(在master节点操作):
1. vi /etc/ntp.conf,内容如下:
driftfile /var/lib/ntp/ntp.drift #草稿文件
# 允许内网其他机器同步时间
restrict 192.168.153.10 mask 255.255.255.0 nomodify notrap
# Use public servers from the pool.ntp.org project.
# 中国这边最活跃的时间服务器 : [http://www.pool.ntp.org/zone/cn](http://www.pool.ntp.org/zone/cn)
server 210.72.145.44 perfer # 中国国家受时中心
server 202.112.10.36 # 1.cn.pool.ntp.org
server 59.124.196.83 # 0.asia.pool.ntp.org
# allow update time by the upper server
# 允许上层时间服务器主动修改本机时间
restrict 210.72.145.44 nomodify notrap noquery
restrict 202.112.10.36 nomodify notrap noquery
restrict 59.124.196.83 nomodify notrap noquery
# 外部时间服务器不可用时,以本地时间作为时间服务
server 127.127.1.0 # local clock
fudge 127.127.1.0 stratum 10
2. 重启服务: service ntpd restart
3. 查看同步状态: netstat -tlunp | grep ntp
设置slave到master 的同步(在slave节点操作):
1. vi /etc/ntp.conf,内容如下:
driftfile /var/lib/ntp/ntp.drift # 草稿文件
statsdir /var/log/ntpstats/
statistics loopstats peerstats clockstats
filegen loopstats file loopstats type day enable
filegen peerstats file peerstats type day enable
filegen clockstats file clockstats type day enable
# 让NTP Server为内网的ntp服务器
server 192.168.153.10
fudge 192.168.153.10 stratum 5
# 不允许来自公网上ipv4和ipv6客户端的访问
restrict -4 default kod notrap nomodify nopeer noquery
restrict -6 default kod notrap nomodify nopeer noquery
# Local users may interrogate the ntp server more closely.
restrict 127.0.0.1
restrict ::1
2. 重启服务: service ntpd restart
3. 手动同步: ntpdate -u 192.168.153.10
6、软件版本号
安装路径
7、各个软件对应的环境变量配置
vi /etc/profile:
export HADOOP_HOME=/root/hadoop
export JAVA_HOME=/root/jdk1.8
export JRE_HOME=/root/jdk1.8/jre
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$SCALA_HOME/bin:$HADOOP_HOME/bin:$SPARK_HOME/bin
export SCALA_HOME=/root/scala
export SPARK_HOME=/root/spark
export PATH=$SPARK_HOME/bin:$SCALA_HOME/bin:$HADOOP_HOME/bin:$JAVA_HOME/bin:$PATH
export HADOOP_ROOT_LOGGER=ERROR
8、hadoop相关配置文件
文件目录:/root/hadoop/etc/hadoop
core-site.xml
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:9000</value>
<description>namenode通信地址</description>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/root/data/tmp</value>
<description>临时文件存储路径</description>
</property>
</configuration>
hadoop-env.sh增加如下配置:
export JAVA_HOME=/root/jdk1.8
hdfs-site.xml
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/root/data/namenode</value>
<final>true</final>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/root/data/data</value>
<final>true</final>
</property>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>master:9001</value>
</property>
<property>
<name>dfs.webhdfs.enabled</name>
<value>true</value>
</property>
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>
</configuration>
mapred-site.xml
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
yarn-site.xml
<?xml version="1.0"?>
<configuration>
<!-- Site specific YARN configuration properties -->
<property>
<name>yarn.resourcemanager.address</name>
<value>master:8040</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>master:8030</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>master:8088</value>
<description>ResourceManager对外web ui地址。用户可通过该地址在浏览器中查看集群各类信息</description>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>master:8025</value>
</property>
<property>
<name>yarn.resourcemanager.admin.address</name>
<value>master:8141</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
<description>NodeManager上运行的附属服务。需配置成mapreduce_shuffle,才可运行MapReduce程序</description>
</property>
<property>
<name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
<property>
<name>yarn.acl.enable</name>
<value>false</value>
</property>
<property>
<name>yarn.admin.acl</name>
<value>*</value>
</property>
</configuration>
slaves
slave01
slave02
从节点增加masters文件配置:
master
9、spark的配置文件
目录:/root/spark/conf
spark-env.sh
#Java安装目录
export JAVA_HOME=/root/jdk1.8
#Scala安装目录
export SCALA_HOME=/root/scala
#hadoop安装目录
export HADOOP_HOME=/root/hadoop
#hadoop集群的配置文件的目录
export HADOOP_CONF_DIR=/root/hadoop/etc/hadoop
#spark集群的Master节点的ip地址
export SPARK_MASTER_IP=master
#每个worker节点所占有的CPU核数目
export SPARK_WORKER_CORES=1
#每台机器上开启的worker节点的数目
export SPARK_WORKER_INSTANCES=1
#交互界面的端口号
export SPARK_MASTER_WEBUI_PORT=18080
slaves文件
slave01
slave02
10、启动Hadoop集群和Spark集群
启动Hadoop集群
首次运行Hadoop需要初始化HDFS文件系统:
进入/root/hadoop/bin目录运行:hdfs namenode -format
进入目录:/root/hadoop/sbin
执行命令:
sh start-dfs.sh
sh start-yarn.sh
启动spark集群
进入目录:/root/spark/sbin
执行命令:
sh start-all.sh
在对应主机执行jps命令查看对应服务是否开启
11、Hadoop和Spark页面访问效果
Hadoop页面地址:http://192.168.153.10:50070、http://192.168.153.10:8088/
Spark页面地址:http://192.168.153.10:18080/