任务3 安装Hadoop平台
关键步骤如下。
虚拟机安装。
CentOS安装。
Hadoop伪分布式环境搭建。
1.3.1 安装虚拟机
1.虚拟机概述
虚拟机软件使你可以在一台机器上同时运行两个或更多个Windows、Linux系统。它可以模拟一个标准的PC环境,这个环境和真实的计算机一样,也有芯片组、CPU、内存、显卡、声卡、网卡、软驱、硬盘、光驱、串口、并口、USB控制器等。
常用的虚拟机软件:
(1)VMware Workstation(本书采用该软件,版本可以任意选择,区别不大)。
(2)Virtual Box。
2.VMware安装
(1)点击安装文件后启动界面,欢迎界面如图1.2所示。
图1.2 安装VMware——欢迎界面
(2)点击“下一步”按钮,界面如图1.3所示。
图1.3 安装VMware——接受安装许可
(3)选择“我接受许可协议中的条款”后点击“下一步”按钮,点击“自定义”按钮,如图1.4所示。
图1.4 安装VMware——自定义安装
(4)更改安装位置和选择安装功能后如图1.5所示。
图1.5 安装VMware——选择安装目录
(5)点击“下一步”按钮后如图1.6所示。
(6)勾选“桌面”和“开始菜单程序文件夹”复选框后点击“下一步”按钮,如图1.7所示。
(7)点击“继续”按钮,界面如图1.8所示。
(8)“安装向导完成”界面如图1.9所示。
图1.6 安装VMware——安装组件
图1.7 安装VMware——选择创建快捷方式
图1.8 安装VMware——继续安装
图1.9 安装VMware——安装完成
1.3.2 安装Linux系统
1.Linux概述
Linux是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的免费使用和自由传播的类UNIX操作系统。它能运行主要的UNIX工具软件、应用程序和网络协议,它支持32位和64位硬件。Linux继承了UNIX以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。
Linux操作系统诞生于1991年10月5日(这是其第一次正式对外公布的时间)。Linux可安装在手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机等各种设备中。
严格来讲,Linux这个词本身只表示Linux内核,但实际上人们已经习惯了用Linux来形容整个基于Linux内核并且使用GNU 工程各种工具和数据库的操作系统。
Linux是一种自由和开放源码的系统,并有GPL授权,全世界的任何人都可以对其源代码进行修改然后发布使用,所以存在着许多不同的Linux版本,但它们都使用了Linux内核。所以Linux存在很多的变种以及版本。
(1)Ubuntu:2004年9月发布,最为流行的桌面Linux发行版;个人应用比较多,社区力量很庞大。
(2)Red Hat:使用最广,性能稳定;商业版。
(3)CentOS:2003年底推出,RHEL的重新编译版,免费;服务器发行版;本书将采用该版本。
为什么选择CentOS?
(1)主流:目前的Linux操作系统主要应用于生产环境,主流企业级Linux系统仍旧是Red Hat或者CentOS。
(2)免费:Red Hat和CentOS差别不大。CentOS是一个基于Red Hat Linux提供的可自由使用源代码的企业级Linux发行版。
(3)更新方便:CentOS独有的yum命令支持在线升级,可以即时更新系统,不像Red Hat那样需要花钱购买支持服务。
2.CentOS安装
(1)首先安装VMware Workstation,安装过程参见VMware安装。
(2)点击【文件】/【新建虚拟机】或直接点击【创建新的虚拟机】图标,如图1.10所示。
图1.10 安装CentOS——新建虚拟机
(3)在图1.11中选择“典型(推荐)”,点击“下一步”按钮。
图1.11 安装CentOS——选择典型方式安装
(4)在图1.12中选择“稍后安装操作系统”。
图1.12 安装CentOS——选择稍后安装操作系统
(5)在图1.13中选择操作系统和版本。
图1.13 安装CentOS——选择Linux以及64位系统
(6)在图1.14中输入虚拟机名称和安装路径。
图1.14 安装CentOS——虚拟机名称和安装路径
(7)在图1.15中设置磁盘大小。
图1.15 安装CentOS——选择磁盘占用空间
(8)在图1.16中自定义硬件。
图1.16 安装CentOS——自定义硬件
(9)在图1.17中选择CentOS安装镜像文件。
图1.17 安装CentOS——选择CentOS的镜像文件
(10)在图1.18中点击“完成”按钮。
图1.18 安装CentOS——完成
(11)在图1.19中启动虚拟机。
图1.19 安装CentOS——启动
(12)在图1.20中选择第一项,安装全新操作系统或升级现有操作系统。
图1.20 安装CentOS——选择安装或者更新系统
(13)在图1.21中按Tab键选择Skip,退出检测。
图1.21 安装CentOS——选择Skip
(14)在图1.22中点击Next按钮。
图1.22 安装CentOS——下一步
(15)在图1.23中选择语言,这里选择的是中文(简体)。
图1.23 安装CentOS——选择语言
(16)在图1.24中选择键盘样式。
图1.24 安装CentOS——选择键盘样式
(17)在图1.25中选择存储设备。
图1.25 安装CentOS——选择存储设备
如果以前安装过虚拟机,会出现图1.26所示的警告,选择“是,忽略所有数据”。
图1.26 安装CentOS——忽略所有数据继续下一步
(18)在图1.27中输入主机名。
图1.27 安装CentOS——输入主机名
(19)在图1.28中配置网络。
图1.28 安装CentOS——配置网络
(20)在图1.29中设置时区,勾选“系统时钟使用UTC时间”。
图1.29 安装CentOS——选择时区
(21)在图1.30中输入根用户(root)的密码。
图1.30 安装CentOS——为root用户输入密码
如果密码过于简单会出现提示,点击“无论如何都使用”,如图1.31所示。
图1.31 安装CentOS——密码过于简单的提示
(22)在图1.32中根据此Linux的具体功能,选择其他软件。
图1.32 安装CentOS——是否安装其他软件
(23)在图1.32中选择“现在自定义”,自定义安装需要的软件,如桌面配置,如图1.33所示。
图1.33 安装CentOS——安装自定义组件
可以根据具体的情况来配置,如图1.34中选择安装Eclipse。
图1.34 安装CentOS——安装Eclipse
还可以如图1.35所示安装Java平台、Perl支持等。
图1.35 安装CentOS——安装Java环境
在图1.36中选择语言支持。
图1.36 安装CentOS——选择语言支持
(24)在图1.37中点击“下一步”按钮,开始安装。
图1.37 安装CentOS——正在安装
(25)安装完成后,在图1.38所示界面点击“重新引导”按钮。
图1.38 安装CentOS——重新引导
(26)点击“前进”按钮,如图1.39所示。
图1.39 安装CentOS——欢迎
(27)在图1.40中点击“是,我同意该许可证协议”,再点击“前进”按钮。
图1.40 安装CentOS——同意许可证协议
(28)创建用户,如图1.41所示。
图1.41 安装CentOS——创建用户
(29)在图1.42中设置日期和时间,如果可以上网,勾选“在网络上同步日期和时间”。
图1.42 安装CentOS——设置日期和时间
(30)最后点击“前进”按钮,完成安装!
1.3.3 安装Hadoop伪分布式环境
Hadoop集群安装
1.Hadoop安装包下载
本书采用的是CDH版本的hadoop-2.6.0-cdh5.7.0,相关的下载地址为:http://archive.cloudera.com/cdh5/cdh/5/;下载完存放在~/software/目录下,相关的软件安装在~/app目录下。
2.Hadoop安装包解压
将下载的Hadoop安装包解压到~/app目录下。
tar -zxvf ~/software/hadoop-2.6.0-cdh5.7.0.tar.gz -C /app
3.Hadoop伪分布式环境搭建
Hadoop启动后,Name Node是通过SSH(Secure Shell)来启动和停止各个Data Node上的进程,所以先在本机上实现SSH免密码登录。
ssh-keygen -t rsa
ssh-copy-id localhost
成功执行上述两条命令后即可免密码登录至本机:
ssh localhost
其中localhost可为主机名或IP地址。
在进行伪分布式环境部署之前,先来了解下伪分布式环境部署和分布式环境部署的区别:
(1)伪分布式:在一台机器上启动Hadoop需要的所有进程进行工作。
(2)分布式:在多台机器上都部署Hadoop,按照集群的规划在不同的机器上启动各自需要的Haodop进程进行相互协调工作。
环境搭建的步骤如下。
(1)将Hadoop安装目录添加到系统环境变量(~/.bash_profile)中。
vi ~/.bash_profile
export JAVA_HOME=/home/hadoop/app/jdk1.7.0_79
export HADOOP_HOME=/home/hadoop/app/hadoop-2.6.0-cdh5.7.0
export PATH=.:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$JAVA_HOME/bin:$PATH
执行“source ~/.bash_profile”命令使得环境变量生效。
(2)配置Hadoop环境的配置文件hadoop-env.sh。
//设置JDK的安装路径
export JAVA_HOME=/home/hadoop/app/jdk1.7.0_79
(3)配置Hadoop核心文件core-site.xml。
//配置Name Node的主机名和端口号
<property>
<name>fs.default FS</name>
<value>hdfs://hadoop000:8020</value>
</property>
(4)配置HDFS文件hdfs-site.xml。
//设置HDFS元数据文件存放路径
<property>
<name>dfs.namenode.name.dir</name>
<value>/home/hadoop/tmp/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/home/hadoop/tmp/dfs/data</value>
</property>
//设置HDFS文件副本数
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
//设置其他用户执行操作时会提醒没有权限的问题
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>
注意
各目录一定要是非/tmp下的目录,否则默认是在/tmp下。如果是在虚拟机环境操作的话,每次重启后都会删除/tmp中的文件;该文件在Hadoop启动的时候会自动创建。
(5)配置Map Reduce文件mapred-site.xml。
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
(6)配置YARN文件yarn-site.xml。
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
(7)从节点配置文件slaves。
hadoop000
4.格式化HDFS系统
hadoop namenode -format
注意
格式化HDFS操作只有第一次才使用,如果对已有的集群再一次执行格式化操作,那么已有集群上的数据会全部丢失。
5.启动HDFS
(1)常用的启动方式有两种。
启动方式一:一次启动所有进程
$HADOOP_HOME/sbin/start-dfs.sh
启动完成后可以通过jps命令检测是否启动成功,如果正常启动会有如下3个进程:
jps
Secondary Name Node
Name Node
Data Node
启动方式二:单独启动每个进程
//启动namenode
hadoop-daemon.sh start namenode
//jps检测会有Name Node进程
//启动datanode
hadoop-daemon.sh start datanode
//jps检测会有Data Node进程
//启动secondarynamenode
hadoop-daemon.sh start secondarynamenode
//jps检测会有Secondary Name Node进程
(2)使用命令操作HDFS文件系统。
详细的HDFS脚本命令会在第2章中详细讲解,本章只做一个简单的应用。
//创建HDFS目录
hadoop fs -mkdir /helloworld
//查看目录是否创建成功
hadoop fs -ls /
(3)HDFS界面浏览器访问:http://hadoop000:50070。
6.启动YARN
(1)常用的启动方式有两种。
启动方式一:一次启动所有进程
$HADOOP_HOME/sbin/start-yarn.sh
启动完成后可以通过jps命令检测是否启动成功,如果正常启动会有如下两个进程。
jps
Node Manager
Resource Manager
启动方式二:单独启动每个进程
//启动resourcemanager
yarn-daemon.sh start resourcemanager
//jps检测会有jps: Resource Manager进程
//启动resourcemanager
yarn-daemon.sh start nodemanager
//jps检测会有jps: Node Manager进程
(2)运行wordcount测试案例。
Hadoop安装包中自带了wordcount的应用程序,jar包所处路径为:$HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.6.0-cdh5.7.0.jar。
//wordcount要测试的数据文件:hello.txt,使用制表符进行分隔
hello world hello
hello welcome world
//将hello.txt文件上传到HDFS文件系统上去
Hadoop fs -put hello.txt /
//提交mapreduce作业到yarn上运行
hadoop jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.6.0-cdh5.7.0.jar wordcount /hello.txt /wc_out/
//查看wordcount统计结果
hadoop fs -text /wc_out/part*
hello 3
welcome 1
world 2
(3)YARN界面浏览器访问:http://hadoop000:8088。