服务器环境
/etc/hosts
每一台服务设置 hosts
vi
192.168.0.16 master
192.168.0.14 slave1
192.168.0.9 slave2
SSH 互相免密码登陆
1、master
ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
scp id_dsa.pub root@slave1:/root/
scp id_dsa.pub root@slave2:/root/
2、slave1
cat id_dsa.pub >>authorized_keys
3、slave2
cat id_dsa.pub >>authorized_keys
4、进入 slave1 循环 1-3 步骤
安装 JDK
Java1.8 环境搭建
下载 jdk1.8
http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
设置环境变量
vim /etc/profile
export JAVA_HOME=/usr/local/jdk1.8.0_131
PATH=$JAVA_HOME/bin:$PATH
CLASSPATH=.:$JAVA_HOME/lib/rt.jar
export JAVA_HOME PATH CLASSPATH
source /etc/profile
Scala2.12.4 环境搭建
1)下载 scala 安装包 scala-2.12.4.rpm 安装
wget https://downloads.lightbend.com/scala/2.12.4/scala-2.12.4.rpm
rpm -ivh scala-2.12.4.rpm
2)添加 Scala 环境变量,在/etc/profile 中添加:
export SCALA_HOME=/usr/share/scala
export PATH=$SCALA_HOME/bin:$PATH
Hadoop2.7.4 完全分布式搭建
下载 wget http://www-eu.apache.org/dist/hadoop/common/hadoop-2.7.4/hadoop-2.7.4.tar.gz
以下是在 Master 节点操作:
1)下载二进制包 hadoop-2.7.4.tar.gz
2)解压并移动到相应目录,我习惯将软件放到/opt 目录下,命令如下:
tar -zxvf hadoop-2.7.4.tar.gz
mv hadoop-2.7.4 /ctdata
3)修改相应的配置文件。
修改/etc/profile,增加如下内容:
复制代码
export HADOOP_HOME=/ctdata/hadoop-2.7.4/
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export YARN_HOME=$HADOOP_HOME
export HADOOP_ROOT_LOGGER=INFO,console
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib:$HADOOP_COMMON_LIB_NATIVE_DIR"
复制代码
修改完成后执行:
source /etc/profile
修改$HADOOP_HOME/etc/hadoop/hadoop-env.sh,修改 JAVA_HOME 如下:
export JAVA_HOME=/usr/local/jdk1.8.0_121
修改$HADOOP_HOME/etc/hadoop/slaves,将原来的 localhost 删除,改成如下内容:
slave1
slave2
修改$HADOOP_HOME/etc/hadoop/core-site.xml
复制代码
fs.defaultFS
hdfs://master:9000
io.file.buffer.size
131072
hadoop.tmp.dir
/ctdata/hadoop-2.7.4/tmp
复制代码
修改$HADOOP_HOME/etc/hadoop/hdfs-site.xml
复制代码
dfs.namenode.secondary.http-address
master:50090
dfs.replication
2
dfs.namenode.name.dir
file:/ctdata/hadoop-2.7.4/hdfs/name
dfs.datanode.data.dir
file:/ctdata/hadoop-2.7.4/hdfs/data
复制代码
复制 template,生成 xml,命令如下:
cp mapred-site.xml.template mapred-site.xml
修改$HADOOP_HOME/etc/hadoop/mapred-site.xml
复制代码
mapreduce.framework.name
yarn
mapreduce.jobhistory.address
master:10020
mapreduce.jobhistory.address
master:19888
复制代码
修改$HADOOP_HOME/etc/hadoop/yarn-site.xml
复制代码
yarn.nodemanager.aux-services
mapreduce_shuffle
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:8088
复制代码
4)复制 Master 节点的 hadoop 文件夹到 Slave1 和 Slave2 上。
scp -r /opt/hadoop-2.7.3 root@Slave1:/opt
scp -r /opt/hadoop-2.7.3 root@Slave2:/opt
5)在 Slave1 和 Slave2 上分别修改/etc/profile,过程同 Master 一样。
6)在 Master 节点启动集群,启动之前格式化一下 namenode:
hadoop namenode -format
启动:
/opt/hadoop-2.7.3/sbin/start-all.sh
至此 hadoop 的完全分布式环境搭建完毕。
7)查看集群是否启动成功:
jps
Master 显示:
SecondaryNameNode
ResourceManager
NameNode
jps
40866 Jps
102674 MainGenericRunner
40389 SecondaryNameNode
40182 NameNode
98649 QuorumPeerMain
40554 ResourceManager
Slave 显示:
NodeManager
DataNode
jps
102608 QuorumPeerMain
111283 DataNode
111575 Jps
5753 Bootstrap
122060 Main
Spark2.1.0 完全分布式环境搭建
wget http://d3kbcqa49mib13.cloudfront.net/spark-2.1.0-bin-hadoop2.7.tgz
以下操作都在 Master 节点进行。
1)下载二进制包 spark-2.1.0-bin-hadoop2.7.tgz
2)解压并移动到相应目录,命令如下:
tar -zxvf spark-2.1.0-bin-hadoop2.7.tgz
mv hadoop-2.7.3 /opt
3)修改相应的配置文件。
修改/etc/profie,增加如下内容:
export SPARK_HOME=/opt/spark-2.1.0-bin-hadoop2.7/
export PATH=$PATH:$SPARK_HOME/bin
复制 spark-env.sh.template 成 spark-env.sh
cp spark-env.sh.template spark-env.sh
修改$SPARK_HOME/conf/spark-env.sh,添加如下内容:
复制代码
export JAVA_HOME=/usr/local/jdk1.8.0_131
export SCALA_HOME=/usr/share/scala
export HADOOP_HOME=/ctdata/hadoop-2.7.4
export HADOOP_CONF_DIR=/ctdata/hadoop-2.7.4/etc/hadoop
export SPARK_MASTER_IP=192.168.0.16
export SPARK_MASTER_HOST=192.168.0.16
export SPARK_LOCAL_IP=192.168.0.16
export SPARK_WORKER_MEMORY=1g
export SPARK_WORKER_CORES=2
export SPARK_HOME=/ctdata/spark-2.1.0-bin-hadoop2.7
export SPARK_DIST_CLASSPATH=$(/ctdata/hadoop-2.7.4/bin/hadoop classpath)
复制代码
复制 slaves.template 成 slaves
cp slaves.template slaves
修改$SPARK_HOME/conf/slaves,添加如下内容:
master
slave1
slave2
4)将配置好的 spark 文件复制到 Slave1 和 Slave2 节点。
scp -r /ctdata/spark-2.1.0-bin-hadoop2.7 root@slave1:/opt
scp -r /ctdata/spark-2.1.0-bin-hadoop2.7 root@slave2:/opt
5)修改 slave1 和 slave2 配置。
在 slave1 和 slave2 上分别修改/etc/profile,增加 Spark 的配置,过程同 Master 一样。
在 slave1 和 slave2 修改$SPARK_HOME/conf/spark-env.sh,将 export
SPARK_LOCAL_IP=114.55.246.88 改成 Slave1 和 Slave2 对应节点的 IP。
6)在 Master 节点启动集群。
/opt/spark-2.1.0-bin-hadoop2.7/sbin/start-all.sh
7)查看集群是否启动成功:
jps
Master 在 Hadoop 的基础上新增了:
Master
jps
43986 Worker
102674 MainGenericRunner
40389 SecondaryNameNode
40182 NameNode
44055 Jps
98649 QuorumPeerMain
40554 ResourceManager
43853 Master