Hadoop集群配置安装,详细步骤及讲解

**涉及linux命令一定要注意大小写和空格,linux系统对此敏感**
**hadoop集群的安装一定要静下心一步一步来**

1、关闭防火墙(防火墙最好关闭,不然以后linux操作会有很多麻烦)

1)输入命令: vi etc/selinux/config
	其中改为 SELINUX=disable
2)关闭iptables服务分别执行以下命令:
   service iptables status
   chkconfig iptables off
   reboot(重启服务器)
   service iptables status

2、安装jdk

1)先卸载Linux系统自带的低版本的jdk
	a.查看Linux系统自带的低版本的jdk rpm -qa|grep jdk
	  查到的jdkjava-1.6.0-openjdk-javadoc-1.6.0.0-1.66.1.13.0.el6.x86_64
	b.卸载jdk:rpm -e --nodeps java-1.6.0-openjdk-javadoc-1.6.0.0-1.66.1.13.0.el6.x86_64
	
2).安装rz文件传输工具(版本号可能不一样,无碍)
	a.yum list lrzsz
	b.yum install lrzsz.x86_64

3).使用rz命令上传jdk的tar包
	jdk-8u101-linux-x64.tar.gz

4).解压jdk
	tar -zxvf jdk-8u101-linux-x64.tar.gz

5).添加环境变量
	a.输入命令:vi /etc/profile
	b.添加下面三段:
		export JAVA_HOME=/usr/etc/jdk1.8.0_101(路径一定要注意,是你解压后的jdk的报的路径)
		export PATH=$JAVA_HOME/bin:$PATH
		export CLASSPATH=$JAVA_HOME/lib:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
	c.查看是否安装成功 
		输入命令:java -version

3、添加固定IP(既设置DNS,添加固定IP是为了防止ip变更,设置成静态IP一劳永逸)

1).输入命令:vi /etc/sysconfig/network-scripts/ifcfg-eth0
2).添加:
	ONBOOT=yes
	BOOTPROTO=none
	IPADDR=192.168.15.128
	GATEWAY=192.168.15.2
	DNS1=8.8.4.4
	DNS2=222.85.85.85
	(ONBOOT和BOOTPROTO源文件中已存在修改成yes和none就行,IPADDR是
	你要修改的静态IP一般和现在的IP一样。GATEWAY是网关IP,只需要将IPADDR最后面的几个字改成2。例如:将192.168.15.128改为192.168.15.2)
3).保存之后重启network
	输入命令:service network restart

4、配置主节点名(192.168.15.128)

1).输入命令:vi /etc/sysconfig/network
2).添加内容:(已经有的话改一下就行)
	NETWORKING=yes
	HOSTNAME=master
3).配置两台子节点名(192.168.15.129)和(192.168.15.130)
	NETWORKING=yes
	HOSTNAME=slave1(或HOSTNAME=slave2)

5、配置hosts

1).打开主节点的hosts文件,要将文件的前两行注释掉 (注释当前主机的信息)并在文件中添加所有hadoop集群的主机信息。
	输入命令:vi /etc/hosts
2).添加
	192.168.15.128   master
	192.168.15.129   slave1
	192.168.15.130   slave2
3).保存之后,将主节点的hosts分别拷贝到其他两个子节点
	scp /etc/hosts [email protected]:/etc/
	scp /etc/hosts [email protected]:/etc/
4).重启服务器使之生效
	输入命令:reboot

5、去VMware 克隆linux虚拟机,你也可以再配两个,克隆便捷而且可以减少错误。

1).先关闭要克隆的虚拟机,双击后,右键-->管理-->克隆
根据提示下一步,注意:**中间一定要选择完全克隆,再下一步**
最后点击完成就ok,此步骤进行两遍。

6、配置ssh无密码访问(不懂无密码访问,自己百度或查资料,再此不过多介绍)

1).在每个节点上分别执行:
	ssh-keygen -t rsa
	一直按回车直到生成结束执行结束之后每个节点上的/root/.ssh/目录下生成了两
	文件 id_rsa 和 id_rsa.pub。其中前者为私钥,后者为公钥
2).在主节点上执行:
	cp id_rsa.pub authorized_keys
3).将子节点的公钥拷贝到主节点并添加进authorized_keys
	将两个子节点的公钥拷贝到主节点上,分别在两个子节点上执行:
	scp ~/.ssh/id_rsa.pub root@master:~/.ssh/id_rsa_slave1.pub
	scp ~/.ssh/id_rsa.pub root@master:~/.ssh/id_rsa_slave2.pub
4)然后在主节点上,将拷贝过来的两个公钥合并到authorized_keys文件中去
主节点上执行:
	cat id_rsa_slave1.pub>> authorized_keys
	cat id_rsa_slave2.pub>> authorized_keys

5).最后测试是否配置成功在master上分别执行
	ssh slave1
	ssh slave2

6).将主节点的authorized_keys文件分别替换子节点的authorized_keys文件
主节点上用scp命令将authorized_keys文件拷贝到子节点的相应位置
	scp authorized_keys root@slave1:/root/.ssh/
	scp authorized_keys root@slave2:/root/.ssh/
7).先 cd /root/.ssh 
	然后输入命令:ssh 主机名    可以自由切换即成功(例如:在主节点上输入ssh 		
	slave1),第一次需要输入密码.

7、安装hadoop

1).在master主机上安装hadoop,下载hadoop包,放在/usr目录下,(也可以放在其他目录下)
	使用rz命令上传hadoop的tar包
	cd /user -->rz上传
2).	解压hadoop
	tar -zxvf /usr/hadoop-2.6.4.tar.gz(版本号自己自行修改,要和自己的文件名对应)
3).
	配置环境变量:vi /etc/profile
	在末尾添加:
		export HADOOP_HOME=/usr/hadoop-2.6.4
		export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
