对于初学者而言,自己搭建一个大数据集群环境是一个必要步骤,也算是开始学习的第一步。即使对于已经工作的小伙伴们,有时不方便使用公司的测试/正式集群环境时,这时候自己搭建的集群也能派上用场 (重点是可以随便玩,玩坏了铲掉重新搭建即可)。
现在分享一个自己搭建Hadoop伪分布式环境的步骤(伪分布式表示使用一台机器模拟n台机器组成的集群,简单方便代价小),按以下步骤我已经装了N遍,所以基本上不会有什么问题。
假设你已经准备好了一台虚拟机 (本文使用VMware),装好了linux系统 (本文使用centOS6.4),准备好了所需软件包:
hadoop-2.5.0-cdh5.3.6.tar.gz:我这里用的是这个版本,CNDS上传资源必须小于220M,本文使用的hadoop包大于这个限制了,没办法上传分享,这个有谁知道怎么搞的可以留言告诉我一下,我上传后也省的大家自己去找这个软件包了。
jdk1.7:网上随便搜一下就有
那么,我们开始吧:
1.设置 hostname --------------------------------------------------------------------------------------------------
执行: vi /etc/sysconfig/network
如下图:
2. 配置 hosts 文件 ----------------------------------------------------------------------------------------------------------
虚拟机linux执行: vi /etc/hosts
如下图,最后一行,前面是ip,后面是主机名
本机windows修改: C:\Windows\System32\drivers\etc\hosts (为了能够在本机直接使用主机名访问虚拟机hadoop集群的HDFS和yarn网页监控页面) ,该hosts文件中同样添加上图最后一行,该步骤不配置也可以,访问的时候在本机用ip地址访问即可;或者直接在虚拟机上访问(主机名/ip都可以)。
3. 安装 jdk ----------------------------------------------------------------------------------------------------------------
网上下载jdk压缩包,解压即可,推荐1.7
4. 关闭 防火墙 和 selinux ----------------------------------------------------------------------------------------------
依次执行:
chkconfig iptables off
service iptables stop
vi /etc/sysconfig/selinux ,然后将 SELINUX = disabled
如下图:
5.安装 hadoop ------------------------------------------------------------------------------------------------------
选择你喜欢的路径,解压hadoop压缩包即可。
然后环境变量设置 JAVA_HOME&HADOOP_HOME,执行:vi /etc/profile
将jdk安装路径和hadoop安装路径(注意一直到bin目录) 配置到该文件最后,如下图红框部分:
6. 修改 hadoop 配置文件 ----------------------------------------------------------------------------------------------
切换到hadoop配置文件目录下:
执行:cd /opt/modules/hadoop-2.5.0-cdh5.3.6/etc/hadoop ( 该路径按自己的安装路径进行调整 )
1. 修改以下3个配置文件:hadoop-env.sh , yarn-env.sh , mapred-env.sh
配置 $JAVA_HOME
如下图:将你的jdk安装目录配置到JAVA_HOME后面,3个配置文件一样的进行配置。
2. 修改 core-site.xml (该配置文件所在路径同上)
按如下配置即可,注意按照你自己之前设置的主机名和hadoop安装目录进行调整
<!-- 配置NameNode所在的主机和端口 -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://hadoop.com.cn01:8020</value>
</property>
<!-- hadoop在运行过程中产生的临时文件放置的目录 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/modules/hadoop-2.5.0/tmp</value>
</property>
如下图:
3. 修改 hdfs-site.xml (该配置文件所在路径同上)
按如下配置即可,注意按照你自己之前设置的主机名进行调整
<!-- 伪分布式的副本数量设置 -->
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property> <name>dfs.namenode.secondary.http-address</name> <value>hadoop.com.cn01:50090</value> </property> <property> <name>dfs.namenode.http-address</name> <value>hadoop.com.cn01:50070</value> </property> <property> <name>dfs.permissions.enabled</name> <value>false</value> </property>
4. 修改 mapred-site.xml (该配置文件所在路径同上)
按如下配置即可:
<!-- 告诉hadoop,MR运行在yarn上 -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
5. 修改 yarn-site.xml (该配置文件所在路径同上)
按如下配置即可,注意按照你自己之前设置的主机名进行调整
<!-- NodeManager获取数据的方式是shuffle -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<!-- 指定YARN的管理者resourcemanager在哪里 -->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>hadoop.com.cn01</value>
</property>
<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>
<property>
<name>yarn.log-aggregation.retain-seconds</name>
<value>86400</value>
</property>
6. 修改 slaves (该配置文件所在路径同上)
添加:hadoop.com.cn01 ( 即你自己之前设置的主机名)
7. 配置 historyserver
将 mapred-site.xml.template 复制为 mapred-site.xml
按如下配置即可,注意按照你自己之前设置的主机名进行调整
<property>
<name>mapreduce.jobhistory.address</name>
<!--配置实际的主机名和端口-->
<value>hadoop.com.cn01:10020</value>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>hadoop.com.cn01:19888</value>
</property>
7. 格式化 -------------------------------------------------------------------------------------------------------------------------
在 /opt/modules/hadoop-2.5.0/(Hadoop安装目录) 目录下mkdir 创建tmp文件夹
cd /opt/modules/hadoop-2.5.0/bin 目录下
执行 ./hdfs namenode -format(如果第一次执行不成功,第二次执行时一定要把之前创建的 tmp下的东西全删掉再操作 )
8. 启动 ------------------------------------------------------------------------------------------------------------------
cd /opt/modules/hadoop-2.5.0/sbin 目录下,依次执行
./hadoop-daemon.sh start namenode (启动 namenode)
./hadoop-daemon.sh start datanode (启动 datanode)
./hadoop-daemon.sh start secondarynamenode (启动 secondarynamenode)
./yarn-daemon.sh start resourcemanager (启动 resourcemanager)
./yarn-daemon.sh start nodemanager (启动 nodemanager)
./mr-jobhistory-daemon.sh start historyserver (开启 historyserver)
如果嫌上述步骤麻烦,也可以只执行如下两条命令:
./start-dfs.sh
./start-yarn.sh
如何关闭集群: 将上述 start 改成 stop 即可,或者直接重启虚拟机 。。。。
9. 查看是否成功启动集群:---------------------------------------------------------------------------------------------------------
打开网页访问:(如果在本机配置了虚拟机的主机名,直接在本机打开网页访问即可;否则只能在虚拟机上访问了)
hadoop.com.cn01:50070 -- 查看HDFS,按照你自己之前设置的主机名进行调整
hadoop.com.cn01:8088 -- 查看YARN,按照你自己之前设置的主机名进行调整
当然也可以运行一下hadoop自带的一个wordcount,来查看是否启动成功,操作如下:
将数据文件上传HDFS:
执行wordcouont命令,传入两个参数,1.数据文件所在的HDFS目录 2.wordcount结果文件所在的HDFS目录:
结果如下:
如有问题请留言,尽量抽时间回复。