Ubuntu系统:分布式spark环境搭建

三台机子,系统为ubuntu14.01,公用一个路由器组成一个小型局域网。

首先配置固定的ip地址。
点击屏幕右上方的网络连接,Edit Connections -> Add -> 类型选Ethernet -> Create -> 选择IPv4 Setting -> Method选择 Manual(手动)-> Add
对于可以填什么,可以点开网络连接处的Connection Information,对应着填入。
Ubuntu系统:分布式spark环境搭建_第1张图片
修改hosts文件
三台机子都要修改hosts文件:

sudo gedit /etc/hosts
在原文件后面加上:
192.168.1.102 Master
192.168.1.104 Slave1
192.168.1.105 Slave2
使配置文件生效:
source /etc/hosts

ssh无密码验证配置
安装ssh:sudo apt-get update sudo apt-get install ssh
注意,以下操作均在root用户下执行,从普通用户跳到root可使用命令sudo su

配置Master无密码登陆slave
1、在Master节点上生成密码对ssh-keygen -t rsa -P ''
生成的密码对id_rsa和id_rsa.pub默认保存在/root/.ssh目录下
2、将id_rsa.pub追加到授权的key里面去

cat ~/.ssh/id_rsa.pub >> ~/.sh/authorized_keys
# ~/.ssh和/root/.ssh是同一个意思

3、修改ssh配置文件/etc/ssh/sshd_config里面的内容,将以下三行的注释去掉

RSAAuthentication yes # 启用 RSA 认证
PubkeyAuthentication yes # 启用公钥私钥配对认证方式
AuthorizedKeysFile .ssh/authorized_keys # 公钥文件路径(和上面生成的文件同)

4、验证无密码本地登陆:ssh localhost
5、把公钥复制到所有的Slave机器上。很多博客做这一步都是用以下两行命令:

scp /root/.ssh/id_rsa.pub root@Slave1:/root/.ssh/
scp /root/.ssh/id_rsa.pub root@Slave2:/root/.ssh/

但是我用这两行命令后会被提问slave1和slave2的密码,输密码后又permission denied,所以最后我直接用u盘拷贝的方法,把master的id_rsa.pub拷贝到其他两台机子的/root/.ssh/下面

接着配置slave节点,以slave1为例:
1、在/root/下面创建".ssh"文件:mkdir /root/.ssh (注意slave此刻也在root用户下哦~)
2、将master的公钥追加到slave1的授权文件中去:
cat /roo/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys
3、修改配置文件etc/ssh/sshd_config,同上面的3、4步。
4、最后删除master的公钥文件id_rsa.pub

用Master无密码登陆slave1,在master的终端上测试,成功的话,以下两条命令都可以登陆slave1:

ssh Slave1
ssh 192.168.1.104

同样的道理,想让A机无密码登录B机,就先在A机本地生成密码对(id_rsa.pub和id_rsa)。
把公钥id_rsa.pub追加到A机自身的授权文件authorized_keys中去,成功的话,ssh localhost 可以本地登录,然后将公钥放置到B机上,追加到B机的授权文件中去,由此A机就能登录B机,想让B机登录A机也是相同操作。
如此这番后,我的三台机子都可以互相无密码登录啦~

java和scala基础环境
这部分我就不写啦,下载相应的包,解压到指定路径并添加路径到配置文件/etc/profile。

hadoop完全分布式搭建
在master节点进行以下操作:
1、下载二进制包hadoop-2.6.5.tar.gz
2、解压并移动到对应的目录:tar -zxvf hadoop-2.6.5.tar.gz -C /opt/
3、修改配置文件,在上一步添加java/scala路径的配置文件中加入HADOOP_HOME及其路径,并source /etc/profile 保存
4、修改 $HADOOP_HOME/etc/hadoop/slaves,将原来的localhost删除并添加:

Slave1
Slave2

5、修改 $HADOOP_HOME/etc/hadoop/core-site.xml
(注意对应的hadoop路径和版本根据你自己放的位置来写)


      
          fs.defaultFS
          hdfs://Master:9000
      
      
         io.file.buffer.size
         131072
     
     
          hadoop.tmp.dir
          /opt/hadoop-2.7.3/tmp
     

