spark安装一半,先记录下

小白按教程安装,我用的vmware,ubuntu,才装一半,先记录一下

1.虚拟机网络配置

1.1 准备3台虚拟机

每台虚拟机的网络配置选择为桥接模式

1.2 每台虚拟机的网络设置
  • windows上ipconfig
    检查ip,网管,子网掩码
  • 虚拟机 ifcofig
    查看自己的虚拟网卡名称"ens33"
  • 虚拟机设置静态ip
sudo gedit /etc/network/interfaces   

在文件中添加

#the primary network interface
auto ens33
iface ens33 inet static
address 192.168.31.180
gateway 192.168.31.1
netmask 255.255.255.0
  • 重启网卡
service network restart
#或以下,或重启虚拟机
sudo /etc/init.d/networking restart

在ifconfig检查ip

  • 检查是否能连接外网 ping www.baidu.com
    • 如果不通,修改dns >> sudo gedit /etc/resolv.conf
      添加
    nameserver 8.8.8.8
    nameserver 8.8.4.4
    
    但这种方法有可能在重启后失效,所以可以直接在设置静态ip的步骤中,添加
    dns-nameservers 8.8.8.8
    

或者直接

sudo gedit /etc/network/interfaces   

在文件中添加

#the primary network interface
auto ens33
iface ens33 inet static
address 192.168.31.180
gateway 192.168.31.1
netmask 255.255.255.0
dns-nameservers 8.8.8.8
1.3 虚拟机和windows主机上配置hosts文件
  • 虚拟机上
sudo gedit /etc/hosts

在文件中添加

192.168.31.180   spark1
192.168.31.181   spark2
192.168.31.182   spark3

添加完后各虚拟机之间可以 >>ping spark1 ;相当于>> ping 192.168.31.180

  • 主机上,打开“C:\Windows\System32\drivers\etc\hosts"文件,添加上述

解释:
添加的格式为

IP地址 主机名/域名  主机名别名(可以省略)
  • 主机名和域名的区别:
    • 主机名常在局域网内使用,通过hosts文件,主机名就被解析到对应的ip
    • 域名常在internet上使用,如果本机不想使用internet上的域名解析,就可以更改hosts文件,加入自己的域名解析
  • 通过hosts文件,可以解决的问题
    • 远程登录linux主机过慢的问题
      如果有客户端想远程登录一台linux主机,但每次登录输入密码后都会等很长时间才进入。这时因为linux主机在返回信息时需要解析ip,如果在hosts文件中事先加入客户端的ip地址,这时远程登录就会很快。远程登录不仅仅是ssh,还可能是mysql或文件共享的查询
    • 双击互联
      当两台主机只是双机互连时,这时两台主机都需要设置自己的ip,同时在对方的hosts文件里加入自己的ip和主机名。
1.4 ubuntu关闭防火墙,并设置在开机时不启动,关闭安全状态
  • 关闭防火墙
sudo ufw disable
  • 关闭安全状态(selinux的state)
    由于我装的ubuntu上没有装selinux的utils,所以不用设置这一步

2安装secureCRT,从windows上连接虚拟机

在secureCRT上建立到所有虚拟机的连接

2.1 连接时报错 “the remote system refused the connection”

因为ubuntu安装时缺省安装openssh-client,安装上即可

sudo apt-get install openssh-server
#确认是否启动
ps -e|grep ssh

默认开启22端口

3 安装winscp,支持本地和远程之间安全的复制文件

如果是新安装的虚拟机,只有自己的账号,上传文件不会有充足的权限,因此先设置root密码

sudo passwd root
#切换
su root

在ssh中设置允许密码连接

sudo gedit /etc/ssh/sshd_config
#改动,改为下面的
PermitRootLogin yes
#重启
service sshd restart

即可用root账号连接winscp
在winscp上建立所有到虚拟机的连接

4.安装telnet

sudo apt-get install telnet

解释
telnet协议是TCP/IP协议族中的一员,是Internet远程登陆服务的标准协议和主要方式。它为用户提供了在本地计算机上完成远程主机工作的能力。在终端使用者的电脑上使用telnet程序,用它连接到服务器。

终端使用者可以在telnet程序中输入命令,这些命令会在服务器上运行,就像直接在服务器的控制台上输入一样,可以在本地就能控制服务器。要开始一个telnet会话,必须输入用户名和密码来登录服务器,Telnet是常用的远程控制Web服务器的方法。

使用Telnet协议进行远程登录时需要满足以下条件:在本地计算机上必须装有包含Telnet协议的客户程序、必须知道远程主机的Ip地址或域名、必须知道登录标识与口令。


不同的虚拟机之间可以通过一个命令共享文件

scp  文件 erin@spark2:文件夹名

5.安装jdk(.rpm后缀是红帽版的,ubuntu需要下载tar版)

5.1用winscp向spark1的/usr/local文件中上传jdk

由于/usr/local文件只能root访问,用root账号才能将jdk.rmp上传。

5.2复制到其他虚拟机上

由于/usr/local只能root访问,得用其他机器的root账号,spark1中root或erin无所谓