4).保存后使新编辑的profile生效:
	source /etc/profile

8、配置hadoop

1).配置hadoop配置文件
	需要配置的文件的位置为/hadoop-2.6.4/etc/hadoop,需要修改的有以下几个
		hadoop-env.sh
		yarn-env.sh
		core-site.xml
		hdfs-site.xml
		mapred-site.xml
		yarn-site.xml
		slaves
	其中:hadoop-env.sh和yarn-env.sh里面都要添加jdk的环境变量:

	hadoop-env.sh中
		# The java implementation to use.
		export JAVA_HOME=/root/jdk1.7.0_72 
		 (只需该路径即可,其他不用该。这是jdk的安装路径,请务必注意对应好自己
		 的角度看路径,不要写错。)
		# The jsvc implementation to use. Jsvc is required to run secure datanodes
		# that bind to privileged ports to provide authentication of data transfer
		# protocol.  Jsvc is not required if SASL is configured for authentication of
		# data transfer protocol using non-privileged ports.
		#export JSVC_HOME=${JSVC_HOME}
		
	yarn-env.sh中
		# User for YARN daemons
		export HADOOP_YARN_USER=${HADOOP_YARN_USER:-yarn}

		# resolve links - $0 may be a softlink
		export YARN_CONF_DIR="${YARN_CONF_DIR:-$HADOOP_YARN_HOME/conf}"

		# some Java parameters
		export JAVA_HOME=/opt/java/jdk1.7.0_72  (和上面配置一样)
		
	core-site.xml中
		<configuration>
		        <property>
		                <name>fs.defaultFS</name>
		                <value>hdfs://master:9000</value>(master为主机名,对应好)
		        </property>
		        <property>
		                <name>io.file.buffer.size</name>
		                <value>131072</value>
		        </property>
		        <property>
		                <name>hadoop.tmp.dir</name>
		                <value>file:/usr/temp</value>
		        </property>
		        <property>
		                <name>hadoop.proxyuser.root.hosts</name>
		                <value>*</value>
		        </property>
		        <property>
		                <name>hadoop.proxyuser.root.groups</name>
		                <value>*</value>
		        </property>
		</configuration>
	
	hdfs-site.xml中
		<configuration>
		        <property>
		                <name>dfs.namenode.secondary.http-address</name>
		                <value>master:9001</value>
		        </property>
		        <property>
		                <name>dfs.namenode.name.dir</name>
		                <value>file:/usr/dfs/name</value>
		        </property>
		        <property>
		                <name>dfs.datanode.data.dir</name>
		                <value>file:/usr/dfs/data</value>
		        </property>
		        <property>
		                <name>dfs.replication</name>
		                <value>2</value>
		        </property>
		        <property>
		                <name>dfs.webhdfs.enabled</name>
		                <value>true</value>
		        </property>
		        <property>
		                <name>dfs.permissions</name>
		                <value>false</value>
		        </property>
		        <property>
		                <name>dfs.web.ugi</name>
		                <value> supergroup</value>
		        </property>
		</configuration>
		
	mapred-site.xml中
		<configuration>
		        <property>
		                <name>mapreduce.framework.name</name>
		                <value>yarn</value>
		        </property>
		        <property>
		                <name>mapreduce.jobhistory.address</name>
		                <value>master:10020</value>
		        </property>
		        <property>
		                <name>mapreduce.jobhistory.webapp.address</name>
		                <value>master:19888</value>
		        </property>
		</configuration>
		
yarn-site.xml中
		<configuration>
		        <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>
		        <property>
		                <name>yarn.resourcemanager.address</name>
		                <value>master:8032</value>
		        </property>
		        <property>
		                <name>yarn.resourcemanager.scheduler.address</name>
		                <value>master:8030</value>
		        </property>
		        <property>
		                <name>yarn.resourcemanager.resource-tracker.address</name>
		                <value>master:8031</value>
		        </property>
		        <property>
		                <name>yarn.resourcemanager.admin.address</name>
		                <value>master:8033</value>
		        </property>
		        <property>
		                <name>yarn.resourcemanager.webapp.address</name>
		                <value>master:8088</value>
		        </property>
		</configuration>
		
	slaves中
			master
			slave1
			slave2

	2).拷贝hadoop安装文件到子节点主节点上执行:
		scp -r /usr/hadoop-2.6.4 root@slave1:/usr
		scp -r /usr/hadoop-2.6.4 root@slave2:/usr
		
	3).拷贝profile到子节点主节点上执行:
		scp /etc/profile root@slave1:/etc/
		scp /etc/profile root@slave2:/etc/
		
	4).在两个子节点上分别使新的profile生效:
		source /etc/profile
		
	5).格式化主节点的namenode
		主节点上进入hadoop-2.6.4(hadoop的安装目录,即解压后的hadoop目录)目录
		然后执行:
			hadoop namenode –format
		新版本用下面的语句不用hadoop命令了
			hdfs namenode –format
		提示:successfully formatted表示格式化成功,不太好早,仔细一点,在靠下的位置
		
	6).启动hadoop
		主节点上在hadoop-2.6.4目录下执行:
		./sbin/start-all.sh

9、验证是否成功

	主节点上输入:jps
	NameNode
	SecondaryNameNode
	ResourceManager
	只要有以上三个进程即成功
	每个子节点上输入:jps
	DataNode
	NodeManager
	只要有以上两个进程即成功
	这样hadoop集群配置成功
	然后打开浏览器,地址栏中输入   主机名:50070 (例如:192.168.15.128:50070)进入
	http://192.168.79.133:50070/dfshealth.html#tab-overview网站即成功。

猜你喜欢

转载自blog.csdn.net/P_G_Zero/article/details/83064056