Spark集群安装用户手册
1. 安装虚拟机,安装centos7(liunx操作系统)虚拟机取名为CDHNode1
2. 为centos7操作系统设置静态ip
2.1虚拟机网络适配器采用桥接方法
2.2配置DNS:
修改 /etc/resolv.conf 文件,添加如下代码:
nameserver 192.168.1.101
2.3.配置固定IP地址:
修改 /etc/sysconfig/network-scripts/ifcfg-eth0 文件,该文件全部代码如下:
设置静态ip完成(虚拟机克隆时只需要改一下ip)克隆虚拟机至五个(192.168.1.101 192.168.1.102 192.168.1.103 192.168.1.104 192.168.1.105)
2.3修改对应的主机名CDHNode1至CDHNode5
Vim etc/sysconfig/network
3.使用Xshell远程连接centos系统
3.1、首先点击新建按钮,如下;在新建会话属性对话框中输入名称和需要连接的主机ip地址。
3.2、接下来点击左侧的用户身份验证,输入要登录主机的用户名和密码,点击确定,此时创建成功。
3.3 4、此时连接成功,即可进行远程操作
3.4依次连接CDHNode1到CDNode5
3.5:同步各主机的时间
a. 使用data设置日期时间
b. date –s 09/31/17 设置日期为2017年09月31日
c. date –s 13:48:59
- 配置ssh免密登录
接上面的配置,我们已经使用Xshell远程登录上五个节点。下面我们就配置免密码登录hadoop用户,如果你使用root用户登录的,需要先切换到hadoop用户,使用 su hadoop命令切换。步骤如下:
3.1、首先切换到hadoop的家目录下,使用cd /home/hadoop命令来切换。然后在hadoop家目录下创建 .ssh目录。
3.2然后生成hadoop用户的rsa(非对称加密算法),运行如下命令后,一直回车,即可生成hadoop的公钥和私钥 shh –keygen –t rsa
3.3 切换到 .ssh目录下,即可看到已经生成的公钥和私钥。
3.4 按照上面的步骤,在所有节点上生成公钥和私钥,接下来需要把所有节点的公钥发到CDHNode1节点的授权文件。如下图,我们使用Xshell最下方的撰写栏向所有节点发送ssh-copy-id CDHNode1命令。
3.5 可以查看CDHNode1节点的授权文件authorized_keys中是否把所有节点的公钥都添加到此文件中,若有节点没有加入,则可以使用上一步命令重新添加。
3.6然后我们就把这个文件拷贝到其他节点的.ssh目录下
CDHNode3、CDHNode4、CDHNode5按照上述命令自己执行。注意,这个命令是在CDHNode1节点上执行的。
3.7根据下图,可以看到CDHNode5下已经复制了一份authorized_keys文件。下面以CDHNode5为例,修改.ssh目录以及.ssh目录下的文件的权限。其他节点按照如下步骤 一 一 修改
3.8修改好权限后,至此ssh配置成功,可以使用ssh测试是否配置成功,第一次使用ssh连接其他节点时需要输入yes,退出使用exit命令,在第二次登陆时,就不需要在输入,如下图直接登陆并显示最后登录时间
提示:rsa非对称加密算法是把公钥发送个对方,对方使用公钥对数据进行加密后,自己在使用私钥对数据进行解密。
免密码登录的原理:
1. 需要依靠密钥,也就是自己创建的一对密钥,并把公钥放到需要访问的服务器上。
2. 如果你需要连接SSH服务器,客户端软件就会向服务器发出请求,请求用你的密钥进行安全验证。
3. 服务器收到请求后,现在该服务器上的主目录下寻找你的公钥,然后把它和你发送过来的公钥进行比较。如果两个密钥一致,服务端就用公钥加密“质询”(challenge),并把它发送给客户端软件。
4. 客户端收到“质询”后,就用你的私钥进行解密。再把它发送个服务器。
5. 服务器比较发送来的“质询”和原先的是否一致,如果一致则进行授权,完成建立会话的操作。
脚本工具的使用
此处使用脚本文件的目的是为了简化安装步骤,毕竟有五个节点,如果全部使用命令一个一个操作,太费时费力了。为了简化操作,我们使用脚本文件来帮助我们执行多个重复的命令。就就相当于windows的批处理,把所有的命令集中起来,一个命令完成多个操作。
下面我们在CDHNode1节点上新建三个文件,deploy.conf(配置文件),deploy.sh(实现文件复制的shell脚本文件),runRemoteCdm.sh(在远程节点上执行命令的shell脚本文件)。
1、我们把三个文件放到/home/hadoop/tools目录下,先创建此目录
[hadoop@CDHNode1 ~]
mkdir/home/hadoop/tools2、然后切换到tools目录下[hadoop@CDHNode1 ]
cd tools
3、首先创建deploy.conf文件
[hadoop@CDHNode1 tools]$ vi deploy.conf
CDHNode1,all,zookeeper,journalnode,namenode,resourcemanager,
CDHNode2,all,slave,zookeeper,journalnode,namenode,datanode,resourcemanager,
CDHNode3,all,slave,zookeeper,journalnode,datanode,nodemanager,
CDHNode4,all,slave,journalnode,datanode,nodemanager,
CDHNode5,all,slave,journalnode,datanode,nodemanager,
先解释一下这个文件,这个文件就是配置在每个几点上的功能。比如zookeeper安装在CDHnode1、CDHnode2、CDHnode3这三个主机上。其他的自己对比查看。
4、创建deploy.sh文件
[hadoop@CDHNode1 tools]$ vi deploy.sh
!/bin/bash
set -x
if [ $# -lt 3 ]
then
echo “Usage: ./deply.sh srcFile(or Dir) descFile(or Dir) MachineTag”
echo “Usage: ./deply.sh srcFile(or Dir) descFile(or Dir) MachineTag confFile”
exit
fi
src=
1dest=
2
tag=
3if[‘a′
4’a’ == ‘aa’ ]
then
confFile=/usr/hadoop/tools/deploy.conf
else
confFile=$4
fi
if [ -f
confFile]thenif[−f
src ]
then
for server in cat $confFile|grep -v '^#'|grep ','$tag','|awk -F',' '{print $1}'
do
scp
src
server”:”
destdoneelif[−d
src ]
then
for server in cat $confFile|grep -v '^#'|grep ','$tag','|awk -F',' '{print $1}'
do
scp -r
src
server”:”${dest}
done
else
echo “Error: No source file exist”
fi
else
echo “Error: Please assign config file or run deploy.sh command with deploy.conf in same directory”
fi
5、创建 runRemoteCmd.sh 脚本文件
[hadoop@CDHNode1 tools]$ vi runRemoteCmd.sh
!/bin/bash
set -x
if [ $# -lt 2 ]
then
echo “Usage: ./runRemoteCmd.sh Command MachineTag”
echo “Usage: ./runRemoteCmd.sh Command MachineTag confFile”
exit
fi
cmd=
1tag=
2
if [ ‘a’$3’a’ == ‘aa’ ]
then
confFile=/usr/hadoop/tools/deploy.conf
else
confFile=$3
fi
if [ -f $confFile ]
then
for server in cat $confFile|grep -v '^#'|grep ','$tag','|awk -F',' '{print $1}'
do
echo “*********
server∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗”ssh
server "source /etc/profile; $cmd”
done
else
echo “Error: Please assign config file or run deploy.sh command with deploy.conf in same directory”
fi
6、给脚本文件添加执行权限。
[hadoop@CDHNode1 tools]
chmodu+xdeploy.sh[hadoop@CDHNode1tools]
chmod u+x runRemoteCmd.sh
7、把tools目录添加到环境变量PATH中。
[hadoop@CDHNode1 tools]$vi /home/hadoop/.bash_profile
添加下面内容?
tools
export PATH= PATH:/home/hadoop/tools8、是环境变量及时生效[hadoop@CDHNode1tools] source /home/hadoop/.bash_profile
9、在CDHNode1节点上,通过runRemoteCmd.sh脚本,一键创建所有节点的软件安装目录/home/hadoop/app。
[hadoop@CDHNode1 tools]$ runRemoteCmd.sh “mkdir /home/hadoop/app” all
我们可以在所有节点查看到/home/hadoop/app目录已经创建成功。
我们先来说一下软件的安装步骤:
对于解压安装的软件,安装步骤为:
1. 使用rz命令上传要安装的文件,此命令只能在远程连接工具xshell上执行,不能再centos虚拟机上执行
2. 使用tar -zxvf softwarename.tar.gz
3. 修改配置文件(根据需要而定,有时可省略)
4. 在环境变量文件中配置环境变量
5. 使用source 是环境变量文件即时生效。
安装JDK
首先在CDHNode1上安装jdk,然后复制到其他节点。
1、上传使用rz后,找到下载的jdk文件(jdk-7u79-Linux-x64.tar.gz )即可,选择后就可以上传,上传需要时间。
[hadoop@CDHNode1 ~]
cd/home/hadoop/app[hadoop@CDHNode1app]
rz //选择本地的下载好的jdk
2、解压.jdk-8u131-linux-i586.tar.gz
[hadoop@CDHNode1 app]$ tar zxvf jdk-7u79-linux-x64.tar.gz //解压
3、修改jdk的名字,删除上传的压缩文件.jdk-8u131-linux-i586.tar.gz
[hadoop@CDHNode1 app]
mvj.jdk−8u131−linux−i586.tar.gz[hadoop@CDHNode1app]
rm -rf .jdk-8u131-linux-i586.tar.gz
4、配置环境变量
[hadoop@CDHNode1 app]$vi /home/hadoop/.bash_profile
java
export JAVA_HOME=/home/hadoop/app/jdk
export CLASSPATH=.:
JAVAHOME/lib:
CLASSPATH
export PATH=
PATH:
JAVA_HOME/bin:$JAVA_HOME/jre/bin
5、使环境变量文件即时生效
[hadoop@CDHNode1 app]$source /home/hadoop/.bash_profile
6、查看是否安装成功,查看Java版本
[hadoop@CDHNode1 app]# java -version
出现以上结果就说明CDHNode1节点上的jdk安装成功。
然后将CDHNode1下的jdk安装包复制到其他节点上。
[hadoop@CDHNode1 app]$ deploy.sh jdk /home/hadoop/app/ slave
CDHNode2、CDHNode3、CDHNode4、CDHNode5加点重复CDHNode1上的jdk配置即可。就是在其他节点上从第4步开始配置。
、安装Zookeeper
首先在CDHNode1上安装Zookeeper,然后复制到其他节点。
1、 将本地下载好的zookeeper-3.4.6.tar.gz安装包,上传至CDHNode1节点下的/home/hadoop/app目录下。
[hadoop@CDHNode1 app]$ rz //选择本地下载好的zookeeper-3.4.8.tar.gz
2、解压zookeeper-3.4.8.tar.gz
[hadoop@CDHNode1 app]$ tar zxvf zookeeper-3.4.8.tar.gz
3、修改zookeeper的名字,删除上传的压缩文件zookeeper-3.4.8.tar.gz
[hadoop@CDHNode1 app]
rm−rfzookeeper−3.4.6.tar.gz//删除zookeeper−3.4.8.tar.gz安装包[hadoop@CDHNode1app]
mv zookeeper-3.4.8 zookeeper //重命名
4、修改Zookeeper中的配置文件。
[hadoop@CDHNode1 app]
cd/home/hadoop/app/zookeeper/conf/[hadoop@CDHNode1conf]
cp zoo_sample.cfg zoo.cfg //复制一个
hadoop@CDHNode1 conf]$ vi zoo.cfg
添加下面的
The number of milliseconds of each tick
tickTime=2000
The number of ticks that the initial
synchronization phase can take
initLimit=10
The number of ticks that can pass between
sending a request and getting an acknowledgement
syncLimit=5
the directory where the snapshot is stored.
do not use /tmp for storage, /tmp here is just
example sakes.
数据文件目录与日志目录
dataDir=/home/hadoop/data/zookeeper/zkdata
dataLogDir=/home/hadoop/data/zookeeper/zkdatalog
the port at which the clients will connect
clientPort=2181
server.服务编号=主机名称:Zookeeper不同节点之间同步和通信的端口:选举端口(选举leader)
server.1=CDHNode1:2888:3888
server.2=CDHNode2:2888:3888
server.3=CDHNode3:2888:3888
administrator guide before turning on autopurge.
http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance
The number of snapshots to retain in dataDir
autopurge.snapRetainCount=3
Purge task interval in hours
Set to “0” to disable auto purge feature
autopurge.purgeInterval=1
5、配置环境变量
[hadoop@CDHNode1 app]
vi/home/hadoop/.bashprofile添加exportZOOKEEPERHOME=/home/hadoop/app/zookeeperexportPATH=
PATH:$ZOOKEEPER_HOME/bin
6、使环境变量文件即时生效
[hadoop@CDHNode1 app]$source /home/hadoop/.bash_profile
7、通过远程命令deploy.sh将Zookeeper安装目录拷贝到其他节点(CDHNode2、CDHNode3)上面
[hadoop@CDHNode1 app]$deploy.sh zookeeper /home/hadoop/app/ zookeeper
8、通过远程命令runRemoteCmd.sh在所有的zookeeper节点(CDHNode1、CDHNode2、CDHNode3)上面创建目录:
[hadoop@CDHNode1 app]
runRemoteCmd.sh“mkdir−p/home/hadoop/data/zookeeper/zkdata”zookeeper//创建数据目录[hadoop@CDHNode1app]
runRemoteCmd.sh “mkdir -p /home/hadoop/data/zookeeper/zkdatalog” zookeeper //创建日志目录
9、然后分别在CDHNode1、CDHNode2、CDHNode3上面,进入zkdata目录下,创建文件myid,里面的内容分别填充为:1、2、3, 这里我们以CDHNode1为例。
[hadoop@CDHNode1 app]
cd/home/hadoop/data/zookeeper/zkdata[hadoop@CDHNode1zkdata]
vi myid
//输入数字1
CDHNode2输入数字2、CDHNode3输入数字3。
10、在CDHNode2、CDHNode3上面配置Zookeeper环境变量。按照第5、6步配置。
11、使用runRemoteCmd.sh 脚本,启动所有节点(CDHNode1、CDHNode2、CDHNode3)上面的Zookeeper。
[hadoop@CDHNode1 zkdata]$ runRemoteCmd.sh “/home/hadoop/app/zookeeper/bin/zkServer.sh start” zookeeper
12、查看所有节点上面的QuorumPeerMain进程是否启动。
[hadoop@CDHNode1 zkdata]$ runRemoteCmd.sh “jps” zookeeper
13、查看所有Zookeeper节点状态。
[hadoop@CDHNode1 zkdata]$ runRemoteCmd.sh “/home/hadoop/app/zookeeper/bin/zkServer.sh status” zookeeper
如果一个节点为leader,另2个节点为follower,则说明Zookeeper安装成功。
安装hadoop
首先在CDHNode1上安装hadoop,然后复制到其他节点。
1、 将本地下载好的hadoop-2.7.3.tar.gz安装包,上传至CDHNode1节点下的/home/hadoop/app目录下。
[hadoop@CDHNode1 app]$ rz //选择本地下载好的hadoop-2.7.3.tar.gz
2、 解压hadoop-2.7.3.tar.gz
[hadoop@CDHNode1 app]$ tar zxvf hadoop-2.7.3.tar.gz //解压
3、 修改hadoop的名字,删除上传的压缩文件hadoop-2.7.3.tar.gz
[hadoop@CDHNode1 app]
rm−rfhadoop−2.6.0−cdh5.4.5.tar.gz//删除安装包[hadoop@CDHNode1app]
mv hadoop-2.6.0 hadoop //重命名
4、 配置环境变量
[hadoop@CDHNode1 app]$vi /home/hadoop/.bash_profile
添加
hadoop_home 2.7.3 path
HADOOP_HOME=/home/hadoop/app/hadoop
PATH=
HADOOPHOME/bin:
PATH
export HADOOP_HOME PATH
5、 使环境变量文件即时生效
[hadoop@CDHNode1 app]$source /home/hadoop/.bash_profile
6、 切换到/home/hadoop/app/hadoop/etc/hadoop/目录下,修改配置文件。
[hadoop@CDHNode1 app]
cd/home/hadoop/app/hadoop/etc/hadoop/配置HDFS配置hadoop−env.sh[hadoop@CDHNode1hadoop]
vi hadoop-env.sh
export JAVA_HOME=/home/hadoop/app/jdk
配置core-site.xml
[hadoop@CDHNode1 hadoop]$ vi core-site.xml
fs.defaultFS
hdfs://cluster1
hadoop.tmp.dir
/home/hadoop/data/tmp
ha.zookeeper.quorum
CDHNode1:2181,CDHNode2:2181,CDHNode3:2181,CDHNode4:2181,CDHNode5:2181
配置hdfs-site.xml
[hadoop@CDHNode1 hadoop]$ vi hdfs-site.xml
dfs.replication
3
dfs.permissions
false
dfs.permissions.enabled
false
dfs.nameservices
cluster1
dfs.ha.namenodes.cluster1
CDHNode1,CDHNode2
dfs.namenode.rpc-address.cluster1.CDHNode1
CDHNode1:9000
dfs.namenode.http-address.cluster1.CDHNode1
CDHNode1:50070
dfs.namenode.rpc-address.cluster1.CDHNode2
CDHNode2:9000
dfs.namenode.http-address.cluster1.CDHNode2
CDHNode2:50070
dfs.ha.automatic-failover.enabled
true
dfs.namenode.shared.edits.dir
qjournal://CDHNode1:8485;CDHNode2:8485;CDHNode3:8485;CDHNode4:8485;CDHNode5:8485/cluster1
dfs.client.failover.proxy.provider.cluster1
org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider
dfs.journalnode.edits.dir
/home/hadoop/data/journaldata/jn
dfs.ha.fencing.methods
shell(/bin/true)
dfs.ha.fencing.ssh.private-key-files
/home/hadoop/.ssh/id_rsa
dfs.ha.fencing.ssh.connect-timeout
10000
dfs.namenode.handler.count
100
配置 slave
[hadoop@CDHNode1 hadoop]$ vi slaves
CDHNode3
CDHNode4
CDHNode5
YARN安装配置
配置mapred-site.xml
[hadoop@CDHNode1 hadoop]$ vi mapred-site.xml
mapreduce.framework.name
yarn
<– 指定运行mapreduce的环境是Yarn,与hadoop1不同的地方 –>
配置yarn-site.xml
[hadoop@CDHNode1 hadoop]$ vi yarn-site.xml
yarn.resourcemanager.connect.retry-interval.ms
2000
yarn.resourcemanager.ha.enabled
true
yarn.resourcemanager.ha.automatic-failover.enabled
true
yarn.resourcemanager.ha.automatic-failover.embedded
true
yarn.resourcemanager.cluster-id
yarn-rm-cluster
yarn.resourcemanager.ha.rm-ids
rm1,rm2
yarn.resourcemanager.hostname.rm1
CDHNode1
yarn.resourcemanager.hostname.rm2
CDHNode2
yarn.resourcemanager.recovery.enabled
true
yarn.resourcemanager.zk.state-store.address
CDHNode1:2181,CDHNode2:2181,CDHNode3:2181,CDHNode4:2181,CDHNode5:2181
yarn.resourcemanager.zk-address
CDHNode1:2181,CDHNode2:2181,CDHNode3:2181,CDHNode4:2181,CDHNode5:2181
yarn.resourcemanager.address.rm1
CDHNode1:8032
yarn.resourcemanager.scheduler.address.rm1
CDHNode1:8034
yarn.resourcemanager.webapp.address.rm1
CDHNode1:8088
yarn.resourcemanager.address.rm2
CDHNode2:8032
yarn.resourcemanager.scheduler.address.rm2
CDHNode2:8034
yarn.resourcemanager.webapp.address.rm2
CDHNode2:8088
yarn.nodemanager.aux-services
mapreduce_shuffle
yarn.nodemanager.aux-services.mapreduce_shuffle.class
org.apache.hadoop.mapred.ShuffleHandler
向所有节点分发hadoop安装包。
[hadoop@CDHNode1 app]$ deploy.sh hadoop /home/hadoop/app/ slave
建立好目录(用于存放数据的目录):
runRemoteCmd.sh “mkdir -p /home/hadoop/data/name” all
runRemoteCmd.sh “mkdir -p /home/hadoop/data/hdfs/edits” all
runRemoteCmd.sh “mkdir -p /home/hadoop/data/datanode” all
runRemoteCmd.sh “mkdir -p /home/hadoop/data/journaldata/jn” all
runRemoteCmd.sh “mkdir -p /home/hadoop/data/tmp” all
runRemoteCmd.sh “touch /home/hadoop/app/hadoop/etc/hadoop/excludes” all
runRemoteCmd.sh “mkdir -p /home/hadoop/data/pid” all
当你的在初始化工程中出错,要把相关目录的文件删除,然后再重新初始化
rm -rf /home/hadoop/data/name/*
rm -rf /home/hadoop/data/hdfs/edits/*
rm -rf /home/hadoop/data/datanode/*
rm -rf /home/hadoop/data/journaldata/jn/*
rm -rf /home/hadoop/data/tmp/*
集群初始化
1、启动所有节点上面的Zookeeper进程
[hadoop@CDHNode1 hadoop]$ runRemoteCmd.sh “/home/hadoop/app/zookeeper/bin/zkServer.sh start” zookeeper
2、启动所有节点上面的journalnode进程
[hadoop@CDHNode1 hadoop]$ runRemoteCmd.sh “/home/hadoop/app/hadoop/sbin/hadoop-daemon.sh start journalnode” all
2、 首先在主节点上(比如,CDHNode1)执行格式化
[hadoop@CDHNode1 hadoop]
bin/hdfsnamenode−format//namenode格式化[hadoop@CDHNode1hadoop]
bin/hdfs zkfc -formatZK //格式化高可用
[hadoop@CDHNode1 hadoop]$bin/hdfs namenode //启动namenode
注意:执行完上述命令后,程序就会在等待状态,只有执行完下一步时,利用按下ctrl+c来结束namenode进程。
4、与此同时,需要在备节点(比如 CDHNode2)上执行数据同步
注意:同时是在执行完上一步后,上一步程序停止的情况下执行此步骤的
[hadoop@CDHNode2 hadoop]$ bin/hdfs namenode -bootstrapStandby //同步主节点和备节点之间的元数据
5、CDHNode2同步完数据后,紧接着在CDHNode1节点上,按下ctrl+c来结束namenode进程。 然后关闭所有节点上面的journalnode进程
[hadoop@CDHNode1 hadoop]$ runRemoteCmd.sh “/home/hadoop/app/hadoop/sbin/hadoop-daemon.sh stop journalnode” all //然后停掉各节点的journalnode
6、如果上面操作没有问题,我们可以一键启动hdfs所有相关进程
[hadoop@CDHNode1 hadoop]$ sbin/start-dfs.sh
启动成功之后,查看关闭其中一个namenode ,然后在启动namenode 观察切换的状况
7、验证是否启动成功
通过web界面查看namenode启动情况。
启动成功之后,查看关闭其中一个namenode ,然后在启动namenode 观察切换的状况
使用命令 kill
上传文件至hdfs
[hadoop@CDHNode1 hadoop]
via.txt//本地创建一个a.txt文件hadoopCDHhelloworldCDHhadoop[hadoop@CDHNode1hadoop]
hdfs dfs -mkdir /test //在hdfs上创建一个文件目录
[hadoop@CDHNode1 hadoop]
hdfsdfs−putdjt.txt/test//向hdfs上传一个文件[hadoop@CDHNode1hadoop]
hdfs dfs -ls /test //查看a.txt是否上传成功
如果上面操作没有问题说明hdfs配置成功。
启动YARN
1、在CDHNode1节点上执行。
[hadoop@CDHNode1 hadoop]$ sbin/start-yarn.sh
2、在CDHNode2节点上面执行。
[hadoop@CDHNode2 hadoop]$ sbin/yarn-daemon.sh start resourcemanager
同时打开一下web界面。
http://192.168.1.101:8088
关闭1 再启动
集群关启顺序
关闭YARN
a、在CDHNode2节点上面执行
hadoop@CDHNode2 hadoop]$ sbin/yarn-daemon.sh stop resourcemanager
b、在CDHNode1节点上执行
[hadoop@CDHNode1 hadoop]$ sbin/stop-yarn.sh
c、关闭HDFS
hadoop@CDHNode1 hadoop]$ sbin/stop-dfs.sh
d、关闭zookeeper
[hadoop@CDHNode1 hadoop]$ runRemoteCmd.sh “/home/hadoop/app/zookeeper/bin/zkServer.sh stop” zookeeper
再次启动集群
a、启动zookeeper
[hadoop@CDHNode1 hadoop]$ runRemoteCmd.sh “/home/hadoop/app/zookeeper/bin/zkServer.sh start” zookeeper
b、启动HDFS
[hadoop@CDHNode1 hadoop]$ sbin/start-dfs.sh
c、在CDHNode1节点上执行
[hadoop@CDHNode1 hadoop]$ sbin/start-yarn.sh
d、在CDHNode2节点上面执行
[hadoop@CDHNode2 hadoop]$ sbin/yarn-daemon.sh start resourcemanager
至此,hadoop 分布式集群搭建完毕
安装spark集群
1. 按照上面的步骤安装scala
[hadoop@CDHNode1 app]
rz//上传下载的scala−2.12.3.tgz[hadoop@CDHNode1app]
tar zxvf scala-2.12.3.tgz
[hadoop@CDHNode1 app]
rm–rfscala−2.12.3.tgz[hadoop@CDHNode1app]
mv scala-2.12.3 scala
- 配置scala
配置环境变量
[hadoop@cdhnode1 app]$ vim /home/hadoop/.bash_profile
set scala
export SCALA_HOME=/home/hadoop/app/scala
export PATH=
SCALAHOME/bin:
PATH
立即生效环境变量的配置
Source /home/Hadoop/.bash_profile
进入scala命令行
向其他节点分发安装包
[hadoop@CDHNode1 app]
deploy.shscala/home/hadoop/app/slave安装spark1.如上图下载安装在/home/Hadoop/app下2.配置spark配置环境变量[hadoop@cdhnode1app]
vim /home/hadoop/.bash_profile
添加
export SPARK_HOME=/home/hadoop/app/spark
export PATH=
SPARKHOME/bin:
PATH
立即生效环境变量的配置
Source /home/Hadoop/.bash_profile
配置spark-env.sh
[hadoop@cdhnode1 app]
cdspark/conf/[hadoop@cdhnode1conf]
vim spark-env.sh
添加如下内容
set enviroment
export JAVA_HOME=/home/hadoop/app/jdk
export SCALA_HOME=/home/hadoop/app/scala
export SPARK_MASTER_IP=192.168.1.101
export SPARK_WORKER_MEMORY=2g
export HADOOP_CONF_DIR=/home/hadoop/app/hadoop/etc/Hadoop
配置slaves
[hadoop@cdhnode1 conf]$ vim slaves
添加
CDHNode1
CDHNode2
CDHNode3
CDHNode4
CDHNode5
在启动hadoop的基础上启动spark
[hadoop@cdhnode1 spark]$ sbin/start-all.sh
Spark安装完成。