网络上关于如何单机模式安装Hadoop的文章很多,按照其步骤走下来多数都失败,按照其操作弯路走过了不少但终究还是把问题都解决了,所以顺便自己详细记录下完整的安装过程。
此篇主要介绍在Ubuntu安装完毕后,如何进行Hadoop的安装和配置。
我所记录的笔记适合没有Linux基础的朋友跟我一起操作,同时欢迎高手参观指导。
环境约定
以下环境基于攥写时间:5th July 2015。
宿主机器:Windows 8
虚拟机环境:WMware Wrokstation 11
Ubuntu版本:Ubuntu Desktop 14.04.2
物理环境:
笔记本Thinkpad T420 i5 CPU 4+4=8G内存, 500G硬盘。
其它:
JavaJDK版本:7
Hadoop版本:2.7.0
首先,登录Ubuntu,进入到命令模式,可以通过两个方法,就是点击左上角的Search按钮,输入Ter然后在下面的结果界面就可以找到控制台Terminal。
另外一个方法就是通过快捷键Ctrl+Alt+T。
首先打开虚拟机的网络连接。Ubuntu的配置过程中包括更新和软件的安装都要以来于互联网环境。
回到控制台,输入如下命令开始更新系统(需联网)。sudo是经常会用到的,提示系统以最高权限运行,有些类似windows下的UAC。
sudo apt-get update
系统会提示输入密码,然后开始下载和安装更新。
完成更新后,接下来在系统中首先创建名称为hadoop的用户名和组。
首先创建组:
sudo addgroup Hadoop
然后再创建用户。
sudo adduser -ingroup hadoop Hadoop
输入这个命令后系统会提示输入密码,然后关于Full Name等信息一路回车就可以。
最后输入如下命令,使新建立的hadoop账户拥有最高的权限。
sudo gedit /etc/sudoers
系统会弹出Ubuntu Desktop的Gedit工具,这是一个可视化的文本编辑工具,跟windows下的记事本一样。在Ubuntu Server下没有图形化界面,可以通过vim完成类似的编辑和配置工作。
在打开的配置文件中,在root下面加入下面一行。
hadoop ALL=(ALL:ALL) ALL
需要留意的是,如果手动敲入这行内容,hadoop后面跟的是/t,也就是键盘的Tab。如果这里输入不对的话会导致Ubuntu系统出现很大的问题。
编辑完成后点击Gedit上面的Save按钮然后关闭这个工具(Ubuntu Desktop下关闭和最大化等按钮是在每个窗体的左上方),回到控制台。
接下来配置ssh服务,使系统可以远程登录。
输入如下命令安装ssh。
sudo apt-get install openssh-server
然后通过如下命令开启ssh服务。
sudo /etc/init.d/ssh start
最后通过如下命令,查看ssh服务是否启动。
ps -e | grep ss
如图看到sshd的话说明ssh启动成功。
接下来配置ssh的免密码登录,确保其它节点可以不需要密码就可以登录到系统。(目前不太确定单击模式中这一步是否必要,但为了后续搭建多节点环境所以先跟着配置。)
首先输入如下命令生成公匙和私匙。
ssh-keygen -t rsa -P ""
然后通过如下命令把公匙的内容加入到authorized_keys中。
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
至此ssh的配置完成。
接下来安装java的jdk,输入如下命令开始安装。安装过程会略微长一些。
sudo apt-get install openjdk-7-jdk
安装完毕后,可以通过如下命令确定Java的版本。
java –version
接下来下载Hadoop。
打开Ubuntu Desktop的Firefox,输入以下网址:
http://hadoop.apache.org
找到页面的Get started,点击Download。
在下载页中,找到2.7.0版本的二进制下载链接。
然后系统会导航到另外一个下载页面,从众多地址中选择一个就可以了。
点击一个链接之后开始下载。
点击Save File之后,下载文件会默认存放在本地Ubuntu的Home/Wade/Downloads下,请留意Wade是我建立的用户名。
回到控制台,敲入cd命令,会回到/home/wade目录。所以直接敲入Downloads就可以进入到下载目录。
进入到Downloads目录后,输入如下指令将hadoop文件解压出来。
sudo tar xzf hadoop-2.7.0.tar.gz
然后使用下面的命令将解压后的目录移动到/usr/local/hadoop目录。
sudo mv hadoop-2.7.0 /usr/local/hadoop
接下来给前面建立的hadoop用户赋予相关的权限,否则hadoop用户无法配置这个目录下面的文件。
sudo chown -R hadoop:hadoop /usr/local/hadoop
接下来配置java home,首先通过如下命令确定java的安装位置。
update-alternatives - -config java
其中/usr/lib/jvm/java-7-openjdk-amd64是我们需要的部分。
接下来把这个配置到bashrc中,输入如下命令。
sudo gedit ~/.bashrc
系统会打开Gedit,然后把如下内容附加到文件的末尾。bashrc配置文件很重要,如果有差错会导致系统很大的问题。如果你的版本和前面的操作跟我的都一样的话,那么下面的配置内容是不需要更改的。
#HADOOP VARIABLES START
export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64
export HADOOP_INSTALL=/usr/local/hadoop
export PATH=$PATH:$HADOOP_INSTALL/bin
export PATH=$PATH:$HADOOP_INSTALL/sbin
export HADOOP_MAPRED_HOME=$HADOOP_INSTALL
export HADOOP_COMMON_HOME=$HADOOP_INSTALL
export HADOOP_HDFS_HOME=$HADOOP_INSTALL
export YARN_HOME=$HADOOP_INSTALL
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_INSTALL/lib/native
export HADOOP_OPTS="-Djava.library.path=$HADOOP_INSTALL/lib"
#HADOOP VARIABLES END
配置之后的文件。点击Save后关闭。
接下来通过如下命令使配置生效。
source ~/.bashrc
再输入如下命令,配置hadoop的环境文件。
sudo gedit /usr/local/hadoop/etc/hadoop/hadoop-env.sh
找到export JAVA段,配置成如下内容。
export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64
配置后的文件如下图。
接下来通过如下命令让配置生效。
source /usr/local/hadoop/etc/hadoop/hadoop-env.sh
至此hadoop的配置工作完成。
接下来测试一下hadoop的环境,我们将运行一个hadoop自带的程序WordCount。
这个应用我们统计一下在hadoop目录下README.txt文件各个英文单词出现的次数。
首先使用以下命令定位到hadoop目录。
cd /usr/local/Hadoop
在这个目录下创建一个input文件夹。
sudo mkdir input
然后将README.txt文件夹复制到input文件夹下。
sudo cp README.txt input
然后运行如下命令开始统计。
sudo bin/hadoop jar share/hadoop/mapreduce/sources/hadoop-mapreduce-examples-2.7.0-sources.jar org.apache.hadoop.examples.WordCount input output
看到如下输出说明执行成功了。
输入如下命令查看统计结果。(cat命令是显示文本内容的命令,如果编辑文件的话在ubuntu desktop下可以用gedit,server下可以用vim)
cat output/*
至此hadoop单击模式搭建完毕。
参考博客:
http://www.cnblogs.com/maybe2030/p/4591195.html
http://www.cnblogs.com/kinglau/p/3794433.html
注:其中第一个地址的内容有些细节在我这里无法走通,所以我这里根据其要表达的意思做了相关的修正。