赞
踩
小白按教程安装,我用的vmware,ubuntu,才装一半,先记录一下
每台虚拟机的网络配置选择为桥接模式
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
nameserver 8.8.8.8
nameserver 8.8.4.4
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
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
解释:
添加的格式为
IP地址 主机名/域名 主机名别名(可以省略)
sudo ufw disable
在secureCRT上建立到所有虚拟机的连接
因为ubuntu安装时缺省安装openssh-client,安装上即可
sudo apt-get install openssh-server
#确认是否启动
ps -e|grep ssh
默认开启22端口
如果是新安装的虚拟机,只有自己的账号,上传文件不会有充足的权限,因此先设置root密码
sudo passwd root
#切换
su root
在ssh中设置允许密码连接
sudo gedit /etc/ssh/sshd_config
#改动,改为下面的
PermitRootLogin yes
#重启
service sshd restart
即可用root账号连接winscp
在winscp上建立所有到虚拟机的连接
sudo apt-get install telnet
解释
telnet协议是TCP/IP协议族中的一员,是Internet远程登陆服务的标准协议和主要方式。它为用户提供了在本地计算机上完成远程主机工作的能力。在终端使用者的电脑上使用telnet程序,用它连接到服务器。
终端使用者可以在telnet程序中输入命令,这些命令会在服务器上运行,就像直接在服务器的控制台上输入一样,可以在本地就能控制服务器。要开始一个telnet会话,必须输入用户名和密码来登录服务器,Telnet是常用的远程控制Web服务器的方法。
使用Telnet协议进行远程登录时需要满足以下条件:在本地计算机上必须装有包含Telnet协议的客户程序、必须知道远程主机的Ip地址或域名、必须知道登录标识与口令。
不同的虚拟机之间可以通过一个命令共享文件
scp 文件 erin@spark2:文件夹名
由于/usr/local文件只能root访问,用root账号才能将jdk.rmp上传。
由于/usr/local只能root访问,得用其他机器的root账号,spark1中root或erin无所谓
scp jdk....tar root@spark2:/usr/local
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
ssh spark2
需要输入spark2的密码
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
在spark1中,将自己的公钥放到spark3中,此后可以免密访问spark3
ssh-copy-id -i spark3
这时spark3中的authorized_keys中出现了spark1的公钥
不用在每个机器上操作一次。可以在第一台机器考入第三台机器,然后在第一台上ssh spark3之后,在第一台上操作第三台,然后将第三台考到别的上面。在随便一台上,利用ssh操作所有的机器。
注意版本,要与安装的spark版本契合才行
通过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
#在property节点中添加
<property>
<name>fs.default.name</name>
<value>hdfs://spark1:9000</value>
</property>
#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代表放置缓存的文件夹
#property中放置
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
还需要把问价的名字改成mapred-site.xml
<property>
<name>yarn.resourcemanager.hostname</name>
<value>spark1</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
#把localhost替换为以下
spark1
spark2
spark3
mkdir /usr/local/data
scp -r hadoop root@spark2:/usr/local
-r代表文件夹下的全部文件
在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
在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
提供给spark写sparksql
spark streaming
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。