搭建Hadoop伪分布式集群

环境配置:vmware workstation + Centos6.5 + Hadoop2.6.0 + JDK1.7 

节点配置:192.168.6.209    master     ---->主机名:myhadoop-master

                  192.168.6.210    slave        ---->主机名:myhadoop-slave-1

                  192.168.6.211    slave        ---->主机名:myhadoop-slave-2


一:修改HostName,并让IP与HostName绑定

1、修改每台机器的主机名(HostName)

#hostname hadoop-master (当前生效,重启以后不生效)

#vi /etc/sysconfig/network  (重启生效)

2、IP和HostName绑定

#vi /etc/hosts

127.0.0.1   localhost localhost.localdomain localhost6 localhost6.localdomain6

::1               localhost localhost.localdomain localhost6 localhost6.localdomain6

192.168.6.209 myhadoop-master

192.168.6.210 myhadoop-slave-1

192.168.6.211 myhadoop-slave-2

二:修改IP地址为静态IP

#vi /etc/sysconfig/network-scripts/ifcfg-eth0

三:关闭防火墙

#service iptables status 查看当前防火墙状态

#service iptables stop  关闭防火墙,当前生效,重启以后不生效

#chkconfig iptables off  关闭防火墙,重启以后仍然生效

四:配置ssh

1、产生密钥

#ssh-keygen -t rsa           将产生密钥文件,位于当前用户目录下的 .ssh 文件夹下

2、查看产生的密钥文件

#ls ~/.ssh/

id_rsa  id_rsa.pub

说明:id_rsa(私钥文件)    id_rsa.pub(公钥文件)

3、将id_rsa.pub文件复制并重命名为authorized_keys

#copy ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys

4、测试是否可以面密码登录

#ssh localhost  或者 ssh myhadoop-master

5、在其他每台机器上产生密钥,即重复上面的步骤

6、把其他节点的公钥数据添加到本节点 ~/.sshauthorized_keys 文件中

7、测试互相连接是否成功。

#ssh myhadoop-slave-1

#ssh myhadoop-slave-2

 五:安装JDK

1、下载JDK1.7,注意只能用1.7+

下载地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html 

2、解压安装

export JAVA_HOME=/home/tools/jdk1.7.0_75

export JRE_HOME=$JAVA_HOME/jre

export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

export PATH=$PATH:$JAVA_HOME/bin

3、使配置文件立即生效

#source /etc/profile

4、测试 

#java -version

六:下载Hadoop2.6.0 包 

#wget http://mirror.bit.edu.cn/apache/hadoop/common/hadoop-2.6.0/hadoop-2.6.0.tar.gz

解压到指定的目录:

#tar -zxvf hadoop-2.6.0.tar.gz  /home/tools/

七:修改Hadoop配置文件

主要涉及的配置文件有7个,都在/hadoop-2.6.0/etc/hadoop文件夹下,可以用gedit命令对其进行编辑。

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两个文件中修改JAVA_HOME

 export JAVA_HOME=/home/tools/java/jdk1.7.0_75

core-site.xml中增加

<configuration>
	<!--Hadoop的临时目录,本地目录。是hadoop文件系统依赖的基础配置,很多路径都依赖它。如果hdfs-site.xml中不配置namenode和datanode的存放位置,默认就放在这个路径中。只可以设置一个值。建议设置到一个足够空间的地方,而不是默认的/tmp下-->
	<property>
		<name>hadoop.tmp.dir</name>
		<value>/home/hadoop-data/tmp</value>
		<description>Abase for other temporary directories.</description>
	</property>
	 <!--这是一个描述集群中NameNode结点的URI(包括协议、主机名称、端口号),集群里面的每一台机器都需要知道NameNode的地址。DataNode结点会先在NameNode上注册,这样它们的数据才可以被使用。独立的客户端程序通过这个URI跟DataNode交互,以取得文件的块列表。需与hdfs-site.xml中的dfs.nameservices一致-->
	<property>
		<name>fs.defaultFS</name>
		<value>hdfs://myhadoop-master:9000</value>
	</property>
	
	<!--在读写文件时使用的缓存大小。这个大小应该是内存Page的倍数。-->
	<property>
		<name>io.file.buffer.size</name>
		<value>4096</value>
	</property>

</configuration>

在hdfs-sie.xml中增加

