3.1.3 部署Hadoop伪分布式环境
1.概念
单机模式:在一台单机上运行,没有分布式文件系统,而是直接读写本地操作系统的文件系统。
伪分布式模式:也是在一台单机上运行,但用不同的Java进程模仿分布式运行中的各类结点。
分布式模式:真正的分布式是由3个及以上的物理机或虚拟机组成的集群。
2.Hadoop的下载配置
Hadoop的下载地址为(可选择合适的版本)http://archive.cloudera.com/cdh5/cdh/5/。这里下载并使用hadoop-2.6.0-cdh5.7.0.tar.gz。
在测试机上创建一个目录,下载并解压Hadoop的压缩包。
mkdir opt/hadoop # 下载包 wget http://archive.cloudera.com/cdh5/cdh/5/hadoop-2.6.0-cdh5.7.0. tar.gz # 解压包 tar -xzvf hadoop-2.6.0-cdh5.7.0.tar.gz
配置环境变量,代码如下。
[root@system1 Java]# vi /etc/profile export HADOOP_HOME=/.../hadoop-2.6.0-cdh5.7.0 export PATH=...:$HADOOP_HOME/bin:$HADOOP_HOME/sbin [root@system1 Java]# source /etc/profile #配置生效
3.修改伪分布式文件
主要集中在core-site.xml、hdfs-site.xml、mapred-site.xml和yarn-site.xml,代码如下。
[root@hadoop1 etc]# ll total 16 drwxr-xr-x 2110640014096 ... hadoop drwxr-xr-x 2110640014096 ... hadoop-mapreduce1 drwxr-xr-x 2110640014096 ... hadoop-mapreduce1-pseudo drwxr-xr-x 2110640014096 ... hadoop-mapreduce1-secure
针对core-site.xml文件的修改(注意hadoop1),代码如下。
<configuration> <property> <name>fs.default.name</name> <value>hdfs://hadoop1:9000/</value> </property> <property> <name>hadoop.tmp.dir</name> <value>file:/usr/local/hadoop/tmp</value> </property> </configuration>
针对hdfs-site.xml文件的修改,代码如下。
<configuration> <property> <name>dfs.replication</name> <value>1</value> </property> <property> <name>dfs.namenode.name.dir</name> <value>file:/usr/local/hadoop/tmp/dfs/name</value> </property> <property> <name>dfs.datanode.data.dir</name> <value>file:/usr/local/hadoop/tmp/dfs/data</value> </property> </configuration>
其中dfs.replication代表文件副本数量,默认为3,这里设置为1。针对mapred-site.xml文件的修改,代码如下。
<configuration> <property> <name>mapred.job.tracker</name> <value>hadoop1:8021</value> </property> </configuration>
针对yarn-site.xml文件的修改,代码如下。
<configuration> <property> <name>yarn.resourcemanager.address</name> <value>hadoop1:8032</value> </property> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce.shuffle</value> </property> </configuration>
以上配置完成后,执行NameNode的格式化,代码如下。
[root@system1 hadoop]# hadoop namenode -format
出现“successfully formatted”和“Exitting with status 0”的提示代表配置成功,否则代表配置失败。记住在修改hadoop-env.xml文件时,配置JAVA_HOME变量的路径值。
4.启动Hadop环境
[root@system1 hadoop]# start-all.sh
启动完成后,可以通过命令jps来判断是否成功启动。应该成功启动NameNode、DataNode和SecondaryNameNode、JobTracker、TaskTracker这5个新的Java进程。如果最后一个进程没有启动,请重启服务试试;如果没有NameNode或DataNode,那就是配置不成功,需要根据具体情况来排查原因。
上述内容就是Hadoop伪分布式的整体部署过程,介绍它的主要目的是培养大家的动手实践能力,让大家对大数据生态圈有初步的了解,以及为学习Hive与HBase打下基础。如果条件允许,可以申请阿里云服务器,构建一套分布式集群。这样就可以做很多数据产品实践项目,弥补项目经验匮乏的缺点。