如何在centos6.5-64bit上部署hadoop2.4.1分布式环境
这篇文章主要介绍如何在centos6.5-64bit上部署hadoop2.4.1分布式环境,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!
1 任务
在centos6.5-64bit上部署hadoop2.4.1分布式环境。
2 准备虚拟机
我们不是土豪,没那么多机器给我们玩。没关系,我们使用虚拟机来部署。准备6台虚拟机,全部安装linux系统。centos、debian等都可以,但是这里用CentOS进行说明。1个maste节点,3个slave节点,另外加1个client节点用来部署nutch环境,给hdfs喂数据。最后1个monitor节点,后期用作部署监控平台,见下表:
主机名 | IP | 系统 | 角色 | 说明 |
master.hadoop | 192.168.122.100 | CentOS 6.5 64bit | NameNode | 负责总管分布式数据和分解任务执行 |
slave1.hadoop | 192.168.122.101 | CentOS 6.5 64bit | DataNode | 负责分布式数据存储和任务的执行 |
slave2.hadoop | 192.168.122.102 | CentOS 6.5 64bit | DataNode | 负责分布式数据存储和任务的执行 |
slave3.hadoop | 192.168.122.103 | Debian 7.5 64bit | DataNode | 负责分布式数据存储和任务的执行 |
client.hadoop | 192.168.122.200 | CentOS 6.5 64bit | nutch solr 中文分词 | 利用Nutch网络爬虫给hdfs喂数据 |
monitor.hadoop | 192.168.122.201 | Debian 7.5 64bit | Ganglia Nagios | 监控 |
3 安装配置Hadoop
hadoop要求所有节点使用相同的用户、相同的目录结构部署(没有证实)。
不过我的理解:
1.使用相同的用户部署。这点比较好理解,master管理slave的时候需要登录slave节点执行脚本。如果用户不相同,脚本不能识别使用哪个用户登录slave节点。
2.不一定使用相同的路径。因为有环境变量来指向部署的路径,所以不用一定部署到相同的路径。但是如果部署路径不相同的话,管理部署不方便。所以还是尽量相同吧。
3.1 准备工作
3.1.1 配置虚拟机IP地址和主机名
根据上面的表格配置虚拟机ip和hostname,配置好以后在/etc/hosts文件添加以下解析。有条件配置了自己的DNS服务器的话,这步可以改成在DNS服务器中增加以下解析,然后所有节点DNS地址指向自己的DNS服务器IP。只要保证所有节点主机名称解析IP一致就达到目的了。
192.168.122.100 master.hadoop192.168.122.101 slave1.hadoop192.168.122.102 slave2.hadoop192.168.122.103 slave3.hadoop192.168.122.104 client.hadoop192.168.122.105 monitor.hadoop
完成后验证每个节点是否都能够正确解析。
3.1.2 创建用户
所有节点创建hadoop用户,master节点与slave节点之间配置ssh无密码登录。
完成后,在master.hadoop上ssh slave1.hadoop看看能否无密码登录成功。同样的测试master.hadoop到所有节点是否能够无密码登录成功。
3.1.3 安装JDK
下载地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html
这里我们选择下载linux x64版本的tar压缩包。 jdk-7u60-linux-x64.tar.gz
tar -zxvf jdk-7u60-linux-x64.tar.gzmv jdk1.7.0_60/ /usr/lib/
vim /etc/profile 加入JAVA_HOME等环境变量
# JAVAexport JAVA_HOME=/usr/lib/jdk1.7.0_60export JRE_HOME=/usr/lib/jdk1.7.0_60/jre export CLASSPATH=.:$CLASSPATH:$JAVA_HOME/lib:$JRE_HOME/lib export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
source /etc/profile使环境变量生效,查看java版本。能够查看到版本号,说明JAVA环境配置成功了。
[root@master ~]#source /etc/profile[root@master ~]#java -versionjava version "1.7.0_55"OpenJDK Runtime Environment (rhel-2.4.7.1.el6_5-x86_64 u55-b13)OpenJDK 64-Bit Server VM (build 24.51-b03, mixed mode)
所有机器都要安装JDK。所有节点服务器的JDK使用相同的版本。
3.2 安装hadoop
slave节点的配置跟master节点是一样的。所以我们只要部署好master节点,slave节点等master节点配置好以后scp拷贝或者rsync同步到slave节点就可以了。
安装hadoop有两种方式,一种是下载hadoop二进制编译包。配置好环境变量。配置好hadoop配置文件就可以了。另外一种就是编译安装了。两种方式我都介绍一下,实际部署的时候选择其中一种就可以了。
3.2.1 解压安装编译版
下载tar包,并解压
#wget http://mirrors.hust.edu.cn/apache/hadoop/common/hadoop-2.4.1/hadoop-2.4.1.tar.gz#tar zxvf hadoop-2.4.1.tar.gz #mv hadoop-2.4.1/ /opt/#cd /opt#chown -R hadoop.hadoop hadoop-2.4.1/
配置环境变量vim /etc/profile,加入HADOOP_HOME等环境变量,其中注释掉的HADOOP_ROOT_LOGGER=DEBUG,console在调试时可以打开,打开后输出的DEBUG日志比较详细。
# HADOOPexport HADOOP_HOME=/opt/hadoopexport HADOOP_PREFIX=$HADOOP_HOMEexport HADOOP_COMMON_HOME=$HADOOP_PREFIXexport HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_PREFIX/lib/nativeexport HADOOP_CONF_DIR=$HADOOP_PREFIX/etc/hadoopexport HADOOP_HDFS_HOME=$HADOOP_PREFIXexport HADOOP_MAPRED_HOME=$HADOOP_PREFIXexport HADOOP_YARN_HOME=$HADOOP_PREFIX#export HADOOP_ROOT_LOGGER=DEBUG,consoleexport LD_LIBRARY_PATH=$HADOOP_PREFIX/lib/nativeexport PATH=$PATH:$HADOOP_HOME/bin
需要注意的是,apache官方提供的编译版中的native library是32bit的。运行在64bit系统启动集群时会报WARN提示,要解决这个WARN有两个方法,一个是编译源码包,得到64bit的nativ library文件后替换原来的32bit文件。 另一个方法就是网上找别人编译好的64bit native library库文件,下载替换。
3.2.2 编译安装源码版
首先需要安装一些依赖包
yum install lzo-devel zlib-devel gcc gcc-c++ autoconf automake libtool ncurses-devel openssl-devel cmake
3.3 配置Hadoop
3.3.1 core-site.xml
hadoop.tmp.dir /home/hadoop/tmp Abase for other temporary directories. fs.defaultFS hdfs://master.hadoop:9000 io.file.buffer.size 4096
3.3.2 hdfs-site.xml
dfs.nameservices hadoop-cluster1 dfs.namenode.secondary.http-address master.hadoop:50090 dfs.namenode.name.dir file:///home/hadoop/dfs/name dfs.datanode.data.dir file:///home/hadoop/dfs/data dfs.replication 3 dfs.webhdfs.enabled true
3.3.3 mapred-site.xml
mapreduce.framework.name yarn mapreduce.jobtracker.http.address master.hadoop:50030 mapreduce.jobhistory.address master.hadoop:10020 mapreduce.jobhistory.webapp.address master.hadoop:19888
3.3.4 yarn-site.xml
yarn.nodemanager.aux-services mapreduce_shuffle yarn.resourcemanager.address master.hadoop:8032 yarn.resourcemanager.scheduler.address master.hadoop:8030 yarn.resourcemanager.resource-tracker.address master.hadoop:8031 yarn.resourcemanager.admin.address master.hadoop:8033 yarn.resourcemanager.webapp.address master.hadoop:8088
3.3.5 slaves
slave1.hadoopslave2.hadoopslave3.hadoop
以上是"如何在centos6.5-64bit上部署hadoop2.4.1分布式环境"这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注行业资讯频道!