概述
本教程适合于在 CentOS 6.x 系统中安装原生 Hadoop 2X,适用于Hadoop 2.6.0, Hadoop 2.7.4 等版本,主要参考了官方安装教程,步骤详细,辅以适当说明,相信按照步骤来,都能顺利在 CentOS 中安装并运行 Hadoop。—大肥肥出品
环境准备
在装好了centos以后还有一些环境需要准备一下,下面一一列举
创建hadoop用户
- su 输入密码
- useradd hadoop
- passwd hadoop 输入hadoop用户的密码
可为 hadoop 用户增加管理员权限,方便部署,避免一些对新手来说比较棘手的权限问题,执行: - visudo
- Esc键 :wq!保存
安装SSH 配置SSH本地免密登陆
安装SHH教程这里不讲,可以另行搜索
ssh免密登陆
- su hadoop 切换到 hadoop用户下面
- 控制台输入host,查看hostname 我的是localhost
- ssh localhost 看看是否需要输入密码,如果需要证明ssh免密登陆没有配置,下面是配置步骤
- cd ~/.ssh/ ~代表hadoop用户的目录 即 /home/hadoop/
- ssh-keygen -t rsa 会有提示,下面按回车Enter键就可以
- cat id_rsa.pub >> authorized_keys 加入授权
- chmod 600 ./authorized_keys 修改授权的权限
- ssh localhost 是不是发现已经不用输入密码就可以登陆了啊,如下图所示
jdk环境安装
- 由于hadoop是一个纯java编写的工具,所以需要安装jdk环境,
- 安装步骤我就不详细说明了,最好安装一个jdk1.8,安装时候切换到root用户下面,或者直接用sudo命令
- 安装完配置一下root用户的环境变量
- vi /etc/profile
- export JAVA_HOME=jdk安装路径 export PATH= JAVAHOME/bin: JAVA_HOME/jre/bin: PATH: HOME/bin
- source /etc/profile
- 配置完上面的后,切换到hadoop用户,vim ~/.bashrc,上面的输入以下,然后 source ~/.bashrc
环境准备完了,然后java -version 测试是否成功
# 安装hadoop2.7.4
## 下载
– 切换到root用户 - Hadoop 2 可以通过 http://mirror.bit.edu.cn/apache/hadoop/common/ 或者 http://mirrors.cnnic.cn/apache/hadoop/common/ 下载,本教程选择的是 2.7.4 版本,下载时请下载 hadoop-2.x.y.tar.gz 这个格式的文件,这是编译好的,另一个包含 src 的则是 Hadoop 源代码,需要进行编译才可使用。最好选择里面最新的一个稳定版本
解压
- 切换回hadoop用户
- 进行解压 sudo tar -zxf ~/下载/hadoop-2.6.0.tar.gz -C /usr/local 解压到/usr/local/目录下面
- cd /usr/local/ sudo mv ./hadoop-2.7.4/ ./hadoop 修改解压目录hadoop-2.7.4为hadoop
测试
- cd /usr/local/hadoop
- ./bin/hadoop version 查看解压是否成功
- 注意:默认大家明白相对路径与绝对路径
hadoop伪分布式配置
hadoop本身默认是单机配置,到上面我们已经把单机版本安装完毕了,里面的一些示例程序已经可以运行了,下面给大家讲一下hadoop的伪分布式配置
hadoop环境变量配置
- 切换到hadoop用户下面
- 在设置 Hadoop 伪分布式配置前,我们还需要设置 HADOOP 环境变量,执行如下命令在 ~/.bashrc 中设置:vi ~/.bashrc
export HADOOP_HOME=/usr/local/hadoop
export HIVE_HOME=/usr/local/hive
export HADOOP_INSTALL=$HADOOP_HOME
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export YARN_HOME=$HADOOP_HOME
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib
export HADOOP_OPTS="$HADOOP_OPTS -Djava.library.path=$HADOOP_HOME/lib"
export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin:$JAVA_HOME/bin:$HIVE_HOME/bin- 注意,倒数第二行不要忘记了啊,那个很多文档里面都没有,但是没有会报错的,一个加载library失败的错误
- source ~/.bashrc
## hadoop配置文件修改
hadoop的配置文件在hadoop安装目录的etc/hadoop/里面
这里主要配置四个文件
-core.site.xml hdfs.site.xml mapred-site.xml yarn-site.xml
-这四个文件如果没有就执行下面的命令
cp 缺少的文件名.template 缺少的文件名 例如 cp mapred-site.xml.template mapred-site.xml - core.site.xml修改
<configuration>
<property>
<name>hadoop.tmp.dir</name>
<value>file:/usr/local/hadoop/tmp(临时目录)</value>
<description>Abase for other temporary directories.</description>
</property>
<property> v <name>fs.defaultFS</name> <value>hdfs://此处是你的虚拟机的地址或者你的服务器的地址(最好不要直接填写localhost,会导致远程无法访问):9000</value> </property>
</configuration>
- hdfs.site.xml修改
<configuration>
<property>
<name>dfs.replication</name>
<value>1(如果是伪分布式,最好写1,不然会一直受到报警)</value>
</property>
<property> <name>dfs.namenode.name.dir</name> <value>file:/usr/local/hadoop/tmp/dfs/name(namenode目录)</value> </property> <property> <name>dfs.datanode.data.dir</name> <value>file:/usr/local/hadoop/tmp/dfs/data(datanode目录)</value> </property>
</configuration>
- mapred-site.xml修改
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
- yarn-site.xml 修改
<configuration>
<!-- Site specific YARN configuration properties -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>192.168.70.244:8099(yarn监控地址)</value>
</property>
</configuration>
至此配置完毕,下面启动测试
伪分布式测试
格式化namenode
- ./bin/hdfs namenode -format
- 成功的话,会看到 “successfully formatted” 和 “Exitting with status 0” 的提示,若为 “Exitting with status 1” 则是出错。
启动
- ./sbin/start-all.sh
- jps 查看是否启动成功
jps是jdk里面的命令
4096 ResourceManager
14643 Jps
3640 NameNode
8349 RunJar
3742 DataNode
3886 SecondaryNameNode
启动成功为看到上面的几个进程,前面是进程号 - 启动时可能会出现如下 WARN 提示:WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform… using builtin-java classes where applicable。该 WARN 提示可以忽略,并不会影响正常使用(该 WARN 可以通过编译 Hadoop 源码解决)。
成功启动后,可以访问 Web 界面 http://你的服务器地址:50070 查看 NameNode 和 Datanode 信息,还可以在线查看 HDFS 中的文件。记得关闭防火墙
哈哈哈哈:
- 参考链接:http://www.powerxing.com/install-hadoop-in-centos/
- 有什么不懂得留言评论哦
- 附赠彩蛋:https://chu888chu888.gitbooks.io/hadoopstudy/content/