重启服务:
经过上述设置,副本数已经调整为1,但是已有文件的副本数还没有同步,需要重新做设置,SSH登录到电脑deskmini上;
执行命令vi /etc/passwd,找到账号hdfs的配置,如下图红框所示,/sbin/nologin这样的shell会导致切换到hdfs账号失败:
将上述红框中的内容改为/bin/bash,修改后如下图红框所示:
执行命令su - hdfs,即可切换到hdfs账号,此时执行以下命令即可完成副本数设置:
hadoop fs -setrep -R 1 /服务已经全部正常了:
YARN默认给容器分配的内存过小,导致启动spark-shell失败,需要调整YARM相关的内存参数:
在YARN的配置页面,调整yarn.scheduler.maximum-allocation-mb和yarn.nodemanager.resource.memory-mb这两个参数的值,我这里将这个两个参数的值都改成8G(请按照自己电脑实际硬件配置来调整),如下图:
重启YARN:
执行spark-shell命令之前,先执行命令su - hdfs切换到hdfs账号;
这次终于成功进入spark-shell交互模式:
至此,CDH6的部署、启动、设置都已经完成,接下来体验一下大数据服务; 体验HDFS和Spark
接下来运行一个Spark任务,经典的WordCount:
准备一份文本文件,里面是英文内容,您可以下载这个文件:https://raw.githubusercontent.com/zq2599/blog_demos/master/files/GoneWiththeWind.txt
登录SSH,切换到hdfs账号;
创建HDFS文件夹:
hdfs dfs -mkdir /input将文本文件上传到/input目录:
hdfs dfs -put ./GoneWiththeWind.txt /input执行命令spark-shell,启动一个worker;
输入以下命令,即可完成一次WorkCount任务,192.168.50.134是deskmini的IP地址:
sc.textFile("hdfs://192.168.50.134:8020/input/GoneWiththeWind.txt").flatMap(_.split(" ")).map((_,1)).reduceByKey(_+_).saveAsTextFile("hdfs://192.168.50.134:8020/output")执行完毕后,下载结果文件:
hdfs dfs -get /output/*上述命令将spark任务的结果文件part-00000、part-00001下载到本机,用vi命令查看文件,如下图,可见WorkCount执行成功:
在浏览器上查看历史任务,地址是::18088 ,可见此次任务的详情:
至此,CDH6的部署、设置、体验都已经完成,如果您正在搭建自己的学习或者开发环境,希望本文能给您一些参考。 深度定制
整个实战虽然避免了传统部署过程中的大量手动操作,但弊端也很明显:所有路径、文件名、服务版本都是固定的,不能做任何设置,虽然ansible也支持变量,但是如果变量太多也会给您带来困扰,所以,如果您有修改版本或路径的需求,建议您自行修改cdh-single-install.yml、cdh-single-start.yml的内容,所有文件和版本信息都在里面。
欢迎关注公众号:程序员欣宸微信搜索「程序员欣宸」,我是欣宸,期待与您一同畅游Java世界...
https://github.com/zq2599/blog_demos