spark分布式安装 spark集群搭建 hadoop集群搭建

搭建1个master,2个slave的集群方案。

软件

操作系统:ubuntu16.04 #同样适用centos系统
hadoop:hadoop-2.7.2.tar.gz
scala:scala-2.11.8.tgz
spark: spark-1.6.1-bin-hadoop2.6.tgz
java:jdk-8u91-linux-x64.tar.gz

创建hadoop用户

sudo useradd -m hadoop -s /bin/bash
sudo passwd hadoop
sudo adduser hadoop sudo
su hadoop #是要切换用户的

更改hostname

vim /etc/hostname
master内容改为master
slave分别改为slave1、slave2

配置hosts

每台主机上修改hosts文件

vim /etc/hosts

10.103.29.164   slave1
10.103.31.124   master
10.103.31.186   slave2

配置之后,ping一下看是否生效

master:
ping slave1
ping slave2

ssh免密码登陆

ubuntu只需要安装openssh-server

sudo apt-get install openssh-server

在所有主机上生成私钥和公钥

ssh-keygen -t rsa  #一直回车

将每个slave上的id_rsa.pub发给master节点

scp ~/.ssh/id_rsa.pub hadoop@master:~/.ssh/id_rsa.pub.slave1

在master上,将所有的公钥加到用于认证的公钥文件authorized_keys中

cat ~/.ssh/id_rsa.pub* >> ~/.ssh/authorized_keys

将公钥文件authorized_keys分发给每台slave

scp ~/.ssh/authorized_keys hadoop@slave1:~/.ssh/

在每台机子上验证ssh无密码通信

ssh master
ssh slave1
ssh slave2

java安装

创建java安装目录

sudo mkdir /usr/lib/jvm/

将java安装文件解压到此目录

tar -zxvf dk-8u91-linux-x64.tar.gz

修改环境变量

sudo vim /etc/profile

添加下列内容,

export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_91 
export JRE_HOME=$JAVA_HOME/jre
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH 
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib

然后使用环境生效,验证java是否安装成功

source /etc/profile
java -version

创建scala、hadoop、spark安装目录

sudo mkdir /usr/local/data
将scala、hadoop、spark的安装包mv到这个目录
sudo chown -R hadoop:hadoop /usr/local/data  #更改文件所有者

很多问题就是,复制的文件的所有者并不是当前用户

安装scala

在安装目录中解压

tar -zxvf scala-2.11.8.tgz

再次修改环境变量,sudo vim /etc/profile。并添加以下内容

export SCALA_HOME=/usr/local/data/scala-2.11.8
export PATH=$PATH:$SCALA_HOME/bin

使配置生效,并验证scala是否安装成功

source /etc/profile
scala -version

安装hadoop yarn

同样将hadoop安装包解压到安装目录

tar -zxvf hadoop-2.7.2.tar.gz

配置hadoop

cd /usr/local/data/hadoop-2.7.2/etc/hadoop

1.配置hadoop-env.sh

# The java implementation to use.
export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_91

2.配置yarn-env.sh

# some Java parameters
export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_91

3.配置slaves

slave1
slave2

4.配置core-site.xml

<configuration>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://master:9000/</value>
    </property>
    <property>
         <name>hadoop.tmp.dir</name>
         <value>file:/home/spark/workspace/hadoop-2.6.0/tmp</value>
    </property>
</configuration>

5.修改hdfs-site.xml

<configuration>
    <property>
        <name>dfs.namenode.secondary.http-address</name>
        <value>master:9001</value>
    </property>
    <property>
        <name>dfs.namenode.name.dir</name>
        <value>file:/home/spark/workspace/hadoop-2.6.0/dfs/name</value>
    </property>
    <property>
        <name>dfs.datanode.data.dir</name>
        <value>file:/home/spark/workspace/hadoop-2.6.0/dfs/data</value>
    </property>
    <property>
        <name>dfs.replication</name>
        <value>3</value>
    </property>
</configuration>

6.修改mapred-site.xml(cp mapred-site.xml.template mapred-site.xml)

<configuration>
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
</configuration>

7.修改yarn-site.xml

<configuration>
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
    <property>
        <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
        <value>org.apache.hadoop.mapred.ShuffleHandler</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:8035</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>
</configuration>

将配置好的hadoop-2.7.2分发给slaves,scp命令。

启动hadoop

在hadoop-2.7.2文件中

bin/hadoop namenode -format
sbin/start-dfs.sh
sbin/start-yarn.sh

验证hadoop是否安装成功

用jps查看各个节点启动的进程是否正常。

$ jps  #run on master
3407 SecondaryNameNode
3218 NameNode
3552 ResourceManager
3910 Jps
$ jps   #run on slaves
2072 NodeManager
2213 Jps
1962 DataNode

或者在浏览器中输入 http://master:8088 ,应该有 hadoop 的管理界面出来了,并能看到 slave1 和 slave2 节点。

安装spark

同样将spark安装包解压到安装目录

tar -zxvf spark-1.6.1-bin-hadoop2.6.tgz

配置spark

cd spark-1.6.1-bin-hadoop2.6/conf #进入spark配置目录
cp spark-env.sh.template spark-env.sh   #从配置模板复制
vi spark-env.sh     #添加配置内容

在spark-env.sh末尾添加以下内容

export SCALA_HOME=/usr/local/data/scala-2.11.8
export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_91
export HADOOP_HOME=/usr/local/data/hadoop-2.7.2
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
SPARK_MASTER_IP=master
SPARK_LOCAL_DIRS=/usr/local/data/spark-1.6.1-bin-hadoop2.6
SPARK_DRIVER_MEMORY=1G

修改slaves文件,vim slaves

slave1
slave2

将配置好的spark-1.6.1-bin-hadoop2.6文件夹分发给所有的slaves

scp -r 命令

启动spark

sbin/start-all.sh

验证spark是否安装成功

用jps检查

$ jps  #master
7949 Jps
7328 SecondaryNameNode
7805 Master
7137 NameNode
7475 ResourceManager
$jps  #slaves
3132 DataNode
3759 Worker
3858 Jps
3231 NodeManager

进入Spark的Web管理页面: http://master:8080

运行实例
master上执行命令

$ ./bin/spark-submit --class org.apache.spark.examples.SparkPi \
    --master yarn \
    --deploy-mode cluster \
    lib/spark-examples*.jar \
    10

参考链接
spark on yarn

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值