Spark集群搭建中的问题

参照《Spark实战高手之路》学习的,书籍电子版在51CTO网站 资料链接
Hadoop下载[链接](http://archive.apache.org/dist/hadoop/core/hadoop-1.2.1/)
JDK下载[链接](http://www.oracle.com/technetwork/java/javase/downloads/index.html)

1.安装好vmvare和Ubuntu虚拟机后,不能使用vim,出现Package has no installation candidate的问题。
解决方法:apt-get upgrade — apt-get install vim 有时候也要看看是否联网。

2.设置共享文件夹,参考别人的经验,安装vmware-tools 以及 设置共享文件夹

(1)在虚拟机系统没有运行的情况下,点击虚拟机工具栏的VM settings->options->Shared Folders,按照提示添加一个你要共享的windows下的文件夹。
(2)安装vmtools,vmtools安装成功后会看到目录/mnt/hgfs.如果没有该目录则可以手动建立
(3)ubuntu终端下运行 sudo apt-get install open-vm-dkms
(4)进入目录:/etc/init.d,把”sudo mount -t vmhgfs .host:/ /mnt/hgfs”写到open-vm-tools文件的最后一行(需要root权限,可以用命令:sudo vi open-vm-tools)。
(5)在当前目录:/etc/init.d/运行,”sudo ./open-vm-tools restart”,运行成功后你会在目录:/mnt/hgfs下面看到你共享的文件夹

查看VMware tools 有没有安装成功,使用命令 lsmod 查看有没有vmhgfs这个,如果没有则重新安装。这个共享文件夹没有成功,后面有时间再说吧。

3.Hadoop启动与停止

start-all.sh: 启动所有的Hadoop守护进程。包括NameNode、 Secondary NameNode、DataNode、JobTracker、 TaskTrack 。

start-dfs.sh: 启动Hadoop HDFS守护进程NameNode SecondaryNameNode和DataNode。

hadoop-daemons.sh: start namenode 单独启动NameNode守护进程。

hadoop-daemons.sh: start datanode 单独启动DataNode守护进程

hadoop-daemons.sh: stop secondarynamenode 单独停止SecondaryNameNode守护进程。

stop-mapred.sh: 停止Hadoop MapReduce守护进程JobTracker和TaskTracker。

hadoop-daemons.sh: stop jobtracker 单独停止JobTracker守护进程

hadoop-daemons.sh: stop tasktracker 单独启动TaskTracker守护进程。

如果Hadoop集群是第一次启动,可以用start-all.sh。比较常用的启动方式是一个一个守护进程来启动,启动的步骤如下。

1.启动Hadoop的HDFS模块里的守护进程HDFS里面的守护进程启动也有顺序,即:

1)启动NameNode守护进程;> 2)启动DataNode守护进程; 3)启动SecondaryNameNode守护进程。

2.启动MapReduce模块里面的守护进程MapReduce的守护进程启动也是有顺序的,即:

1)启动 JobTracker守护进程; 2)启动TaskTracker守护进程。> 关闭的步骤正好相反,在这里就不描述了,读者可以自己试一下。

注意正常情况下,我们是不使用start-all.sh和stop-all.sh来启动和停止Hadoop集群的。这样出错了不好找原因。建议读者一个一个守护进程来启动,哪个启动失败就去看相应的log日志,这样就缩小了找错的范围。

4.Hadoop启动的时候遇到的错误,基本安装完后通过命令“jps”查看,但是只启动了jps,其他都不能正常启动,查看对应的log日志文件(vim查看),一个错误原因是配置文件写错了,改过后可以正常启动jobtracker、tasktracker;另一个原因就是目录访问权限不一致;
报错:

ERROR:org.apache.hadoop.hdfs.server.datanode.DataNode:All directories in dfs.data.dir are invalid warn。

WARN :org.apache.hadoop.hdfs.server.datanode.DataNode: Invalid directory in dfs.data.dir: Incorrect permission for /home/hadoop/dfs/data, expected: rwxr-xr-x, while actual: rwxrwxrwx。

使用命令修改目录访问权限。需要将777权限改为755权限才行。
可以参考博客
5. namenode日志文件中出现

     java.io.IOException:NameNode is not formatted

需要删除core-site.xml配置文件中配置的tmp目录下的所有的文件,停止Hadoop,再重新格式化命名,启动Hadoop。
进入Hadoop目录,运行以下程序:

     rm -rf tmp/*
     rm -rf /tmp/hadoop*
     rm -rf hdfs/name/*
     rm -rf hdfs/data/*
     --然后重新格式化,启动
      hadoop namenode -format
     start-all.sh

6.搭建Spark时,启动错误:

     Failed to find Spark assembly in /usr/lib/spark/spark-1.6.1/assembly/target/scala-2.10

错误原因是spark包下错了,应该下载prebuild包,Choose a package type 可以选择啊~~~
7.启动Spark后,开启spark-shell,出现错误:

     java.lang.RuntimeException: java.lang.RuntimeException: The root scratch dir: /tmp/hive on HDFS should be writable. Current permissions are: rwx--x--x

需要修改访问/tmp文件权限

     hadoop fs -chmod -R 777 /tmp
hadoop fs -ls /tmp

以上完成Spark集群搭建过程,后面每次开机使用,需要先启动Hadoop集群,再启动Spark集群。

     --格式化
      hadoop namenode -format
     --启动Hadoop
     start-all.sh
     --使用jps查看是否启动成功,成功,再启动Spark,进入到spark的sbin目录
      ./start-all.sh

如果hadoop启动失败,可查看日志文件判别错误,一般都是因为每次使用“hadoop namenode -format”命令格式化文件系统时会出现一个新的namenodeId,搭建平台时自己往tmp中放了数据,所以需要删除,以防冲突,进入Hadoop文件所在目录(hadoop1.2.1目录)
执行:

     rm -rf tmp/*
     rm -rf /tmp/hadoop*
     rm -rf hdfs/name/*
     rm -rf hdfs/data/* 

重新格式化,启动。检测是否成功参考资料中的第一章,第三步。

转载于:https://www.cnblogs.com/yiruparadise/p/5502870.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值