hadoop的伪分布式模式配置与安装 |
您所在的位置:网站首页 › hadoop的ssh配置 › hadoop的伪分布式模式配置与安装 |
hadoop的伪分布式模式配置与安装 上次对hadoop单机模式中已经介绍了hadoop的基本安装,本次将讲解hadoop的伪分布式模式进行对hadoop的基本模拟部署。 安装软件: 系统:Linux 2.6.32-358.el6.x86_64 JDK:jdk-7u7-linux-i586.tar.gz Hadoop版本:hadoop-0.20.2-cdh3u4.tar.gz 硬件环境: 三台主机:分别为 gdy192 192.168.61.192 gdy194 192.168.61.194 gdy195 192.168.61.195 本次部署模型为: gdy192上部署:NameNode和JobTracker gdy194上部署:SecondaryNameNode gdy195上部署:DateNode TaskTracker 首先配置三台主机的hosts文件,以便之后不用ip而直接用别名进行相互访问 首先在gdy192上配置一份信息。 [root@gdy192 /]#vim /etc/hosts ![]() wq保存退出 将已经配置好的文件分别拷贝一份到其他两台主机上 拷贝文件到gdy194上 [root@gdy192 ~]#scp /etc/hosts root@gdy194:/etc/ 输入gdy194的root密码 拷贝成功。 去gdy194上查看/etc/hosts验证是否是叫我们刚才修改的文件 [root@gdy194 /]#cat /etc/hosts 可以看到拷贝成功。 同样再次拷贝一份到gdy195 在gdy192上输入: [root@gdy192 ~]#scp /etc/hosts root@gdy195:/etc/ 这里就不验证了。 在gdy192上创建jDK和Hadoop的安装目录gd [root@gdy192 /]#mkdir /usr/gd/ -pv 在gdy194上创建JDK和Hadoop的安装目录gd 在gdy195上创建JDK和Hadoop的安装目录gd 分别在gdy192,gdy194,gdy195上创建hduser用户并设置密码 在gdy192上 [root@gdy192 /]#useradd hduser [root@gdy192 /]#passwd hduser 在gdy194上 [root@gdy194 /]#useradd hduser [root@gdy194 /]#passwd hduser 在gdy195上 [root@gdy195 /]#useradd hduser [root@gdy195 /]#passwd hduser 将之前准备好的软件包拷贝到gdy192上, 如下图是我已经拷贝好的文件 将这两个文件解压到之前创建的目录/usr/gd/下面 [root@gdy192ftpftp]# tar -xf jdk-7u7-linux-i586.tar.gz -C /usr/gd/ [root@gdy192ftpftp]# tar -xf hadoop-0.20.2-cdh3u4.tar.gz -C /usr/gd/ 使用ls /usr/gd/可以查看解压后的文件 为jdk和hadoop创建软链接在/usr/gd目录下面 [root@gdy192ftpftp]# ln -s /usr/gd/jdk1.7.0_07/ /usr/gd/java [root@gdy192ftpftp]# ln -s /usr/gd/hadoop-0.20.2-cdh3u4/ /usr/gd/hadoop [root@gdy192ftpftp]# ll /usr/gd/ 配置java和hadoop的环境变量 配置java的环境变量 [root@gdy192 /]#vim /etc/profile.d/java.sh 添加如下信息: JAVA_HOME=/usr/gd/java PATH=$JAVA_HOME/bin:$PATH export JAVA_HOMEPATH wq保存退出 配置hadoop的环境变量 [root@gdy192 /]#vim /etc/profile.d/hadoop.sh 添加如下信息: HADOOP_HOME=/usr/gd/hadoop PATH=$HADOOP_HOME/bin:$PATH export HADOOP_HOMEPATH wq保存退出 使用scp分别将这两个文件拷贝到gdy194和gdy195机器上的/etc/profile.d/目录下面。 拷贝到gdy194上 [root@gdy192 /]#scp /etc/profile.d/java.sh root@gdy194:/etc/profile.d/ [root@gdy192 /]#scp /etc/profile.d/hadoop.sh root@gdy194:/etc/profile.d/ 拷贝到gdy195上 [root@gdy192 /]#scp /etc/profile.d/java.sh root@gdy195:/etc/profile.d/ [root@gdy192 /]#scp /etc/profile.d/hadoop.sh root@gdy195:/etc/profile.d/ 修改/usr/gd/目录下的所有文件的属主和属组为hduser [root@gdy192 /]#chown -R hduser.hduser /usr/gd 在gdy192上切换到hduser用户下面 [root@gdy192 /]#su – hduser 使用ssh-keygen和ssh-copy-id为gdy192能无密码直接访问gdy194和gdy195下的hduser用户 命令: 先制作秘钥文件 [hduser@gdy192 ~]$ssh-keygen -t rsa -P '' 回车 使用ssh-copy-id拷贝生成的公秘到gdy194机器上的hduser下,使gdy192能无密码访问gdy194 [hduser@gdy192 ~]$ssh-copy-id -i .ssh/id_rsa.pub hduser@gdy194 输入yes 输入gdy194上的hduser的用户密码 使用ssh-copy-id拷贝生成的公秘到gdy195机器上的hduser下,使gdy192能无密码访问gdy195 [hduser@gdy192 ~]$ssh-copy-id -i .ssh/id_rsa.pub hduser@gdy195 使用ssh-copy-id拷贝生成的公秘到gdy192机器上的hduser下,使gdy192能无密码访问gdy192 注意:即使是hadoop中使用的是ip进行调度访问,即使是访问自己的机器,如果不配置无密码访问,访问时,一样需要输入密码。这里和之前配置hadoop单机模式时一样。需要配置无密码访问。 [hduser@gdy192 ~]$ssh-copy-id -i .ssh/id_rsa.pub hduser@gdy192 验证gdy192是否已经不用输密码自己访问gdy194 [hduser@gdy192 ~]$ssh gdy194 'date' 能不需要输入密码就显示gdy194上的日期,则证明配置成功。 验证gdy192是否已经不用输密码自己访问gdy195 [hduser@gdy192 ~]$ssh gdy195 'date' 验证gdy192是否已经不用输入访问自己gdy192 [hduser@gdy192 ~]$ssh gdy192 'date' 查看三台机器上的系统世界是否一样 [hduser@gdy192 ~]$ssh gdy194 'date';ssh gdy195 'date';ssh gdy192 'date' 同步三个节点上的时间: 注意:这里由于hadoop没有权限修改时间,需要配置root能无密码访问gdy194和gdy195,gdy192。然后在统一设定时间。或者你自己设计其他方法保证时间同步。不过,时间同步在正在部署的环境上是必须要有的。如果这步你不配置,对于本次的hadoop伪分布式模式也没有多大影响。不过建议还是配置下。 配置代码如下。 [hduser@gdy192 ~]$exit 先退出hduser用户 [root@gdy192 /]#cd ~ 进入root用户的家目录 制作秘钥文件 [root@gdy192 ~]#ssh-keygen -t rsa -P '' 拷贝秘钥文件到gdy194,gdy195 [root@gdy192 ~]# ssh-copy-id -i.ssh/id_rsa.pub root@gdy194 [root@gdy192 ~]#ssh-copy-id -i .ssh/id_rsa.pub root@gdy195 由于root自己访问自己,每次都需要确认一次yes,所以用root用户配置无密码访问自己没有用。再说这里的配置只是为了完成三台电脑的时间同步。 先检查三台电脑的时间: [root@gdy192 ~]#ssh gdy194 'date';ssh gdy195 'date';date 将三台电脑的时间设为同一时间: [root@gdy192 ~]#ssh gdy194 'date 0929235415';ssh gdy195 'date 0929235415';date 0929235415 再次查看时间 [root@gdy192 ~]#ssh gdy194 'date';ssh gdy195 'date';date 可以看到这里的时间就已经同步了。 用gdy192切换到hduser用户下 [root@gdy192 ~]#su - hduser 再来查看三台电脑的时间: [hduser@gdy192 ~]$ssh gdy194 'date';ssh gdy195 'date';ssh gdy192 date 接下来就要开始配置hadoop的配置文件了 进程hadoop的文件目录里面 [hduser@gdy192hadoop]$ cd /usr/gd/hadoop/conf/ 由于在hadoop单机模式配置里面已经对重要文件做个解释。这里不再重复解释,详情请见日志《hadoop的单机模式配置与安装》 编辑masters文件 [hduser@gdy192conf]$ vim masters 将原来的localhost修改为gdy194 wq保存退出 注意:在上面就已经说明gdy194是用来做SecondaryNameNode的名称节点的。 而masters就是配置第二名称节点的。 编辑slaves文件 [hduser@gdy192conf]$ vim slaves 将原来的localhost修改为gdy195 wq保存退出 同样这里定义的是数据节点。 编辑文件core-site.xml [hduser@gdy192conf]$ vim core-site.xml 在直接添加如下信息
hadoop.tmp.dir /hadoop/temp
fs.default.name hdfs://gdy192:8020
wq保存退出 注意:这里的fs.default.name定义的是主节点。由于每个节点上配置文件都一样,所以这里要使用ip或者别名来定义主节点的位置。 由于这里定义了一个hadoop的缓存文件目录,所以我们需要在三台电脑上分别创建这个缓存文件目录。 切换到root用户。 [hduser@gdy192conf]$ su – root 创建/hadoop目录 [root@gdy192 ~]#mkdir /hadoop/ 修改hadoop目录的属主和属主为hduser,让hduser能在这个目录下有写权限。 [root@gdy192 ~]#chown -R hduser.hduser /hadoop 同样在gdy194和gdy195上创建一个这样的目录,并赋予hadoop权限。 在gdy194上 [root@gdy194 /]#mkdir /hadoop [root@gdy194 /]#chown -R hduser.hduser /hadoop 在gdy195上 [root@gdy195 /]#mkdir hadoop [root@gdy195 /]#chown -R hduser.hduser /hadoop 使用gdy192 退出当前用户,返回之前的hduser用户 [root@gdy192 ~]#exit 注意:这里由于刚刚是直接登录,所以现在能退出返回到之前的hduser用户和hduser操作的目录下面。 编辑文件 mapred-site.xml [root@gdy192conf]# vim mapred-site.xml 在和之间添加如下信息。
mapred.job.tracker gdy192:8021
wq保存退出 同样,由于这里定义的是JobTracker,而我们上部署就已经说明gdy192上存放jobTracker 所以这里在单机模式下的localhost就要改成ip或者是ip别名。 编辑文件:hdfs-site.xml [root@gdy192conf]# vim hdfs-site.xml 在和之间添加如下信息。 dfs.replication 1 The actualnumber of replications can be specified when the file iscreated.
dfs.data.dir /hadoop/data ture Thedirectories where the datanode stores blocks.
dfs.name.dir /hadoop/name ture Thedirectories where the namenode stores its persistentmatadata.
fs.checkpoint.dir /hadoop/namesecondary ture Thedirectories where the secondarynamenode stores checkpoints.
wq保存退出 注意:这里是跟想象的定义了hadoop中其他目录的位置,如果这里不定义,将会默认使用core-site.xml文件里面定义的默认缓存目录。 到这里hadoop的配置文件就已经配置完成了。 接下来分别在gdy194上和gdy195上解压jdk-7u7-linux-i586.tar.gz和hadoop-0.20.2-cdh3u4.tar.gz软件包到/etc/gd/文件夹下面。并分别创建连接文件。(向上面之前操作一样) 这由于重复操作。不再做解释。 接下来拷贝刚刚在gdy192上已经配置好的文件到gdy194和gdy195的对应位置。 方法如下: 在gdy192上使用root用户 拷贝文件到gdy194和gdy195上 [hduser@gdy192hadoop]$ scp /usr/gd/hadoop/conf/* gdy194:/usr/gd/hadoop/conf/ [hduser@gdy192 hadoop]$ scp /usr/gd/hadoop/conf/*gdy195:/usr/gd/hadoop/conf/ 在gdy194和gdy195上分别使用root用户给予/usr/gd/hadoop文件夹赋予hduser用户权限。 在gdy194上 [root@gdy194 /]#chown hduser.hduser /usr/gd/ -R [root@gdy194 /]#ll /usr/gd/ 在gdy195上 [root@gdy195 /]#chown hduser.hduser /usr/gd/ -R [root@gdy195 /]#ll /usr/gd/ 到这里hadoop的伪分布式模式已经全部配置完成。 启动hadoop伪分布式模式 使用gdy192主机。重新登录root用户 切换到hduser用户 格式化hadoop的文件系统HDFS [hduser@gdy192 ~]$hadoop namenode -format 启动hadoop [hduser@gdy192 ~]$start-all.sh 这里已经看到gdy192上成功启动了NameNode和JobTracker两个节点 查看gdy194上是否已经成功启动SecondaryNameNode [hduser@gdy192 ~]$ssh gdy194 'jps' 看到已经成功启动 查看gdy195上是否已经成功启动DataNode和TaskTracker [hduser@gdy192 ~]$ssh gdy195 'jps' 到这里已经看到都成功启动 使用 [hduser@gdy192 ~]$netstat –nlpt 可以查看hadoop的端口 其中50030端口为hadoop的对外web网址端口。可以查看hadoop的MapReduce作业的相关信息 50070为hadoop的Namenode节点信息。 查看hadoop的MapReduce作业信息 可以在浏览器上访问:http://192.168.61.192:50030/jobtracker.jsp 如下图: 查看hadoop的NameNode节点信息 可以在浏览器上访问:http://192.168.61.192:50070/dfshealth.jsp 如下图: 由于SecondaryNameNode部署在gdy194上。 查看gdy194上的Hadoop的进程端口信息。 [hduser@gdy192 ~]$ssh gdy194 'netstat -nlpt' 其中50090端口为hadoop的SecondaryNameNode的web对外端口 可以使用:http://192.168.61.194:50090/status.jsp 来访问SecondaryNameNode的对外web端口。 同样,由于DataNode和TaskTracker部署在gdy195上。 在gdy192上查看gdy195上的端口信息 [hduser@gdy192 ~]$ssh gdy195 'netstat -nlpt' 50060为hadoop的TaskTracker的节点信息 50075为hadoop的DateNoe的节点信息 分别通过以下地址可访问: http://192.168.61.195:50075/ http://192.168.61.195:50060/tasktracker.jsp 注意:在实际部署中以上web的访问端口前的ip地址为你实际部署的ip地址,这里我是按照我自己部署的ip地址列举出来的。 在hadoop上做一次hadoop的单词统计 使用机器gdy192 在hadoop的DNSF文件系统上新建一个text文件夹 查看已经建立好的文件夹 [hduser@gdy192 ~]$hadoop fs -ls / 上传一个系统文件到test文件夹下 [hduser@gdy192 ~]$hadoop fs -put /etc/hosts /test 查看已经上传的文件 [hduser@gdy192 ~]$hadoop fs -ls /test 对hadoop目录中的test所有文件做单词统计,统计结果输出在word文件夹下 [hduser@gdy192 ~]$hadoop jar /usr/gd/hadoop/hadoop-examples-0.20.2-cdh3u4.jar wordcount /test /word 在这个过程中可以通过 http://192.168.61.192:50030/jobtracker.jsp来查看作业进行的情况。 下图就是刚刚执行的作业完成后的显示 查看单词统计结果输出目录 [hduser@gdy192 ~]$hadoop fs -ls /word 查看结果输出文件part-r-00000可以看到刚才对test目录下的文件做单词统计的统计结果 [hduser@gdy192 ~]$hadoop fs -cat /word/part-r-00000 这就是刚才统计的的统计结果。 到本文档位置hadoop的单机模式和hadoop的伪分布模式安装和部署就已经完成了。 其实hadoop的单独安装后一般都会再安装hbase来原理hadoop。这样好方便存储数据,和管理。对于在hadoop的单机模式上怎么部署hbase和在hadoop的伪分布式模式下如何部署hbase。将在之后陆续公布。 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |