博客
关于我
spark安装一半,先记录下
阅读量:491 次
发布时间:2019-03-06

本文共 5577 字,大约阅读时间需要 18 分钟。

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

文章目录

1.虚拟机网络配置

1.1 准备3台虚拟机

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

1.2 每台虚拟机的网络设置

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

在文件中添加

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

在ifconfig检查ip

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

或者直接

sudo gedit /etc/network/interfaces

在文件中添加

#the primary network interfaceauto ens33iface ens33 inet staticaddress 192.168.31.180gateway 192.168.31.1netmask 255.255.255.0dns-nameservers 8.8.8.8

1.3 虚拟机和windows主机上配置hosts文件

  • 虚拟机上
sudo gedit /etc/hosts

在文件中添加

192.168.31.180   spark1192.168.31.181   spark2192.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_201export 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/hadoopexport 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节点中添加
fs.default.name
hdfs://spark1:9000
  • 更改hdfs-site.xml
#property节点中添加
dfs.name.dir
/usr/local/data/namenode
dfs.data.dir
/usr/local/data/datanode
dfs.tmp.dir
/usr/local/data/tmp
dfs.replication
3

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

  • 修改mapred-site.xml.template文件
#property中放置
mapreduce.framework.name
yarn

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

  • 修改yarn-site.xml
yarn.resourcemanager.hostname
spark1
yarn.nodemanager.aux-services
mapreduce_shuffle
  • 修改slaves
#把localhost替换为以下spark1spark2spark3
  • 创建文件夹
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 NameNode5282 SecondaryNameNode5879 Jps5080 DataNode

在spark2/3中出现

3440 Jps3242 DataNode#spark3中4184 Jps4043 DataNode

7.4 启动yarn集群

在spark1中

start-yarn.sh

用jps验证

#spark1中 jps出现4913 NameNode5282 SecondaryNameNode5080 DataNode5998 NodeManager   #多的6111 Jps#spark2中jps3541 NodeManager3658 Jps3242 DataNode#34513 Jps4043 DataNode4399 NodeManager

8.安装hive

提供给spark写sparksql

9. 安装kafka

spark streaming

转载地址:http://neldz.baihongyu.com/

你可能感兴趣的文章
multi-angle cosine and sines
查看>>
Mysql Can't connect to MySQL server
查看>>
mysql case when 乱码_Mysql CASE WHEN 用法
查看>>
Multicast1
查看>>
mysql client library_MySQL数据库之zabbix3.x安装出现“configure: error: Not found mysqlclient library”的解决办法...
查看>>
MySQL Cluster 7.0.36 发布
查看>>
Multimodal Unsupervised Image-to-Image Translation多通道无监督图像翻译
查看>>
MySQL Cluster与MGR集群实战
查看>>
multipart/form-data与application/octet-stream的区别、application/x-www-form-urlencoded
查看>>
mysql cmake 报错,MySQL云服务器应用及cmake报错解决办法
查看>>
Multiple websites on single instance of IIS
查看>>
mysql CONCAT()函数拼接有NULL
查看>>
multiprocessing.Manager 嵌套共享对象不适用于队列
查看>>
multiprocessing.pool.map 和带有两个参数的函数
查看>>
MYSQL CONCAT函数
查看>>
multiprocessing.Pool:map_async 和 imap 有什么区别?
查看>>
MySQL Connector/Net 句柄泄露
查看>>
multiprocessor(中)
查看>>
mysql CPU使用率过高的一次处理经历
查看>>
Multisim中555定时器使用技巧
查看>>