1、准备工具: 虚拟机:vmware 操作系统 :ubuntu12.04 (桌面版或server版)(iso文件) java:jdk-7u75-linux-x64.tar.gz oracle官网可下载 hadoop:haopop2.5.2 spark: spark1.1.1 登陆终端 secure crt 文件传输:file zilla 2、具体步骤 (1)、安装vmware —过程略 (2)、新建虚拟机(3个)安装ubuntu系统 —过程略 注:下面的步骤无特殊说明则需要在三个虚拟机上同时执行 (3)、apt-get 更新: apt-get update (4)、安装vim openssh客户端,服务端 apt-get instsall vim openssh-client openssh-server 判断ssh是否正常启动 命令:ps -e |grep ssh 如果既有sshd 又有ssh-agent 则ssh启动成功
(5)、安装java环境 假定准备将java安装在/usr/lib/java中 则建立该目录:mkdir /usr/lib/java 通过file zilla 将压缩文件传送到虚拟机上 解压jdk tar -xzvf jdkxxxxxx 设置环境变量: 编辑 /etc/profile文件,在其中加入以下内容 export JAVA_HOME=/usr/lib/java/jdk1.7.0_75 export JRE_HOME={$JAVA_HOME}/jre
保存退出 令其生效 source /etc/profile 此时查看java版本 java -version 如果系统中有多个java环境则需要手动设置默认的jdk 命令如下: sudo update-alternatives –install /usr/bin/javac javac /usr/lib/java/jdk1.7.0_75/bin/javac 300
sudo update-alternatives –install /usr/bin/java java /usr/lib/java/jdk1.7.0_75/bin/java 300
sudo update-alternatives –install /usr/bin/jps jps /usr/lib/java/jdk1.7.0_75/bin/jps 300
此时在输入java -version就可以看到上图的结果了 (6)、修改hostname+配置hosts 修改hostname:编辑/etc/hostname文件分别将三台机器的hostname改成master slave1 slave2 之后重启服务器 配置hosts:编辑/etc/hosts,添加 ip 和对应的hostname。 保存退出之后验证三台机器直接ping 各自的hostname是否互通
(7)、配置ssh hadoop是通过ssh来进行节点间的通信,所以要去掉节点间ssh的密码,所以需要对ssh进行配置 a)、生成公钥:命令:ssh-keygen -t rsa -P “” b)、将master公钥保存在authorized_keys下 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys 对于本机可用ssh localhost来验证是否设置成功 c)、将另外两台机器的公钥生成后通过scp命令汇聚到master下命令如下:在目录/root/.ssh中 scp id_rsa.pub root@master:/root/.ssh/id_rsa.pub.slave1(2) d)、将所有公钥全部保存在authorized_keys下命令如b e)、将设置好的authorized_keys文件发送给两个slave节点,之后验证三台机器是否可以ssh无密码登陆
(8)、安装hadoop 解压之前的压缩文件(tar -zxvf) 设置环境变量:在/etc/profile中添加相应变量 export HADOOP_COMMON_HOME=/usr/local/hadoopspark/hadoop-2.5.2 export HADOOP_CONF_DIR=/usr/local/hadoopspark/hadoop-2.5.2/etc/hadoop export YARN_CONF_DIR=/usr/local/hadoopspark/hadoop-2.5.2/etc/hadoop
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_COMMON_HOME/lib/native export HADOOP_OPTS=”-Djava.library.path=$HADOOP_COMMON_HOME/lib”
export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/lib/tools.jar export PATH=${JAVA_HOME}/bin:${JRE_HOME}/bin:${HADOOP_COMMON_HOME}/bin:${HADOOP_COMMON_HOME}/sbin:$PATH 保存并使其生效。 设置hadoop-env.sh(文件位于hadoop归档后的目录的etc/hadoop/中): 加入java环境变量 export JAVA_HOME=/usr/lib/java/jdk1.7.0_75
此时可验证hadoop是否安装成功:hadoop version 若能出现hadoop信息说明安装基本成功 (9)、配置hadoop信息: 主要配置一下几个文件 配置之前先建立几se个目录用来保存hadoop执行过程中的相关信息:mkdir tmp hdfs hdfs/name hdfs/data 1)、etc/hadoop/core-site.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:9000</value>
</property>
<property>
<name>io.file.buffer.size</name>
<value>131072</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value> local hadoop-2.7.0/tmp</value>
</property>
</configuration>
2)、etc/hadoop/mapred-site.xml
1
2
3
4
5
6<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
3)、etc/hadoop/hdfs-site.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20<value>Master:50090</value>是网页访问地址
-2.7.0/ hadoop hadoop
<configuration>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>Master:50090</value>
</property>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value> local hadoop-2.7.0 name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value> local hadoop-2.7.0 data</value>
</property>
</configuration>
4)、etc/hadoop/yarn-site.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.resourcemanager.address</name>
<value>Master:8032</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>Master:8030</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>Master:8031</value>
</property>
<property>
<name>yarn.resourcemanager.admin.address</name>
<value>Master:8033</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>Master:8088</value>
</property>
<!-- Site specific YARN configuration properties -->
</configuration>
(5)、etc/hadoop/slaves 注意要删除自己本身的节点,或者在配置互信时,加入自己的密钥。 配置完毕则可以准备0启动hadoop 下面的过程在master节点上执行相关操作 namenode的格式化:hadoop namenode -format 之后到hadoop所在目录启动hadoop:sbin/start-all.sh 一小段等待后hadoop启动,用jps查看
1
2
3
4
5
6DataNode
Jps
SecondaryNameNode
NameNode
NodeManager
ResourceManager
若出现下面信息则启动成功,可通过web-browser查看相关信息url:http://masterip:50070 关闭hadoop服务:sbin/stop-all-sh 若需要重新格式化namenode则需要删除掉tmp 和/tmp/hadoop* 和hdfs/name hdfs/data中的内容
至此hadoop 分布式部署成功,下面准备在此基础上安装spark(由于spark的工作需要基于hadoop中的hdfs分布式文件系统) (10)、安装scala 解压下载好的压缩文件(tar -zxvf) 配置环境变量(/etc/profile) export SCALA_HOME=/usr/lib/scala/scala-2.11.4 验证:键入scala:出现scala命令控制行说明安装成功 (11)、安装spark 解压文件–过程略 配置环境变量:编辑conf下的spark-env.sh文件将java scala相关环境变量加入并且配置masterip以及各个worker节点的内存
export JAVA_HOME=/usr/lib/java/jdk1.7.0_75
export SCALA_HOME=/usr/lib/scala/scala-2.11.4
export SPARK_MASTER_IP=192.168.194.129
export SPARK_WORKER_MEMORY=2g
export SPARK_CONF_DIR=/usr/local/hadoopspark/spark-1.1.1-bin-hadoop2.4/conf
配置同目录下的slaves 将所有节点的hostname添加进该文件(三台机器均配置) 配置完毕启动spark sbin/start-all.sh jps命令查看若新增这两个进程即spark成功启动(Master Worker) 至此spark+hadoop的分布式部署完成