</pre><pre>
技术小白一个,有错误之处还请过路大神指点... ☺☺☺
一、三种安装方式介绍
Hadoop的安装方式有三种,分别是单机模式,伪分布式模式,分布式模式。
1.单机模式:Hadoop 默认模式为非分布式模式(本地模式),无需进行其他配置即可运行。非分布式即单Java 进程,方便进行调试。
2.伪分布式模式:Hadoop 可以在单节点上以伪分布式的方式运行,Hadoop进程以分离的 Java进程来运行,节点既作为 NameNode也作为 DataNode,同时,读取的是HDFS 中的文件。(既一台物理机)
3.分布式模式:使用多个节点构成集群环境来运行Hadoop。(既多台物理机)
二.安装环境
Linux发行版本: CentOS 6.3 32位。
Hadoop版本: Hadoop 2.x.y 。在Hadoop 2.6.0 (stable) 版本下验证通过。
Java环境: OpenJDK 1.7
在这里就不介绍CentOS的安装了,具体安装步骤可参考:http://www.imooc.com/learn/175 (Linux达人养成计划1 第2章)
三、创建Hadoop用户
右键-->在终端打开--->打开终端后输入cd ,进入用户家目录(或左上角的 “应用程序” -> “系统工具” -> “终端”)
1.非root用户登录时:
命令:
su # 以 root 用户登录
useradd -m hadoop -s /bin/bash # 创建新用户hadoop
注:若root用户登录时,则不用su命令。
2.修改密码,按提示输入两次密码3.为用户增加管理员权限
命令:
visudo
找到 root ALL=(ALL) ALL
这行,在第98行。
ESC
键切换到底行模式--->输入 :98
--->按回车键,直接跳到第98行。
然后在这行下面增加一行内容:hadoop ALL=(ALL) ALL
(间隔为tab),如下图:
保存并退出:
按ESC
键,输入 :wq
4.切换用户
使用刚创建的 hadoop 用户进行登陆。
四、设置操作系统环境
1.关闭防火墙
在Hadoop安装过程中需要关闭防火墙和SElinux,否则会出现异常.
(注意:若弹出权限不足,可能防火墙已经关闭,请输入命令:chkconfig iptables –list查看防火墙的状态。)
.使用如下命令关闭iptables
sudo chkconfig iptables off
2.关闭SElinux
1)使用getenforce命令查看是否关闭 ;
2)修改/etc/selinux/config 文件 将SELINUX=enforcing改为SELINUX=disabled,执行该命令后重启机器生效.
命令:
sudo vi /etc/selinux/config
3.安装SSH、配置SSH无密码登陆
需连接网络(CentOS 使用 yum 来安装软件,需要联网环境)
1)安装SSH
集群、单节点模式都需要用到 SSH 登陆(类似于远程登陆,你可以登录某台 Linux 主机,并且在上面运行命令),一般情况下,CentOS 默认已安装了 SSH client、SSH server,打开终端执行如下命令进行检验:
<span style="white-space:pre"> </span><strong>rmp -qa | grep ssh</strong>
如果返回的结果如下图所示,包含了 SSH client 跟 SSH server,则不需要再安装。
注:若需要安装,则可以通过 yum 进行安装(安装过程中会让你输入 [y/N],输入 y 即可):
命令:
<strong><span style="white-space:pre"> </span>sudo yum install openssh-clients
<span style="white-space:pre"> </span>sudo yum install openssh-server</strong>
2)测试SSH是否可用
<strong><span style="white-space:pre"> </span>ssh localhost</strong>
如上所示,SSH可用,但是每次都需要填写密码。因此配置成SSH无密码登陆比较方便。
首先输入 exit
退出刚才的 ssh,回到原先的终端窗口,然后利用 ssh-keygen 生成密钥,并将密钥加入到授权中:
<strong>exit # 退出刚才的 ssh localhost
cd ~/.ssh/ # 若没有该目录,请先执行一次ssh localhost
ssh-keygen -t rsa # 会有提示,都按回车就可以
cat id_rsa.pub >> authorized_keys # 加入授权
chmod 600 ./authorized_keys # 修改文件权限</strong>
此时再用 ssh localhost
命令,无需输入密码就可以直接登陆了,如下图所示:
4.JDK安装与配置
1)用yum命令安装JDK。
如下命令:
sudo yum install java-1.7.0-openjdk java-1.7.0-openjdk-devel
可通过执行 rpm -ql java-1.7.0-openjdk-devel | grep '/bin/javac'
命令查看OpenJDK安装的位置,执行后会输出一个路径,除去路径末尾的 “/bin/javac”,剩下的就是正确的路径。
OpenJDK 安装后就可以直接使用 java、javac 等命令了。
进目录内查看OpenJDK的位置:
2)配置环境变量
~/.bashrc 中进行设置
命令:
vim ~/.bashrc
打开文件在最后面一行添加:
export JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk
如下图所示:
如下命令,是环境变量生效:
<strong>source ~/.bashrc # 使变量设置生效</strong>
<strong>
</strong>
检验设置是否生效:
如下命令:
<strong>echo $JAVA_HOME # 检验变量值
java -version
$JAVA_HOME/bin/java -version # 与直接执行 java -version 一样</strong>
<strong>
</strong>
出现如上信息,则java环境配置成功!
********************************************************************************************************************************
下面就可以安装Hadoop了。
五、安装Hadoop2.6.0
Hadoop 2 可以通过 http://mirror.bit.edu.cn/apache/hadoop/common/ 或者 http://mirrors.cnnic.cn/apache/hadoop/common/ 下载。
下载时请下载 hadoop-2.x.y.tar.gz 这个格式的文件,这是编译好的,另一个包含 src 的则是 Hadoop 源代码,需要进行编译才可使用。
下载时强烈建议也下载 hadoop-2.x.y.tar.gz.mds 这个文件,该文件包含了检验值可用于检查 hadoop-2.x.y.tar.gz 的完整性,否则若文件发生了损坏或下载不完整,Hadoop 将无法正常运行。
文件可通过浏览器下载,默认保存在 “下载” 目录中。
1)创建文件安装位置:/home/hadoop/app/hadoop-2.6.0
在/home/hadoop下创建app目录,在app目录下创建hadoop-2.6.0目录,如下所示
2)下载hadoop2文件(用火狐浏览器默认下载到/下载文件夹):
hadoop-2.6.0.tar.gz.mds
hadoop-2.6.0.tar.gz
3)检验文件完整性
若文件不完整则这两个值一般差别很大,可以简单对比下前几个字符跟后几个字符是否相等即可,如下图所示,如果两个值不一样,请务必重新下载。
cat ~/下载/hadoop-2.6.0.tar.gz.mds | grep 'MD5' # 列出md5检验值
md5sum ~/下载/hadoop-2.6.0.tar.gz | tr "a-z" "A-Z" # 计算md5值,并转化为大写,方便比较
4)强文件解压到前面创建的安装路径中
<strong>sudo tar -zxf ~/下载/hadoop-2.6.0.tar.gz -C /usr/local # 解压到/usr/local中
cd /usr/local/
sudo mv ./hadoop-2.6.0/ ./hadoop # 将文件夹名改为hadoop
sudo chown -R hadoop:hadoop ./hadoop # 修改文件权限</strong>
5)检查Hadoop是否可用
cd /usr/local/hadoop
./bin/hadoop version
进入hadoop目录,显示如下版本信息,则hadoop可用
六、Hadoop伪分布式配置
Hadoop 可以在单节点上以伪分布式的方式运行,Hadoop 进程以分离的 Java 进程来运行,节点既作为 NameNode 也作为 DataNode,同时,读取的是 HDFS 中的文件。
1.设置 HADOOP 环境变量
执行如下命令在 ~/.bashrc 中设置环境变量:
<strong>gedit ~/.bashrc</strong>
这次我们选择用 gedit 而不是 vim 来编辑。gedit 是文本编辑器,类似于 Windows 中的记事本,会比较方便。保存后记得关掉整个 gedit 程序,否则会占用终端。在文件最后面增加如下内容:
保存后,不要忘记执行如下命令使配置生效:
<strong>source ~/.bashrc</strong>
2.修改Hadoop的配置文件
Hadoop 的配置文件位于 /home/hadoop/app/hadoop-2.6.0/hadoop/etc/hadoop/
中.
伪分布式需要修改2个配置文件 core-site.xml 和 hdfs-site.xml 。
Hadoop的配置文件是 xml 格式,每个配置以声明 property 的 name 和 value 的方式来实现。
1)修改配置文件 core-site.xml
命令:gedit ./etc/hadoop/core-site.xml
,修改该文件为下:
2)同样的,修改配置文件 hdfs-site.xml:
3..配置完成后,执行 NameNode 的格式化
命令:
./bin/hdfs namenode -format
成功的话,会看到 “successfully formatted” 和 “Exitting with status 0” 的提示,若为 “Exitting with status 1” 则是出错。
4.开启 NaneNode
和 DataNode
守护进
命令:
<strong>./sbin/start-dfs.sh</strong>
若出现提示 “WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform… using builtin-java classes where applicable”,该 WARN 提示可以忽略,不会影响 Hadoop 正常运行(可通过编译 Hadoop 源码解决,解决方法请自行搜索)。
5. jps命令检验各后台进程是否成功启动
启动完成后,可以通过命令 jps
来判断是否成功启动,若成功启动则会列出如下进程: “NameNode”、”DataNode”和SecondaryNameNode
(如果 SecondaryNameNode 没有启动,请运行 sbin/stop-dfs.sh 关闭进程,然后再次尝试启动尝试)。如果没有 NameNode 或 DataNode ,那就是配置不成功,请仔细检查之前步骤,或通过查看启动日志排查原因。
至此,hadoop2成功安装!
注:本文参考自
1.厦门大学数据库实验室教程《Hadoop安装教程_伪分布式配置_CentOS6.4/Hadoop2.6.0》
http://dblab.xmu.edu.cn/blog/install-hadoop-in-centos/
2.IT在线实验楼平台《Hadoop介绍及1.x伪分布式安装》