Hadoop是一个能够对大量数据进行分布式处理的软件框架, 以一种可靠、高效、可伸缩的方式进行数据处理。本文首先介绍一种伪分布式模式的安装(虽然各个模块是在各个进程上分开运行的,但是只是运行在一个操作系统上的,并不是真正的分布式),用于初步开发调试,体验Hadoop。
一、虚拟机环境配置
笔者使用的是虚拟机软件是VMWare, 所安装的操作系统是CentOS, 操作系统的光盘映像可以去官网下载(链接-CentOS Project)。光盘映像的安装安装操作提示一步步进行即可,网上也有很多步骤详细的教程,不再赘述。
操作系统安装完毕之后,就可以进行相关配置啦!
首先查看虚拟机的IP地址,在VMWare软件的菜单栏选择 编辑->虚拟网络编辑器 就可以看到。
查看ip地址打开虚拟机后,将ip地址设置为刚刚看到的固定的ip。点击右上角的连接标志,选择有线设置进行配置。
ip地址的第四个字段可以自行设置,保证前面部分跟之前看到的本机ip相同即可,注意不能设置为0,至于网关,一般的网关是网段.1,在vmware中是.2地址。
这些配置好之后,就可以正式的进入Hadoop的配置啦~因为使用虚拟机界面比较麻烦,笔者使用XShell连接虚拟机,通过命令行界面进行操作,这也有利于以后开发项目时操作服务器的熟悉。连接方法和XShell软件笔者放在另一篇博文里~(XShell及Xftp连接虚拟机 - 简书)
二、Hadoop环境配置
首先检查虚拟机的网卡是否为开机启动,查看配置文件。(ens33是之前建立的有线连接的名字,不一定固定)
cat /etc/sysconfig/network-scripts/ifcfg-ens33
如果ONBOOT不是yes, 使用vim编辑修改这一配置文件即可。关于如何使用linux系统常用的命令不是本文的重点,不再赘述。
2.1 配置jdk
我们首先在用户的根目录下创建一个名为soft的文件夹,将jdk的压缩包通过xftp上传到soft文件夹中。在centOS里默认安装了一个JDK,是openJDK(开源版的)。或者使用笔者提供的jdk。
链接:https://pan.baidu.com/s/1pcGcnn-a_YTOZB6FIR88mA 密码:mojt
解压文件
tar -zxvf jdk-8u65-linux-x64.tar.gz
解压完成后,在hadoop用户的根目录有一个jdk1.8.0_65目录
2.2 配置环境变量
使用su命令切换到root用户
使用vim修改/etc/profile文件, 在profile文件最后添加
JAVA_HOME=/home/hadoop/jdk1.8.0_65
export PATH=$PATH:$JAVA_HOME/bin
使用source命令把修改的环境变量生效,jdk配置就完成了。(此时可以在普通用户下操作)
source etc/profile
2.3 配置Hadoop
首先需要将Hadoop压缩包上传到虚拟机上。方便起见,我们仍然上传到之前创建的soft文件夹。这里提供一个Hadoop压缩包的资源,大家也可以在网上自由下载。
链接:https://pan.baidu.com/s/1VcUmWSTuHsIRlnvJYNhOaw 密码:7ymn
上传完成后同样要进行解压,解压完成在hadoop用户的根目录下有一个hadoop-2.6.0目录
tar -zxvf hadoop-2.6.0.tar.gz
接着就需要使用vim修改配置文件hadoop-2.6.0/etc/hadoop/hadoop-env.sh, 注意这里JAVA_HOME的值是jdk在虚拟机上的解压路径,读者可以根据自己虚拟机的情况自行设置
export JAVA_HOME=/home/hadoop/jdk1.8.0_65
然后继续修改配置文件hadoop-2.6.0/etc/hadoop/core-site.xml, 在<property></property>处贴如下代码
<property>
<name>fs.defaultFS</name>
<value>hdfs://hadoop:9000</value>
</property>
保存之后,继续修改hadoop-2.6.0/etc/hadoop/hdfs-site.xml, 在<configuration></configuration>处添加下列代码
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
保存之后,继续修改hadoop-2.6.0/etc/hadoop/mapred-site.xml文件,需要注意的是,此文件在hadoop文件夹中并不存在,文件夹中只有一个名为mapred-site.xml.template的模板文件,我们需要首先使用cp命令将模板文件复制并重命名为我们的目标文件
cp etc/hadoop/mapred-site.xml.template etc/hadoop/mapred-site.xml
复制完成之后,我们在mapred-site.xml中进行修改,在<configuration></configuration>处添加代码
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
保存之后,还需要修改hadoop-2.6.0/etc/hadoop/yarn-site.xml,需要添加的代码如下:
最后修改/etc/hosts文件(root用户操作,在文件中添加一行: ip 主机名称
如:192.168.44.199 hadoop
2.4 格式化HDFS
需要进入hadoop解压目录,执行如下操作:
注意:格式化只能操作一次,如果因为某种原因,集群不能用,需要再次格式化,需要把上一次格式化的信息删除,在/tmp目录里执行 rm –rf*bin/hdfs namenode -format
2.5 启动集群
所有配置进行到这里,Hadoop的基本环境就配置完成了~接着就可以启动集群啦~
sbin/start-all.sh
同样这一命令需要进入到Hadoop的解压目录下才可以使用,需要输入四次当前用户的密码。至于为什么要四次输入当前用户密码以及如何免密启动,可以参考笔者的另一篇博文~(SSH互信 - 简书)
启动后,我们在命令行输入jps来查看当前的java进程。如果之前的配置没有出错,我们会看到有以下输出!除了jps进程本身之外还应有五个进程,这些进程的意义涉及到HDFS的结构,可以参考 Hadoop分布式文件系统:架构和设计
网友评论