CentOS集群部署hadoop-2.5.2
2016-10-03 21:21
183 查看
现在在学习hadoop,熬了一两天,看了很多的博客,学到了很多的知识,是前人的无私奉献,让我在hadoop的安装部署上少走了不少弯路,特此感谢。如果你想尝试伪分布式的部署hadoop,可以参考以下面这篇博客:
http://www.cnblogs.com/myresearch/p/hadoop-Standalone-Pseudo-Distributed-operation.html
个人觉的写的很好,笔者也是参考的他们首先在单机上部署成功了伪分布式的hadoop,至于本篇文章,是我总结他人技术博客,加上自己在安装部署过程中遇到的问题,汇总而来,大神可以无视。
下面让我们一起在集群中来部署hadoop。
network文件中的配置如下:
配置如下:
如果有输出,说明已经安装好了,要是还是不放心,那你就yum install ssh* 一下吧。
是需要密码才能登录的,那么通过下面的配置,就可以实现无密码登录了。
首先在/root 目录下建立 .ssh 文件夹(.ssh 文件夹是隐藏的,使用ls -a 命令可以看到文件夹是否已经存在,存在不需要再自己建)。
再次使用
就可以无密码登录到本机了,下面将秘钥文件写到其他机器的authorized_keys文件中,使用下面命令可以简单实现
这样安装提示操作以后呢,基本上就可以了。
然后配置jdk的环境,配置方法如下(这里网上很多,都可以参考,会的略过吧)
其中JAVA_HOME=XXX 后面是你的jdk安装目录。
在终端敲java -version 出现内容基本就是安装好了。
6.2.1. hadoop-env.sh
然后编辑mapred-site.xml,内容如下:
我为了偷懒,直接运行的是:
启动截图如下:
如果没有警告或者错误,说明已经成功了,我们可以使用jps命令查看,直接在终端键入jps然后回车看系统运行的hadoop进程:
1. NameNode 节点
2. SecondNameNode节点
3. 其他节点DataNode
下面就是开始学习如何写MapRduce程序了。
http://www.cnblogs.com/myresearch/p/hadoop-Standalone-Pseudo-Distributed-operation.html
个人觉的写的很好,笔者也是参考的他们首先在单机上部署成功了伪分布式的hadoop,至于本篇文章,是我总结他人技术博客,加上自己在安装部署过程中遇到的问题,汇总而来,大神可以无视。
下面让我们一起在集群中来部署hadoop。
一 搭建环境
在MACOS上使用VMware Fusion 模拟的集群环境,本质上来说,两台机器和两台以上的机器的部署大同小异,只不过机器多了罢了,没特别大的区别。 OS: CentOS6.8 64位 hadoop version: 2.5.2
二 配置网络
虚拟机选择桥接模式,在编辑->网络设置进入后,选择自己的网卡,而不要选择默认的自动。然后在centOS上,配置IP信息。
主机名
vim /etc/sysconfig/network #进入之后,HOSTNAME=xxx,xxx修改为自己的主机名,可以默认。
网卡配置
vim vim /etc/sysconfig/network-scripts/ifcfg-eth0 #这里进行ip等信息的配置
network文件中的配置如下:
TYPE=Ethernet ONBOOT=yes #是否启动时运行 NM_CONTROLLED=yes BOOTPROTO=static #使用静态IP,而不是由DHCP分配IP DEFROUTE=yes IPV4_FAILURE_FATAL=yes IPV6INIT=no PEERDNS=yes PEERROUTES=yes IPADDR=192.168.1.4 #指定本机IP地址 NETMASK=255.255.255.0 #指定子网掩码 GATEWAY=192.168.1.1 #指定网关
DNS
#DNS的配置 vim /etc/resolv.conf
配置如下:
nameserver 8.8.8.8 #GOOGLE的DNS服务器 nameserver 61.144.56.100 #指定当前城市最近的DNS服务 nameserver 192.168.1.1 #指定经路由器上指定的DNS服务器
三 配置所有服务器SSH无密码登录
假若你的集群环境中有上百台机器,每次启动的时候,输入几百次的密码,我想是人都会疯掉,然后关于集群部署,个人觉得很多东西都是一台机器配置,其他机器直接copy就可以了,第一步配置ssh 无密码登录,对以后的工作会方便很多。
1. 下载安装 ssh 服务
一般而言,centos 在安装的时候,默认安装了ssh的,我们也可以检测一下,使用如下命令:
rpm -qa | ssh
如果有输出,说明已经安装好了,要是还是不放心,那你就yum install ssh* 一下吧。
2. 配置无密码登录
如果此时你使用
$ ssh localhost
是需要密码才能登录的,那么通过下面的配置,就可以实现无密码登录了。
首先在/root 目录下建立 .ssh 文件夹(.ssh 文件夹是隐藏的,使用ls -a 命令可以看到文件夹是否已经存在,存在不需要再自己建)。
$ mkdir /root/.ssh $ cd ~/.ssh/ $ ssh-keygen -t rsa $ cat id_rsa.pub >> authorized_keys
再次使用
ssh localhost
就可以无密码登录到本机了,下面将秘钥文件写到其他机器的authorized_keys文件中,使用下面命令可以简单实现
ssh-copy-id root@node1
这样安装提示操作以后呢,基本上就可以了。
四 安装Java环境
首先去下载匹配的jdk,笔者下载的是jdk1.8的rpm包,这个没什么好说的,下载好了以后使用下面命令进行安装:rpm -ivh jdk-xxxx.rpm
然后配置jdk的环境,配置方法如下(这里网上很多,都可以参考,会的略过吧)
vim /root/.bashrc 然后在最后面加上如下:
其中JAVA_HOME=XXX 后面是你的jdk安装目录。
在终端敲java -version 出现内容基本就是安装好了。
五 克隆配置好的系统
做完了以上几步后,现在可以克隆我们已经配置好的虚拟机了,因为很多都是重读的,这里有一个坑要注意一下,刚才配置网络的时候,如果直接克隆虚拟机,网卡配置那里的IP和MAC地址不会变,需要自己改过来,IP改成同一网段下不一样的就好了。
# 修改ip地址 vim /etc/sysconfig/network-scripts/ifcfg-eth0
六 安装hadoop
这里需要注意一下,hadoop官网下载的编译好的文件是基于32位平台编译的,如果你的Linux版本是64位的,这里需要下载源码进行编译,否则在启动hadoop的时候会报平台错误。
6.1编译hadoop
编译hadoop的过程网上很多,而且不是很复杂,这里不多写,如果有人觉得麻烦,不想搞,我这里提供hadoop2.5.2编译好的包下载,下载链接: http://pan.baidu.com/s/1dEPLAO5
6.2配置hadoop
hadoop不需要再install安装,只需要将其配置文件配置好了,然后用几个脚本就可以启动hadoop了,下面介绍下2.5.2的配置过程。配置文件在/hadoop/etc/hadoop/ 下
6.2.1. hadoop-env.sh
打开上述文件后,修改jdk的目录即可,如下:
export JAVA_HOME=/usr/java/jdk1.7.0_79
6.2.2. core-site.xml
<configuration> <property> <name>fs.default.name</name> <value>hdfs://node1:9000</value> <final>true</final> </property> <property> <name>hadoop.tmp.dir</name> <value>/opt/hadoop/tmp</value> </property> <property> <name>ds.default.name</name> <value>hdfs://node1:54310</value> <final>true</final> </property> <property> <name>fs.checkpoint.period</name> <value>3600</value> <description>The number of seconds between two periodic checkpoints. </description> </property> <property> <name>fs.checkpoint.size</name> <value>67108864</value> </property> </configuration>
6.2.3. hdfs-site.xml
<configuration> <property> <name>dfs.namenode.name.dir</name> <value>file:/opt/hadoop/dfs/name</value> <final>true</final> </property> <property> <name>dfs.datanode.data.dir</name> <value>file:/opt/hadoop/dfs/data</value> <final>true</final> </property> <property> <name>dfs.replication</name> <value>3</value> </property> <property> <name>dfs.http.address</name> <value>node1:50070</value> <description> The address and the base port where the dfs namenode web ui will listen on. If the port is 0 then the server will start on a free port. </description> </property> <property> <name>dfs.namenode.secondary.http-address</name> <value>node2:50090</value> </property> </configuration>
6.2.4. mapred-site.xml
这个文件是不存在的,可以利用mapred-site.xml.template复制一份,步骤如下:
cp mapred-site.xml.template mapred-site.xml
然后编辑mapred-site.xml,内容如下:
<configuration> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> <property> <name>mapreduce.jobhistory.address</name> <value>node1:10020</value> </property> <property> <name>mapreduce.jobhistory.webapp.address</name> <value>node1:19888</value> </property> </configuration>
6.3启动hadoop
根据上面的配置,我们在hadoop的目录下创建几个目录
cd /hadoop/ mkdir tmp mkdir -p /data/name
6.3.1. 格式化hdfs
cd /hadoop/bin/ ./hdfs namenode -format
6.3.2. 启动
cd /hadoop/sbin/ ./start-dfs.sh ./start-yarn.sh
我为了偷懒,直接运行的是:
./start-all.sh
启动截图如下:
如果没有警告或者错误,说明已经成功了,我们可以使用jps命令查看,直接在终端键入jps然后回车看系统运行的hadoop进程:
1. NameNode 节点
2. SecondNameNode节点
3. 其他节点DataNode
七 小结
配置过程参考过很多文件,总共搭建学习过两次,配置环境过程可以学到很多东西,感谢前辈的分享。上面的搭建过程可能不经详细,如有问题,欢迎大家指出。下面就是开始学习如何写MapRduce程序了。
相关文章推荐
- centos6.6上hadoop2.6.0集群部署
- 实战CentOS系统部署Hadoop集群服务
- centos6.5平台下Hadoop集群部署
- [原创] Centos 安装部署 Hadoop 集群和 hive
- 实战CentOS6.3部署Hadoop集群服务
- 实战CentOS系统部署Hadoop集群服务
- CentOS 64位系统进行Hadoop2.3.0本地编译及完全分布式集群的部署
- 实战CentOS系统部署Hadoop集群服务
- Centos 6.5 下hadoop2.5.2的HA集群原理讲解以及详细配置(自动切换)
- 实战CentOS系统部署Hadoop集群服务
- 实战CentOS系统部署Hadoop集群服务
- 实战CentOS系统部署Hadoop集群服务
- CentOS 6.5 搭建Hadoop 2.5.2集群
- CentOS 7 集群部署 Hadoop 2.7.3
- 如何在Centos6.5下部署Hadoop2.2的完全分布式集群(三)
- 实战CentOS系统部署Hadoop集群服务
- CentOS64位6.4下Hadoop2.7.1、Mysql5.5.46、Hive1.2.1、Spark1.5.0的集群环境部署
- CentOS6.5环境部署Hadoop2.8.1集群(HA)
- Centos 6.5 下hadoop2.5.2的HA集群原理讲解以及详细配置(手动切换)