Hadoop集群搭建(完全分布式)
- 前期准备(4台linux服务器),具体搭建过程可以参考https://www.cnblogs.com/monco/p/9046614.html(克隆虚拟机比较方便)
- 新建hadoop用户(这一步可以在克隆机器之前就做好)
- 设置4台机器ssh免密登录https://blog.csdn.net/lz_1992/article/details/50523507(百度很多这种文章,很简单的)
- jdk安装部署,hadoop安装部署(不想说了,4台虚拟机都设置一样,可以在克隆机器之前做好,我的配置如下)
HADOOP_HOME=/home/hadoop/apps/hadoop-2.6.4 JAVA_HOME=/opt/software/java/jdk1.7.0_76 JRE_HOME=/opt/software/java/jdk1.7.0_76/jre CLASS_PATH=.:${JAVA_HOME}/lib:${JAVA_HOME}/lib #PATH=${JAVA_HOME}/bin:$PATH PATH=$PATH:${JAVA_HOME}/bin:${JRE_HOME}/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin export HADOOP_HOME export JAVA_HOME export PATH
- hadoop集群需要理解NameNode,DataNode,SecondNameNode的关系,具体参考下篇博客
- 修改配置文件 hadoop-env.sh 用来设置java的环境变量 ,此文件在(/home/hadoop/apps/hadoop-2.6.4/etc/hadoop),hadoop安装目录下的etc下的hadoop文件夹中
# The java implementation to use. export JAVA_HOME=/home/hadoop/apps/jdk1.7.0_51
- 修改配置文件(core-site.xml)设置NameNode属性(ruixuan.com 是我本机的主机名,可以在/etc/hosts里设置)
<configuration> <property> <name>fs.defaultFS</name> <value>hdfs://ruixuan.com:9000</value> </property> <property> <name>hadoop.tmp.dir</name> <value>/home/HADOOP/apps/hadoop-2.6.1/tmp</value> </property>
</configuration>这里设置了NameNode的地址,是在ruixuan.com这台主机上,设置hadoop的临时目录,自己指定。
- 修改配置文件(hdfs-site.xml)设置NameNode和DataNode的文件保存路径
<configuration> <property> <name>dfs.namenode.name.dir</name> <value>/home/hadoop/data/name</value> </property> <property> <name>dfs.datanode.data.dir</name> <value>/home/hadoop/data/data</value> </property> <property> <name>dfs.replication</name> <value>3</value> </property> </configuration>
replication的是副本数,意思是一个文件需要在HDFS分布式文件系统中保存几分,建议 DataNode的数量应大于等于replication。
- 修改配置文件(mapred-site.xml)
<configuration> <property> <name>mapreduce.framework.name</name> <value>yarn</value><!--默认为local --> </property> </configuration>
- 修改配置文件(yarn-site.xml)
<configuration> <!-- Site specific YARN configuration properties --> <property> <name>yarn.resourcemanager.hostname</name> <value>ruixuan.com</value> </property> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property>
- 添加文件(salves),如果不添加或者不修改此文件,hadoop也可以正常启动,只是不可以使用hadoop的一键启动命令,但是可以一一启动,并不影响hadoop的实际操作
mini01 mini02 mini03
配置的是主机名
- 初始化hadoop路径(bin/hadoop namenode -format),在bin目录下执行format操作(关于这个操作,之后会详细讲解,很重要,对于数据恢复,误删等)
- 执行启动操作 sbin/start-dfs.sh 启动完成后 jps 会在4台机器上分别查到1个NameNode和3个DataNode,这样Hadoop的HDFS模块就配置完成了。