一、环境准备
1. 机器: 3 台虚拟机
机器 | 角色 |
l-qta3.sp.beta.cn0 | NameNode,ResourceManager,spark的master |
l-querydiff1.sp.beta.cn0 | DataNode,NodeManager,Worker |
l-bgautotest2.sp.beta.cn0 | DataNode,NodeManager,Worker |
2. jdk版本
[xx@l-qta3.sp.beta.cn0 ~]$ java -version
java version "1.7.0_45"Java(TM) SE Runtime Environment (build 1.7.0_45-b18)Java HotSpot(TM) 64-Bit Server VM (build 24.45-b08, mixed mode)3. 准备工作
1)ssh 免密登陆: 集群中的机器需要相互免密访问。参考:http://www.cnblogs.com/lijingchn/p/5580263.html
2)hadoop 2.6.5 binary 下载。地址:http://www.apache.org/dyn/closer.cgi/hadoop/common/hadoop-2.6.5/hadoop-2.6.5.tar.gz
4. 解压 hadoop-2.6.5.tar.gz
将hadoop-2.6.5.tar.gz解压缩到 /home/q/
cmd : tar -xzvf hadoop-2.6.5.tar.gz -C /home/q/
5. 修改配置文件
配置文件都在 etc/hadoop/下,这些配置文件里面都有样例,有些是必须设置的。官网配置的介绍:http://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-common/ClusterSetup.html
5.1 修改hadoop-env.sh
export JAVA_HOME=xxx -- java 的安装目录
5.2 修改yarn-env.sh
export JAVA_HOME=xxxx
5.3 修改slaves 配置slave的机器名 (这些机器需要能按机器名ping通,即要需要/etc/hosts 文件,按 ip 空格 机器名 的格式设置。)
slave1
slave2
5.4 配置core-site.xml (从core-site.xml.example copy 过来一个,重命名即可。)
fs.defaultFS hdfs://jdycluster io.file.buffer.size 4194304 fs.trash.interval 1440 io.compression.codecs org.apache.hadoop.io.compress.GzipCodec,org.apache.hadoop.io.compress.DefaultCodec,org.apache.hadoop.io.compress.BZip2Codec,org.apache.hadoop.io.compress.SnappyCodec,com.hadoop.compression.lzo.LzoCodec,com.hadoop.compression.lzo.LzopCodec io.compression.codec.lzo.class com.hadoop.compression.lzo.LzoCodec ha.failover-controller.cli-check.rpc-timeout.ms 60000 ipc.client.connect.timeout 60000 hadoop.proxyuser.jdydev.hosts * hadoop.proxyuser.jdydev.groups *
5.5 配置hdfs-site.xml
dfs.nameservices jdycluster dfs.namenode.name.dir file:/home/q/hadoop-2.6.5/dfs/name dfs.replication 1 dfs.blocksize 268435456 dfs.namenode.handler.count 100 dfs.webhdfs.enabled true dfs.datanode.data.dir file:/home/q/hadoop-2.6.5/dfs/data dfs.ha.namenodes.jdycluster nn1 dfs.namenode.rpc-address.jdycluster.nn1 l-qta3.sp.beta.cn0:8020 dfs.namenode.http-address.jdycluster.nn1 l-qta3.sp.beta.cn0:50070 dfs.client.failover.proxy.provider.jdycluster org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider dfs.permissions false
5.6 配置mapred-site.xml, 这里都是map-reduce 的参数
mapreduce.framework.name yarn mapreduce.map.memory.mb 1536 mapreduce.map.java.opts -Xmx1024M mapreduce.reduce.memory.mb 3072 mapreduce.reduce.java.opts -Xmx2560M mapreduce.task.io.sort.mb 512 mapreduce.task.io.sort.factor 100 mapreduce.reduce.shuffle.parallelcopies 50 mapreduce.jobhistory.address l-qta3.sp.beta.cn0:10020 mapreduce.jobhistory.webapp.address l-qta3.sp.beta.cn0:19888 mapreduce.jobhistory.intermediate-done-dir /mr-history/tmp mapreduce.jobhistory.done-dir /mr-history/done
5.7 配置yarn-site.xml
yarn.nodemanager.aux-services mapreduce_shuffle yarn.nodemanager.aux-services.mapreduce.shuffle.class org.apache.hadoop.mapred.ShuffleHandler yarn.resourcemanager.address l-qta3.sp.beta.cn0:8032 yarn.resourcemanager.scheduler.address l-qta3.sp.beta.cn0:8030 yarn.resourcemanager.resource-tracker.address l-qta3.sp.beta.cn0:8035 yarn.resourcemanager.admin.address l-qta3.sp.beta.cn0:8033 yarn.resourcemanager.webapp.address l-qta3.sp.beta.cn0:8088
5.8 配置slaves, 这里配置的就是DataNode,NodeManager,Worker的机器。
l-qta3.sp.beta.cn0
l-bgautotest2.sp.beta.cn0
5.9 scp到所有salve机器相同目录下
scp -r /home/q/hadoop-2.6.5 xx@slave[1-2]:/home/q/
6 启动hadoop 集群
6.1 格式化NameNode
在NameNode执行以下操作
cd /home/q/hadoop-2.6.5/binsudo bin/hadoop namenode –format
6.2 启动hadoop集群
方式1: sbin/start-dfs.sh #启动HDFSsbin/start-yarn.sh #启动资源管理器 方式2: sbin/start-all.sh 注意: 在启动过程中,启动脚本会依次ssh方式登陆各台机器,所以即使是启动本机的服务也会ssh,这时候 本机也要做免密登陆,否则NameNode会起不来。
6.3 验证集群是否启动
在NameNode上执行 jps 返回如下: 6996 ResourceManager 6611 NameNode 6412 Jps 在DataNode上执行 jps 返回如下: 22285 NodeManager 22151 DataNode
说明已经启动成功。进入Hadoop的Web管理页面:
7. 安装spark
首先到spark官网下载和你安装的hadoop 版本匹配的spark 版本。http://spark.apache.org/downloads.html
7.1 解压缩 spark-2.0.2-bin-hadoop2.6.tgz
sudo tar -zxvf spark-2.0.2-bin-hadoop2.6.tgz -C /home/q/
7.2 配置spark-env.sh
cd /home/q/spark-2.0.2-bin-hadoop2.6/confcp spark-env.sh.template spark-env.shsudo vi spark-env.sh export JAVA_HOME=/home/q/java/default
export HADOOP_HOME=/home/q/hadoop-2.6.5
export HADOOP_CONF_DIR=/home/q/hadoop-2.6.5/etc/hadoop/export SPARK_LOCAL_DIRS=/home/q/spark-2.0.2-bin-hadoop2.6export SPARK_CLASSPATH=/home/q/spark-2.0.2-bin-hadoop2.6/binexport SPARK_CLASSPATH=$SPARK_CLASSPATH:/home/q/hadoop-2.6.5/share/hadoop/mapreduce/lib/hadoop-lzo-0.4.20-SNAPSHOT.jarexport HIVE_CONF_DIR=/home/q/apache-hive-2.1.1-bin/conf7.3 配置salves
vi slavesl-bgautotest2.sp.beta.cn0l-querydiff1.sp.beta.cn
7.4 将spark的安装文件scp到slaves的相同目录下
scp -r /home/q/spark-2.0.2-bin-hadoop2.6 xx@slaves[1-2]:/home/q/
7.5 启动spark 集群
sbin/start-all.sh
7.6 验证是否启动spark集群
master 机器上执行 jps返回中有:11016 Masterslave 机器上执行 jps:返回中有:6689 Worker 说明启动成功。
进入Spark的Web管理页面: .