因为平时用的是Windows系统,为学习Hadoop,安装了虚拟机。
对于刚接触Linux系统的人来说,最好安装带有图形界面的Ubuntu16.04。在安装Hadoop的过程中,不要心急,一步一步来。
本教程使用的是VMware Workstation12搭建的虚拟机,操作系统为Ubuntu16.04 64,Hadoop版本为2.6.0。Hadoop下载链接为:https://archive.apache.org/dist/hadoop/common/。
本教程也适合其他Hadoop 2.x.y版本,如 Hadoop 2.8.0、2.7.3、2.4.1等。
在安装虚拟机的过程中,最好直接将虚拟机的用户名命名为hadoop。如果没有命名的话,可根据本教程第2小节,添加hadoop账户。
1 虚拟机相关设置
如果经常用Hadoop的话,最好在安装好虚拟机之后,安装相关工具,方便编程开发。
安装虚拟机的教程,可参考链接:http://www.jb51.net/os/248849.html。
在安装虚拟机的时候,选择NAT模式,这样的话,只要自己的电脑能联网,虚拟机就能够联网。
1.1 更改ubuntu软件源
本设置主要是为了方便访问国内服务器,因为访问国外服务器的速度比较慢。
系统设置→软件和更新,选择国内服务器,比如阿里云。
1.2 更新软件源,安装vim、openssh-server
在虚拟机上,右键,打开终端(快捷键Ctrl+Alt+T)。在弹出的窗口中,输入以下命令:
sudo apt-get update
sudo apt-get install vim
sudo apt-get install openssh-server
安装openssh-server的原因:
- 为了方便将Windows系统里的文件直接复制到Linux系统中。
- 在安装Hadoop的过程中,免密码登录。
强烈推荐在Win系统上安装WinSCP软件,这样的话,一旦知道虚拟机Linux的ip地址,就可以将Win系统上的文件复制到虚拟机上。
在虚拟机上输入ifconfig,就可以得到虚拟机的ip地址,我的ip地址是192.168.182.128。
打开Win上安装的WinSCP,新建站点。输入相关的数据即可连接上虚拟机Linux,前提是要在虚拟机上安装好openssh-server。
点击“保存”之后,再点击“登录”,在弹出的窗口,点击“是”即可。
直接拖拽Win7系统上的文件,就可以将文件复制到Linux系统中了。
1.3 安装VMware Tools(方便全屏操作)
由于直接在VM窗口中,点击“虚拟机”→“安装VMware Tools”,有时候能安装上,有时候安装不上,所以我采用了另一种方法。
1.由于在虚拟机上直接安装VMware Tools,大部分情况下安装不上,所以我用了WinSCP软件(强烈推荐),将VMware的安装目录下的linux.iso直接上传到虚拟机上。(如果可以直接安装,按照3操作即可)
2.右键linux.iso,使用存档安装器打开,就可以看到linux.iso盘符了。
3.打开linux.iso盘符,可以看到VMwareTools了。
4.右键VMwareTools,复制到桌面。(可以复制到其他地方,看你自己的习惯)
5.打开桌面,在空白处右键,在终端打开。
6.输入解压缩命令,sudo tar zxvf VMwareTools-10.1.6-5214329.tar.gz,然后按照提示,输入密码,即可解压,最终解压完成,看到多了一个vmware-tools-distrib文件夹。
7.切换到vmware-tools-distrib,然后sudo vmware-install.pl,会出现提示,直接输入yes,然后一直按回车键,稍等差不多30秒,就可安装成功了。
8.重启虚拟机,查看→自动调整大小→自动适应客户机,就可以看到全屏了。
2 创建hadoop用户
如果你安装Ubuntu的时候不是用的"hadoop"用户,那么需要增加一个名为 hadoop的用户。
首先按ctrl+alt+t打开终端窗口,输入如下命令创建新用户:
sudo useradd -m hadoop -s /bin/bash
这条命令创建了可以登陆的hadoop用户,并使用/bin/bash作为shell。接着使用如下命令设置密码,可简单设置为hadoop,按提示输入两次密码:
sudo passwd hadoop
可为hadoop用户增加管理员权限,方便部署,避免一些对新手来说比较棘手的权限问题:
sudo adduser hadoop sudo
最后注销当前用户,返回登陆界面。在登陆界面中选择刚创建的hadoop用户进行登陆。
用hadoop用户登录后,我们先更新一下apt,后续我们使用apt安装软件,如果没更新可能有一些软件安装不了。按ctrl+alt+t打开终端窗口,执行如下命令:
sudo apt-get update
3 安装、配置oracle-java
3.1 安装oracle-java
Hadoop官方推荐安装Oracle公司的jdk,下载链接为:http://www.oracle.com/technetwork/java/javase/downloads/index.html。
注意:上述链接的jdk会更新,我打开的时候显示的是jdk 8u144。如果你打开的时候,发现版本不是jdk 8u144,不用担心,直接下载最新版的jdk即可,后续安装步骤不变。
点击Accept License Agreement之后,下载jdk-8u144-linux-x64.tar.gz。
使用WinSCP将下载好的jdk-8u144-linux-x64.tar.gz拖拽到虚拟机上。
打开虚拟机对应的文件位置,快捷键Ctrl+Alt+T,打开终端,输入解压命令:
sudo tar zxvf jdk-8u144-linux-x64.tar.gz
可使用tab键进行快速提示补全,比如上述解压命令,输到jdk的时候,按tab键,就会自动变成jdk-8u144-linux-x64.tar.gz。
解压之后,更改jdk1.8.0_144文件夹权限(hadoop为用户名):
sudo chown -R hadoop jdk1.8.0_144
将jdk1.8.0_144文件夹移动到/usr/local目录下(此步骤的目录自己可以随意指定,符合自己的习惯即可):
sudo mv jdk1.8.0_144/ /usr/local
切换到/usr/local目录下,确实可以发现已存在了jdk1.8.0_144文件夹。
3.2 配置java环境
1.编辑profile
sudo vim /etc/profile
根据提示,输入密码即可。
2.在弹出的窗口中,按字母键i,即可进入插入编辑状态。
输入以下内容:
export JAVA_HOME=/usr/local/jdk1.8.0_144
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
3.输入完成后,按esc键,然后输入:wq退出编辑状态。
4.使配置的环境生效:
source /etc/profile
输入java -version
,即可看见java的版本了。
注意:如果profile无法保存,可使用root权限。输入sudo su,然后输入登录密码,则进入root权限,然后再按照1-3重新操作,完成后,输入exit,退出root权限即可。
4 安装Hadoop2.6单机版
1.使用WinSCP上传Hadoop。
我用的是hadoop2.6.0版本,上传到home目录。
2.打开虚拟机的home主文件目录,右键空白处,点击在终端打开。
3.解压hadoop-2.6.0.tar.gz。
sudo tar zxvf hadoop-2.6.0.tar.gz
然后输入登录密码,再按回车键即可。也可直接解压缩到/usr/local(看个人习惯)。
sudo tar zxvf hadoop-2.6.0.tar.gz -C /usr/local
4.解压完成,将hadoop-2.6.0文件夹移动到/usr/local/hadoop目录下(相当于把hadoop-2.6.0重命名为hadoop)。
sudo mv /usr/local/hadoop-2.6.0 /usr/local/hadoop
5.修改hadoop文件夹权限。
sudo chown -R hadoop /usr/local/hadoop
6.编辑profile。
sudo vim /etc/profile
插入以下内容:
export HADOOP_HOME=/usr/local/hadoop
export PATH=$HADOOP_HOME/bin:$PATH
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
7.保存后退出,使profile配置生效。
输入source /etc/profile,再切换到/usr/local/hadoop目录下。输入./bin/hadoop version,显示输出的hadoop版本为Hadoop 2.6.0。
source /etc/profile
cd /usr/local/hadoop
./bin/hadoop version
5 设置ssh无密码登录
由于安装单机,可以不配置ssh无密码登录,但是安装伪分布式和完全分布式都要使用ssh无密码登录,所以在此处安装ssh,演示一下。
集群、单节点模式都需要用到SSH登陆(类似于远程登陆,你可以登录某台Linux主机,并且在上面运行命令),Ubuntu默认已安装了SSH client,此外还需要安装SSH server。
1.安装openssh-server
sudo apt-get install openssh-server
2.输入ssh localhost
,此时会有如下提示(SSH首次登陆提示),输入yes。然后按提示输入密码,这样就登陆到本机了。退出刚才的ssh,就回到了原先的窗口。
3.切换到ssh目录下,生成秘钥,加入到授权。
cd ~/.ssh/
ssh-keygen -t rsa
cat ./id_rsa.pub >> ./authorized_keys
“~”代表的是用户所在目录,比如我当前的登录用户为hadoop,则“~”指的就是/home/hadoop。
然后直接输入ssh localhost
,就可使用无密码登录到本机了。
6 运行单机hadoop实例
1.切换到/usr/local/hadoop
2.生成input文件夹,mkdir ./input
3.将/usr/local/hadoop/etc/hadoop/*.xml的配置文件复制到刚创建的input文件夹下。
4.运行./bin/hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-*.jar grep ./input ./output 'dfs[a-z.]+'
cd /usr/local/hadoop
mkdir ./input
cp /usr/local/hadoop/etc/hadoop/*.xml ./input
./bin/hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-*.jar grep ./input ./output 'dfs[a-z.]+'
5.打印输出结果cat ./output/*,输出结果为1 dfsadmin。
6.运行结束后,删除创建的input、output文件。
如果您发现文中有不清楚或者有问题的地方,请在下方评论区留言,我会根据您的评论,更新文中相关内容,谢谢!