写在前边的话
基本环境:
CentOS 6.5,Hadoop 2.7,Java 1.7
Hive 2.0.0,Zookeeper 3.4.8, Hbase 1.2.2
预安装
Scala 2.11
Spark 2.0
Sqoop 1.4.6
Mahout 0.12.2
sudo tar -zxvf /home/master/下载/scala-2.11.8.tar.gz -C /opt/
sudo mv scala-2.11.8/ /opt/scala
sudo vim /etc/profile 加入如下代码:
source /etc/profile
执行 sudo scp -r /opt/scala/ slave1:/opt/scala
sudo scp -r /opt/scala/ slave2:/opt/scala
分别在各个节点上修改环境变量即可
终端直接输入scala即可
[master@master1 opt]$ sudo tar -zxvf /home/master/下载/spark-2.0.0-bin-hadoop2.7.tgz -C .
[master@master1 opt]$ sudo mv spark-2.0.0-bin-hadoop2.7/ spark
sudo vim /etc/profile ,加入
复制 :sudo cp spark-env.sh.template spark-env.sh
加入以下:
master1
slave1
slave2
sudo scp -r /opt/spark/ slave1:/opt/spark
sudo scp -r /opt/spark/ slave2:/opt/spark
并修改各个节点的环境变量
启动master: sbin/start-master.sh
启动salve: sbin/start-slaves.sh
如遇到权限不足问题,直接给每台机器上的spark目录赋予 777 的权限即可
http://192.168.48.130:8080/
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiIyVGduV2QvwVe0lmdhJ3ZvwFM38CXlZHbvN3cpR2Lc1TPB10QGtWUCpEMJ9CXsxWam9CXwADNvwVZ6l2c052bm9CXUJDT1wkNhVzLcRnbvZ2LcZXUYpVd1kmYr50MZV3YyI2cKJDT29GRjBjUIF2LcRHelR3LcJzLctmch1mclRXY39DM2MTO1cTM5ADOycDM2EDMy8CX0Vmbu4GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.jpg)
bin/spark-shell
sudo vim /etc/profile
sudo cp /home/master/下载/mysql-connector-java-5.1.39-bin.jar /opt/sqoop/lib/
此时如果没有启用hbase,zookeeper等组件,将相应的信息注释,如果启用了,就pass,直接进入下一步
注意路径问题
sudo vim /etc/profile ,加入以下内容:
保存生效:source /etc/profile
进入mahout安装目录,执行:bin/mahout
1:出现 sudo: command not found时
执行 export PATH=$PATH:/bin:/usr/bin:/usr/local/bin 即可
2:这里我们发现除了spark的分布式安装以外要把安装包拷贝到各个节点之外,sqoop和mahout并不需要,只需要在master主机上部署即可,我的理解是sqoop只是进行数据传输的,数据可以是HDFS上的,也可以是Hive,或者Hbase上的,而本身他们已经是分布式的了,所以这里自然不需要将其拷贝到各个节点,而mahout也一样吧,只要运行在分布式的平台上即可,其所依赖的数据也是在hdfs或者hive上,故也不需要将其拷贝到各个节点
3:那么问题来了,我们是否可以将sqoop或者mahout部署到slave节点上呢?答案是肯定的吧,因为每台机器之间是可以互相通过ssh访问的,sqoop使用时可以直接加上对应的IP地址即可,而mahout就可以直接使用了