6、修改 $HADOOP_HOME/etc/hadoop/hdfs-site.xml


    
      dfs.namenode.secondary.http-address
      Master:50090
    
    
      dfs.replication
      2
    
    
      dfs.namenode.name.dir
      file:/opt/hadoop-2.7.3/hdfs/name
    
    
      dfs.datanode.data.dir
      file:/opt/hadoop-2.7.3/hdfs/data
    

7、重命名template: cp mapred-site.xml.template mapred-site.xml 并修改内容:


 
    mapreduce.framework.name
    yarn
  
  
          mapreduce.jobhistory.address
          Master:10020
  
  
          mapreduce.jobhistory.address
          Master:19888
  

8、修改 $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
     

9、复制Master节点的hadoop文件夹到Slave1和Slave2上。

scp -r /opt/hadoop-2.7.3 root@Slave1:/opt
scp -r /opt/hadoop-2.7.3 root@Slave2:/opt

10、修改Slave1和Slave2上的配置文件,过程和Master的一样,添加路径即可
11、在master上启动集群
首先,格式化一下namenode: hadoop namenode -format
启动:/opt/hadoop-2.7.3/sbin/start-all.sh
接下来看到日志信息,hadoop的分布式就搭建成功了。
12、查看集群是否成功启动,输入jps, master显示:
  Ubuntu系统:分布式spark环境搭建_第2张图片
Slave1显示:
hadoop-slave-jps
 
浏览器中输入:localhost:50070 可以看到hadoop中的Namenode Information :
Ubuntu系统:分布式spark环境搭建_第3张图片

spark分布式搭建
首先在master机子上进行操作
1、下载二进制包spark-2.4.0-bin-hadoop2.7.tgz
2、解压到指定位置tar -zxvf spark-2.4.0-bin-hadoop2.7.tgz -C /opt/,我顺便重命名了cp spark-2.4.0-bin-hadoop2.7.tgz spark
3、修改配置文件/etc/profile 添加路径到SPARK_HOME
4、进入/opt/spark/conf,重命名spark-env.sh.template文件,并添加内容

cp spark-env.sh.template spark-env.sh
gedit spark-env.sh
--------------添加以下内容------------------
export JAVA_HOME=/opt/jdk1.8.0_191
export SCALA_HOME=/opt/scala-2.12.8
export SPARK_HOME=/opt/spark
export HADOOP_HOME=/opt/hadoop-2.6.5
export PATH=$PATH:$HOME/bin:$JAVA_HOME/bin:${SCALA_PATH}/bin:${SPARK_HOME}/bin:
export SPARK_MASTER_IP=192.168.1.102  # 注意这里是你的master的ip哦
export SPARK_WORKER_MEMORY=2g

5、重命名slaves.template文件并添加内容

cp slaves.template slaves
--------------添加以下内容------------------
Master
Slave1
Slave2

6、将配置好的spark文件夹复制到另外两台机子上:scp /opt/spark root@Slave1:/opt
7、修改两台slave的配置文件/etc/profile,添加spark路径。同时注意,进入/opt/spark/conf,在spark-env.sh文件中将export SPARK_MASTER_IP=192.168.1.102 改为:export SPARK_LOCAL_IP=#这里是相应机子的IP
8、在master启动集群:/opt/spark/sbin/start-all.sh
9、查看集群是否成功启动:jps
这是在master上的结果,与上面对比,较hadoop多了一个Master:
Ubuntu系统:分布式spark环境搭建_第4张图片
这是在Slave1上的结果,比hadoop多了一个Worker:
spark-slave-jps  
spark集群的web端口:8080
Ubuntu系统:分布式spark环境搭建_第5张图片

启动和关闭hadoop/spark的命令

hadoop/sbin/start-all.sh
spark/sbin/start-master.sh
spark/sbin/start-slaves.sh

spark/sbin/stop-master.sh
spark/sbin/stop-slaves.sh
hadoop/sbin/stop-all.sh

你可能感兴趣的:(浅涉大数据技术,linux,spark)