scp jdk....tar root@spark2:/usr/local
5.3安装jdk
mkdir /usr/local/jvm
#将jdk...tar.gz解压
tar -xzvf jdk....tar.gz -C /usr/local/jvm/
#配置环境变量
sudo gedit /etc/profile
#在尾部添加信息
#jdk环境变量配置信息
export JAVA_HOME=/usr/local/jvm/jdk1.8.0_201
export JRE_HOME=${JAVA_HOME}/jre    
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib    
export PATH=${JAVA_HOME}/bin:$PATH 
#重启
source /etc/profile
#检查是否生效
java -version

6.配置ssh集群免密登录

6.1没有生成公钥之前
  • 在没有生成公钥之前,虚拟机之间通过ssh互相访问,如spark1的root账号,访问spark2的root账号
ssh spark2

需要输入spark2的密码

6.2 每台虚拟机生成自己的秘钥和公钥
ssh-keygen -t rsa
#root账号默认生成在/root/.ssh文件夹下
cd /root/.ssh
#查看生成的东西
ls
#有私钥和公钥
id_rsa  id_rsa.pub
#复制公钥到authorized_keys文件夹下
cp id_rsa.pub authorized_keys

此时将自己的公钥放到了authorized_keys文件中,因此用ssh访问本机时,不再需要密码

ssh spark1
#即可访问本机
#退出
exit
6.3 机器之间互相ssh免密

在spark1中,将自己的公钥放到spark3中,此后可以免密访问spark3

ssh-copy-id -i spark3

这时spark3中的authorized_keys中出现了spark1的公钥
不用在每个机器上操作一次。可以在第一台机器考入第三台机器,然后在第一台上ssh spark3之后,在第一台上操作第三台,然后将第三台考到别的上面。在随便一台上,利用ssh操作所有的机器。

7.安装hadoop

注意版本,要与安装的spark版本契合才行

7.1在一台机器上装hadoop

通过winscp把hadoop…tar.gz上传到虚拟机/usr/local上

#解压
sudo tar -zxvf hadoop...tar.gz
#改文件夹名称
sudo mv hadoop-2.7.7 hadoop
#设置环境变量
sudo gedit /etc/profile
#添加如下环境变量
export HADOOP_HOME=/usr/local/hadoop
export PATH=${HADOOP_HOME}/bin:${HADOOP_HOME}/sbin:$PATH
#保存后重新加载
source /etc/profile
#尝试运行
hadoop -version

删除压缩包>>sudo rm -rf hadoop…tar.gz

  • 更改core-site.xml设置
    通过winscp更改/usr/local/hadoop/etc/hadoop文件夹下的core-site.xml文件;
#在property节点中添加
<property>

    <name>fs.default.name</name>
    
    <value>hdfs://spark1:9000</value>

</property>
  • 更改hdfs-site.xml
#property节点中添加
<property>
    <name>dfs.name.dir</name>
    <value>/usr/local/data/namenode</value>
</property>


<property>
    <name>dfs.data.dir</name>
    <value>/usr/local/data/datanode</value>
</property>

<property>
    <name>dfs.tmp.dir</name>
    <value>/usr/local/data/tmp</value>
</property>

<property>
    <name>dfs.replication</name>
    <value>3</value>
</property>

其中最后一个节点代表有几个虚拟机构成集群;而上面的节点中/usr/local/data代表放置缓存的文件夹

  • 修改mapred-site.xml.template文件
#property中放置
<property>

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

</property>

还需要把问价的名字改成mapred-site.xml

  • 修改yarn-site.xml
<property>
    <name>yarn.resourcemanager.hostname</name>
    <value>spark1</value>
</property>

<property>
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</value>
</property>
  • 修改slaves
#把localhost替换为以下
spark1

spark2

spark3
  • 创建文件夹
mkdir /usr/local/data
7.2在其他机器上安装
  • 直接复制hadoop文件
scp -r hadoop root@spark2:/usr/local

-r代表文件夹下的全部文件

  • 在其他机器上创建data文件夹
  • 在其他机器上设置hadoop路径
7.3 启动hadoop集群

在spark1上namenode格式化

hdfs namenode -format

开启namenode和datanode守护进程

start-dfs.sh

如果报错没有java_home,在/usr/local/hadoop/etc/hadoop的hadoop_env.sh中手动添加java环境

# The java implementation to use.
export JAVA_HOME=/usr/local/jvm/jdk1.8.0_211

开启namenode和datanode后,验证

jps

在spark1中会出现

4913 NameNode
5282 SecondaryNameNode
5879 Jps
5080 DataNode

在spark2/3中出现

3440 Jps
3242 DataNode
#spark3中
4184 Jps
4043 DataNode
7.4 启动yarn集群

在spark1中

start-yarn.sh

用jps验证

#spark1中 jps出现
4913 NameNode
5282 SecondaryNameNode
5080 DataNode
5998 NodeManager   #多的
6111 Jps
#spark2中jps
3541 NodeManager
3658 Jps
3242 DataNode
#3
4513 Jps
4043 DataNode
4399 NodeManager

8.安装hive

提供给spark写sparksql

9. 安装kafka

spark streaming

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值