HDFS集群搭建

一、集群环境准备

1、克隆四台linux虚拟机
2、修改每一台虚拟机主机名

[root@bigdata01 ~]# vi /etc/sysconfig/network

3、修改每一台虚拟机ip地址

[root@bigdata01 ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0 

4、修改每一台虚拟机的网卡物理地址,把eth0的那一行删掉,把下一行eth1改为eth0

[root@bigdata01 ~]# vi /etc/udev/rules.d/70-persistent-net.rules 

5、重启服务器

[root@bigdata01 ~]# reboot

6、在window上配置这几台linux服务器域名映射,位置C:\windows\system32\drivers\etc\host
7、对每一台linux服务器关闭防火墙
1)临时关闭

[root@bigdata01 ~]# service iptables stop

2)开机自动关闭

[root@bigdata01 ~]# chkconfig iptalbes off

二、安装jdk、hadoop

1、在第一台服务器上安装jdk
1)上传jdk安装包,这里我用的是SecureCRT连接工具外部连接linux,用ALT+P拖拽上传jdk的压缩包
2)解压

   [root@bigdata01 ~]# tar -zxvf jdk-8u102-linux-x64.tar.gz -C /usr/local/

2、在第一台服务器安装hadoop
1)上传、解压安装包

 [root@bigdata01 ~]# tar -zxvf hadoop-2.7.3.tar.gz -C /usr/local/

2)修改配置文件

  [root@bigdata01 hadoop]# cd /usr/local/hadoop-2.7.3/etc/hadoop/
[root@bigdata01 hadoop]# vi  hadoop-env.sh
  # The java implementation to use.
    export JAVA_HOME=/usr/local/jdk1.8.0_102
 

 [root@bigdata01 hadoop]# vi  core-site.xml
  # Namenode在哪里 ,临时文件存储在哪里
	 <configuration>
	 <property>
	 <name>fs.defaultFS</name>
	#hadoop的namenode位置
	 <value>hdfs://hadoop3801:9000</value>
	 </property>
	 <property>
	 <name>hadoop.tmp.dir</name>
	#临时文件存储
	 <value>/usr/local/hadoop-2.7.3/tmp</value>
	 </property>
	 </configuration>
	 
	 
 [root@bigdata01 hadoop]# vi  hdfs-site.xml
 <configuration>
     #namenode存储路径
	 <property>
	 <name>dfs.namenode.name.dir</name>
	 <value>/usr/local/hadoop-2.7.3/data/name</value>
 	 </property>
 	 #datanode存储路径
	 <property>
	 <name>dfs.datanode.data.dir</name>
	 <value>/usr/local/hadoop-2.7.3/data/data</value>
	 </property>
	 #默认副本数量设置为3,该参数其实用于和客户端软件
	 <property>
	 <name>dfs.replication</name>
	 <value>3</value>
	 </property>
	 <property>
	 <name>dfs.secondary.http.address</name>
	 <value>hadoop3801:50090</value>
	 </property>
 </configuration>



	#这里的mapred-site.xml.template是临时文件,将其转为永久文件
 [root@bigdata01 hadoop]# cp mapred-site.xml.tmp* mapred-site.xml
 [root@bigdata01 hadoop]# vi  mapred-site.xml
	<configuration>
	<property>
	<name>mapreduce.framework.name</name>
	<value>yarn</value>
	</property>
	</configuration>


 [root@bigdata01 hadoop]#vi yarn-site.xml
	#计算处理框架位置
	<configuration>
	<property>
	<name>yarn.resourcemanager.hostname</name>
	<value>hadoop3801</value>
	</property>
	<property>
	<name>yarn.nodemanager.aux-services</name>
	<value>mapreduce_shuffle</value>
	</property>
	</configuration>
        
 [root@bigdata01 hadoop]#vi slaves
	#小弟的位置
	Hadoop02
	Hadoop03

3、配置环境变量

[root@bigdata01 hadoop]# vi /etc/profile

export JAVA_HOME=/usr/local/jdk1.8.0_102
export HADOOP_HOME=/usr/local/hadoop-2.7.3
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

[root@bigdata01 hadoop]# source /etc/profile

三、设置免密登录,并将jdk、hdoop发送至其他服务器

这里是引用韩利鹏老师的ssh免密登陆脚本

1、发送jdk

[root@bigdata01 ~]# scp -r /usr/local/jdk1.8.0_102 bigdata02:/usr/local

2、发送hadoop

[root@bigdata01 ~]# scp -r /usr/local/hadoop-2.7.3 bigdata02:/usr/local

3、发送配置文件

[root@bigdata01 ~]# scp /etc/profile bigdata02:/etc/

四、启动

1、使用格式化命令建立存储路径,初始化namenode的元数据存储目录

[root@bigdata01 ~]# hdoop namenode -format

2、用hadoop安装目录中sbin目录中的start-dfs.sh自动启动集群

[root@bigdata01 ~]# start-dfs.sh
#停止
[root@bigdata01 ~]# stop-dfs.sh

3、启动yarn集群

[root@bigdata01 ~]# start-yarn.sh
#停止
[root@bigdata01 ~]# stop-yarn.sh

4、使用jps查看进程

[root@bigdata01 ~]# jps
3242 NameNode
3499 SecondaryNameNode
3339 DataNode
3677 ResourceManager
3775 NodeManager
3807 Jps

五、常见故障及解决

1、namenode启动正常,但datanode启动失败
原因:datanode存储目录的VERSION文件中存储的集群id:clusterld保存的四上一次namenode所生成的集群id
解决:删除datanode存储目录,再重启,会生成新的目录,存储新的集群id

2、datanode进程启动成功,但不被namenode所接纳
原因:该datanode的存储目录跟另一台datanode的存储目录重复,导致两个datanode的uuid相同,name只认可其中一台
解决:删除问题datanode三的存储目录,生成新的uuid

查看datanode的uuid:

   cd hdp-data/data/current/
   cat VERSION 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值