master管理集群
在上一篇hadoop集群搭建教程中,启动集群的方式是:需要在每一台节点机器上分别键入启动命令。但是,这样的方法显然很麻烦,而且不人性化,那么我们可以通过master进行统一管理,整个集群一起启动吗?答案显然是肯定的。
master配置slave信息
vim /usr/local/hadoop/etc/hadoop/slaves
写入你集群中所有slave节点的host,一行一个。
共享公钥
cd .ssh/
ssh -keygen -t rsa
然后一直按回车键,在你的master机器上生成公钥。此时该目录下,就会生成master的公钥文件。
接着,将公钥传输到master自己和其他所有的节点机器上,命令如下:
ssh-copy-id master
ssh-copy-id slave1
这一步的目的是:如果你想在master中启动整个集群的hadoop服务的话,是需要ssh到所有机器上的,但是在ssh的时候会需要密码,所以,分享了公钥之后,每次ssh的时候有这份公钥就可以与私钥配对,就不需要输入密码了。
统一启动集群
start-dfs.sh
stop-dfs.sh
上面的工作做完之后,就可以在你的master直接启动整个集群服务了。上面的命令分别是启动和关系hdfs服务。
web访问
启动了hdfs服务之后,你还可以在网页浏览你集群的hdfs,地址是:http://192.168.52.10:50070,就是你master的ip加上50070端口号。
hdfs配置
关于hdfs的配置信息,都在这个文件里hdfs-site.xml
,hadoop的配置文件都是在这个目录下/usr/local/hadoop/etc/hadoop/
修改文件复制的数量,默认为3,当有一台机器宕机,会自动备份到其他机器至3份
<configuration>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
</configuration>
hadoop.tmp.dir
文件存放位置,格式化+重启
有时候你会需要用到在windows访问hdfs,那你可能就需要用到以下配置
dfs.permissions
是否检查hdfs读写权限,需重启集群
或在run configurations中设置vm-options:
-DHADOOP_USER_NAME=root
配置yarn和mapreduce
hdfs、yarn和mapreduce是hadoop的三大组件,三者紧密联系。hdfs可以认为是hadoop的文件系统,yarn是资源管理,mapreduce是计算引擎。
配置yarn——yarn-site.xml
<property>
<name>yarn.resourcemanager.hostname</name>
<value>master</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.aux-services.mapreduce_shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
配置mapreduce——mapred-site.xml
(默认是没有这个文件的,只需要拷贝mapred-site.xml.template
,然后改一下名字即可)
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
启动yarn服务
start-yarn.sh
stop-yarn.sh
至此,整个完成的hadoop集群就可以算是搭建完成了。撒花~~~
hdfs常用命令
查看文件:hadoop fs -ls /
删除文件:hadoop fs -rm /xx.txt
添加文件:hadoop fs -put path1 path2(path1为系统路径,path2为hdfs路径)
-mkdir -text
其实可以看到,hdfs的命令是Linux还是很像。
mapreduce工作流程
借用马老师的一张图
欢迎关注同名公众号:“我就算饿死也不做程序员”。
交个朋友,一起交流,一起学习,一起进步。