一 、新建用户和用户组
注明:(这个步骤事实上能够不用的。只是单独使用一个不同的用户好一些)
1.新建用户组
sudo addgroup hadoop
2.新建用户
sudo adduser -ingroup hadoop hadoop
3.加入hadoop用户权限
sudo gedit /etc/sudoers
打开sudoer文件后加入hadoop用户
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvemhvdXpob3VqaWFucXVhbg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">
# User privilege specification
root ALL=(ALL:ALL) ALL
hadoop ALL=(ALL:ALL) ALL
4.使用hadoop用户登录
二、安装ssh
sudo apt-get install openssh-server
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvemhvdXpob3VqaWFucXVhbg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">
安装完毕后。启动服务
sudo /etc/init.d/ssh start
查看服务是否正确启动:ps -e | grep ssh
集群、单节点模式都须要用到SSH无password登陆,首先设置SSH无password登陆本机。
输入命令
ssh localhost
首次登录须要输入yes
设置免password登录,生成私钥和公钥
ssh-keygen -t rsa -P ""
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvemhvdXpob3VqaWFucXVhbg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">
以下我们将公钥追加到authorized_keys中,它用户保存全部同意以当前用户身份登录到sshclient用户的公钥内容。
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
然后使用ssh localhsot就能够无password登录了。
使用exit退出登录
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvemhvdXpob3VqaWFucXVhbg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">
三、安装Java环境
曾经的教程都是建议安装Oracle的JDK,不建议使用OpenJDK。只是按http://wiki.apache.org/hadoop/HadoopJavaVersions中说的。新版本号在OpenJDK 1.7下是没问题的。通过命令安装OpenJDK 7。
坑
sudoapt-getinstall openjdk-7-jreopenjdk-7-jdk
查看安装结果。输入命令:java -version。结果例如以下表示成功安装。
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvemhvdXpob3VqaWFucXVhbg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">
查看安装结果,输入命令:java -version,结果例如以下表示成功安装。
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvemhvdXpob3VqaWFucXVhbg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">
四、 安装Hadoop 2.4.1
2.4.1的下载地址为: http://mirrors.cnnic.cn/apache/hadoop/common/hadoop-2.4.1/hadoop-2.4.1.tar.gz,安装教程主要參考了官方教程http://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-common/SingleCluster.html。
下载后,解压到/usr/local/中。
然后改动目录名为hadoop
赋予用户对该目录的读写权限(这个问题非常是坑,我当时配置的时候被一些方法坑了,不太了解文件权限的东西)
有的建议是这样:
sudo chmod 774 /usr/local/hadoop
可是我用这个命令之后。目录所有被隐藏了。都打不开。最后我是删除了hadoop目录。使用以下这个才解决的。
sudo chown -R hadoop:hadoop /usr/local/hadoop
配置~/.bashrc
配置该文件前须要知道Java的安装路径。用来设置JAVA_HOME环境变量,能够使用以下命令行查看安装路径
update-alternatives - -config java
运行结果例如以下:
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvemhvdXpob3VqaWFucXVhbg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">
配置.bashrc文件
sudo gedit ~/.bashrc
#HADOOP VARIABLES START export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-i386 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
运行以下命。使加入的环境变量生效:
source ~/.bashrc
编辑/usr/local/hadoop/etc/hadoop/hadoop-env.sh
运行以下命令。打开该文件的编辑窗体
sudo gedit /usr/local/hadoop/etc/hadoop/hadoop-env.sh
找到JAVA_HOME变量,改动此变量例如以下
export JAVA_HOME==/usr/lib/jvm/java-7-openjdk-i386
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvemhvdXpob3VqaWFucXVhbg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">
五、測试wordcount
单机模式安装完毕。以下通过运行hadoop自带实例WordCount验证是否成功安装
/usr/local/hadoop路径下创建input目录
sudo mkdir input
拷贝README.txt到input
cp README.txt input
运行WordCount
bin/hadoop jar share/hadoop/mapreduce/sources/hadoop-mapreduce-examples-2.4.0-sources.jar org.apache.hadoop.examples.WordCount input output
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvemhvdXpob3VqaWFucXVhbg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">
执行例如以下
运行 cat output/*。查看字符统计结果
结果例如以下
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvemhvdXpob3VqaWFucXVhbg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">