<configuration>

	<!--表示NameNode存储命名空间和操作日志相关的元数据信息的本地文件系统目录,该项默认本地路径为”/tmp/hadoop-{username}/dfs/name”-->
	<property>
		<name>dfs.namenode.name.dir</name>
		<value>file:///home/hadoop-data/dfs/name</value>
	</property>
	
	<!--表示DataNode节点存储HDFS文件的本地文件系统目录,由”file://本地目录”组成,该项默认本地路径为”/tmp/hadoop-{username}/dfs/data”-->
	<property>
		<name>dfs.datanode.data.dir</name>
		<value>file:///home/hadoop-data/dfs/data</value>
	</property>
	<!--决定着系统里面的文件块的数据备份个数。对于一个实际的应用,应该被设为3(这个数字并没有上限,但更多的备份可能并没有作用,而且会占用更多的空间)。少于三个的备份,可能会影响到数据的可靠性(系统故障时,也许会造成数据丢失)-->
	<property>
		<name>dfs.replication</name>
		<value>3</value>
	</property>

	<!--dfs.nameservices 命名空间的逻辑名称。如果使用HDFS Federation,可以配置多个命名空间的名称,使用逗号分开即可。-->
    <property>
        <name>dfs.nameservices</name>
        <value>myhadoop-master</value>
    </property>

	<!--表示SecondNameNode主机及端口号(如果无需额外指定SecondNameNode角色,可以不进行此项配置)-->
    <property>
        <name>dfs.namenode.secondary.http-address</name>
        <value>myhadoop-master:50090</value>
    </property>

	<!--是否开启hdfs的web页面-->
    <property>
        <name>dfs.webhdfs.enabled</name>
        <value>true</value>
    </property>
	<!--解决:org.apache.hadoop.security.AccessControlException:Permission:user=Administrator,access=WRITE,inode="tmp":root:supergroup:rwxr-xr-x。因为Eclipse使用hadoop插件提交作业时,会默认以DrWho身份去将作业写入hdfs文件系统中,对应的也就是HDFS上的/user/hadoop,由于DrWho用户对hadoop目录并没有写入权限,所以导致异常的发生。解决方法为:放开 hadoop 目录的权限, 命令如下 :$ hadoop fs -chmod 777 /user/hadoop -->
	<property>
		<name>dfs.permissions</name>
		<value>false</value>
	</property>
	
</configuration>
在mapped-site.xml中增加
<configuration>

	<!--表示执行mapreduce任务所使用的运行框架,默认为local,需要将其改为”yarn”-->
	<property>
		<name>mapreduce.framework.name</name>
		<value>yarn</value>
		<final>true</final>
	</property>

    <property>
        <name>mapreduce.jobtracker.http.address</name>
        <value>myhadoop-master:50030</value>
    </property>
	
    <property>
        <name>mapreduce.jobhistory.address</name>
        <value>myhadoop-master:10020</value>
    </property>
	
    <property>
        <name>mapreduce.jobhistory.webapp.address</name>
        <value>myhadoop-master:19888</value>
    </property>
	
	<!-- mapred.job.tracker -JobTracker的主机(或者IP)和端口。-->
	<property>
		<name>mapred.job.tracker</name>
		<value>http://myhadoop-master.Hadoop:9001</value>
	</property>

</configuration>
在yarn-site.xml中增加
<configuration>

	<!-- 指定运行resourcemanager服务的主机名 -->
	<property>
		<name>yarn.resourcemanager.hostname</name>
		<value>myhadoop-master</value>
	</property>

	<!--表示MR applicatons所使用的shuffle工具类-->
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
	
    <property>
        <name>yarn.resourcemanager.address</name>
        <value>myhadoop-master:8032</value>
    </property>
    <property>
        <name>yarn.resourcemanager.scheduler.address</name>
        <value>myhadoop-master:8030</value>
    </property>
    <property>
        <name>yarn.resourcemanager.resource-tracker.address</name>
        <value>myhadoop-master:8031</value>
    </property>
    <property>
        <name>yarn.resourcemanager.admin.address</name>
        <value>myhadoop-master:8033</value>
    </property>
    <property>
        <name>yarn.resourcemanager.webapp.address</name>
        <value>myhadoop-master:8088</value>
    </property>

</configuration>

然后把配制好的hadoop-2.6.0文件包,复制到其他节点

#scp -r /home/tools/hadoop-2.6.0 root:myhadoop-slave-1 /home/tools

#scp -r /home/tools/hadoop-2.6.0 root:myhadoop-slave-2 /home/tools

八:配置Hadoop环境变量(在每个节点上操作)

在 /etc/profile 文件中添加

export HADOOP_HOME=/home/tools/hadoop-2.6.0

export PATH=${HADOOP_HOME}/BIN:${HADOOP_HOME}/sbin:${PATH}

使配置文件立即生效

#source /etc/profile

测试 

#hadoop version

九:启动Hadoop

格式化namenode:hdfs namenode -format

启动dfs: start-dfs.sh

启动yarn:start-yarn.sh

启动完成后在my-hadoop上输入:

#jps

2347 NameNode

2580 ResourceManager

2835 Jps

在其他节点上输入:

#jps

2166 DataNode

2266 NodeManager

2395 Jps

十:在web端查看

查看hdfs服务:http://myhadoop-master:50070/

查看yarn服务:http://myhadoop-master:8088/



鄙人才疏学浅,若有错误之处,还望指点!


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值