scala的安装及使用
前提你的集群机器已经安装好jdk1.7.0_79、hadoop-2.7.3;
配置中使用了master01、slave01、slave02、slave03;
文中的所有操作都是在之前的文章http://www.cnblogs.com/mmzs/p/8031129.html基础上建立的,重复操作已经简写;
一、虚拟机中操作(启动网卡)
sh /install/initNetwork.sh
ifup eth0
二、基础配置(主机名、IP配置、防火墙及selinux强制访问控制安全系统)
vi /etc/sysconfig/network (配置磁盘中主机名字)
vi /etc/hosts (配置映射,)
hostname 主机名 (修改内存中主机名)
然后,重新链接查看是否成功;
vi /etc/sysconfig/network-scripts/ifcfg-eth0
查看内容是否设置成功:cat /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0 (设置需要重启的设备的名字) TYPE=Ethernet(以太网) ONBOOT=yes (设置为yes) NM_CONTROLLED=yes BOOTPROTO=static (设置为静态) IPADDR=192.168.238.130 (本机IP地址) NETMASK=255.255.255.0 (子网掩码) GATEWAY=192.168.238.2 (网关)(查询本机网关:route -n) DNS1=192.168.238.2 DNS2=8.8.8.8 (谷歌IP地址)
vi /etc/sysconfig/selinux
修改:SELINUX=disabled
去掉注释查看selinux内容:
grep -Ev '^#|^$' /etc/sysconfig/selinux
永久关闭防火墙:
service iptables stop
chkconfig iptables off
三、配置ssh免密登录(为root用户配置免s密码登录)
只需要master登录到salve各个节点即可,无需反向
[root@master01 ~]# ssh-keygen -t rsa 创建公匙
[root@master01 ~]# ssh-copy-id slave02 拷贝公匙
大数据学习交流群:217770236 让我我们一起学习大数据
四、安装scala
1、上传安装包到/install/目录
[hadoop@master01 install]$ ls
initNetwork.sh scala-2.11.8.tgz spark-2.1.1-bin-hadoop2.7.tgz
2、解压到/software/目录
[hadoop@master01 install]$ tar -zxvf scala-2.11.8.tgz -C /software/
3、配置系统环境
[root@master01 install]# vi /etc/profile
JAVA_HOME=/software/jdk1.7.0_79 HADOOP_HOME=/software/hadoop-2.7.3 HBASE_HOME=/software/hbase-1.2.6 SCALA_HOME=/software/scala-2.11.8 PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/lib:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$HBASE_HOME/bin:$SCALA_HOME/bin export PATH JAVA_HOME HADOOP_HOME HBASE_HOME SCALA_HOME
[root@master01 install]# source /etc/profile
4、验证是否安装成功
[root@master01 install]# scala -version
[root@master01 install]# scalac -version
[root@master01 install]# which scala
/software/scala-2.11.8/bin/scala
[root@master01 install]# which scalac
/software/scala-2.11.8/bin/scalac
5、修改Scala安装目录的宿主为root,如果已经是root则不用修改
[root@master01 software]# chown -R root:root scala-2.11.8
6、分发Scala的安装目录到各个Slave节点
[root@master01 software]# scp -r scala-2.11.8 slave01:/software/
[root@master01 software]# scp -r scala-2.11.8 slave02:/software/
[root@master01 software]# scp -r scala-2.11.8 slave03:/software/
7、分发系统环境配置文件到各个Scala节点
[root@master01 software]# scp -r /etc/profile slave01:/etc/
[root@master01 software]# scp -r /etc/profile slave02:/etc/
[root@master01 software]# scp -r /etc/profile slave03:/etc/
[root@slave01 software]# source /etc/profile
[root@slave02 software]# source /etc/profile
[root@slave03 software]# source /etc/profile
五、scala的基础使用
[root@master01 install]# scala Welcome to Scala 2.11.8 (Java HotSpot(TM) 64-Bit Server VM, Java 1.7.0_79). Type in expressions for evaluation. Or try :help. scala> :q [root@master01 install]#
//定义变量
scala> var a=20; a: Int = 20 scala> a res0: Int = 20
//1、貌似和js有点像,但是不能像js那样省略变量类型
scala> b=30; <console>:13: error: not found: value b val $ires0 = b ^ <console>:11: error: not found: value b b=30; ^
//变量值修改
scala> a=40; a: Int = 40 scala> a res1: Int = 40
//定义一个常量
scala> val k=100 k: Int = 100 scala> k=200 <console>:12: error: reassignment to val k=200 ^
//2、类型可以通过第一次赋值自动推断,后面的类型转换要遵循类型兼容原则
scala> a=50; a: Int = 50 scala> a=55.55 <console>:12: error: type mismatch; found : Double(55.55) required: Int a=55.55 ^
//Int是作为一个和推断类型校验的作用
scala> var kk:Int=300
kk: Int = 300
//300.333推断出是double,但是和定义的Int校验不一样,所以出错
scala> var kk:Int=300.333 <console>:11: error: type mismatch; found : Double(300.333) required: Int var kk:Int=300.333 ^
//常量不能赋值修改,但是可以重新定义
scala> val cc=11; cc: Int = 11 scala> cc=12 <console>:12: error: reassignment to val cc=12 ^ scala> val cc=12; cc: Int = 12