分布式Hadoop的搭建(Ubuntu)

本文详细介绍了如何在三台Ubuntu10.04主机上搭建分布式Hadoop环境,包括网络配置、SSH免密码设置、环境配置、HDFS运行及MapReduce示例运行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

      基本情况:自己搭建分布式Hadoop,有三台主机,局域网配置,其中一台为vm上的虚拟机,系统均为Ubuntu10.04

     基本准备工作:1.安装java。可以见之前写的一篇,三台都装上

                                 2.建立同一个用户。我的用户名全是dbrg,并赋予sudo权限,注意创建的时候用sudo,否则可能提示不能在home下创建相应目录。添加sudo权限:sudo usermod -G admin -a hostname

                                 3.修改三台主机的hostname。分别修改为dbrg1(作为master,即namenode)、dbrg2(作为slave1,即datanode)、dbrg3(作为slave2)

                                 4.网络配置。局域网内,那么vm上的那个就需要配置,ping不通,VM里面有三个网络连接模式:host-only、bridge、nat(可以参考http://linuxme.blog.51cto.com/1850814/389691),采用bridge方式。

                                  这里,我的三台机器ip为:

                                          dbrg1  192.168.0.102

                                          dbrg2  192.168.0.112

                                          dbrg3  192.168.0.113

                                 5.下载好hadoop,本人的是0.20.2最新版本

                                 6.修改/etc/hosts。

                                    在dbrg1中添加:

                                              192.168.0.102 dbrg1  dbrg1

                                              192.168.0.112  dbrg2  dbrg2

                                              192.168.0.113  dbrg3  dbrg3

                                   在dbrg2中添加:

                                              192.168.0.102 dbrg1 dbrg1

                                               192.168.0.112 dbrg2 dbrg2

                                  在dbrg3中添加:

                                              192.168.0.102 dbrg1 dbrg1

                                               192.168.0.113 dbrg3 dbrg3

      正式配置:

              1.目录结构

                         由于Hadoop中要求所有机器hadoop的部署目录结构都要相同,并且都要有同名账号,之前的准备工作做好了,这里就ok了。

                         然后在三个节点上创建相同目录结构:/home/dbrg/HadoopInstall

                         将下载好的hadoop压缩包解压到HadoopInstall中,为了以后方便升级,建立一个链接指向要使用的hadoop版本,可以设:

                        $ln -s hadoop-0.20.2.tar hadoop

                        这样就可以通过hadoop访问了,而且还能便于后期的升级与修改

              2.免密码SSH设置

                      (1) 在三台机器上安装ssh,启动ssh-server。

                                 sudo apt-get install openssh-server

                                  sudo /etc/init.d/ssh start  

                                   ps -e|grep ssh       //这个是检验命令

                      (2)在dbrg1上生成密钥对。

                                  ssh-keygen  -t  -rsa //然后一直enter,按照默认的选项生成的密钥对保存在.ssh/id_rsa文件中

                                  进入.ssh目录,输入

                                   cp id_rsa.pub authorized_keys

                                   执行 ssh localhost 看看需不需要输入命令

                      (3)远程拷贝

                                  生成好后,需要将该文件传到dbrg2和3上

                                   在dbrg1中的.ssh目录中,输入

                                   scp authorized_keys dbrg2:/home/dbrg/.ssh/

                                   scp authorized_keys dbrg3:/home/dbrg/.ssh/

                                   说明:如果提示在dbrg2和3上没有此目录,记得创建。此处是需要输入密码的。

                      (4)修改权限。在dbrg2和dbrg3上对该文件进行权限修改

                                   打开.ssh,输入

                                  chmod 644 authorized_keys

                       (5)配置修改

                                   在三台服务器上对sshd服务进行配置,都需要修改。在sudo vi /etc/ssh/sshd_config中 

                                   修改:PasswordAuthentictation  no

                                               AuthorizedKeyFile  /home/dbrg/.ssh/authorized_keys

                     (6)检验

                                   在dbrg1上,ssh dbrg2,输入yes,这样以后访问都不需要输入密码了

                                  同样ssh dbrg3,输入yes。

                                  之后再检验下,看看需不需要输入密码

         3.Hadoop环境配置

                     在dbrg1中,打开hadoop目录,ls下,发现了conf文件夹,这个里面全是配置,打开

                    (1)修改hadoop_env.sh,输入:

                            export HADOOP_HOME=/home/dbrg/HadoopInstall/hadoop

                            export JAVA_HOME=/usr/java/jdk1.7.0

                           说明:根据实际的安装路径来,这是我机子上的

                  (2) 修改masters

                            删除localhost,改为dbrg1

                   (3)修改slaves

                           删除,改为dbrg2、dbrg3

                   (4)修改core-sit.html

                        在configuration之间加入:              

                               <property>

                              <name>fs.default.name</name>

                              <value>hdfs://dbrg1:9000</value>

                             <description>The name and URI of the default FS.</description>

                             </property>

                   (5)修改mapred-site.html

                              在configuration之间加入:                          

                              <property>

                              <name>mapred.job.tracker</name>

                               <value>dbrg1:9001</value>

                               <description>Map Reduce jobtracker</description>

                              </property>

                    (6)修改hdfs-site.html

                             在configuration之间加入:                         

                                <property>

                               <name>dfs.replication</name>

                               <value>2</value>

                               <description>Default block replication</description>

                              </property>

                     (7)环境配置的拷贝

                                 利用scp命令将上面修改的文件,替代dbrg2和dbrg3中的相应文件

       4.HDFS的运行

                      在dbrg1中初始化namenode,在hadoop目录下,输入

                             bin/hadoop namenode -format

                     然后再三台机器上都要bin/start-all.sh下,启动了

                    在dbrg1上可以查看,输入jps;或者可以通过http://dbrg1:50070查看,页面如下

                     

                       一些命令:bin/hadoop fs -mkdir [文件夹名称] //建立文件夹

                                           bin/hadoop fs -ls //查看当前的HDFS根目录

                                           bin/hadoop fs -rmr [文件或文件名] //删除根目录下的文件或文件夹

                                           bin/hadoop dfs -put [文件名1] [文件名2]//将dbrg1中hadoop目录下的文件名1拷贝到HDFS中,且文件名为文件名2

5.Mapreduce的示例运行

                         首先可以拷贝一下文本文件到文件夹input,然后放到hadoop下,在终端中进入hadoop目录,输入:

                                         bin/hadoop dfs -put input in //这样把input上传到了hadoop中,且名字为in

                         启动下bin/start-mapred.sh,之前应该都启动了

                         执行例子,输入:

                                         bin/hadoop jar hadoop-0.20.0-examples.jar wordcount in out//输入为in,输出在out中,这两文件都在HDFS中

                         查看结果:bin/hadoop dfs -cat out/*

                        另外还可以将HDFS中的文件复制到本地文件系统中:bin/hadoop dfs -get [文件名1] [文件名2]//把HDFS中的1拷贝到本地的hadoop,名字为2

                         说明:还可以通过http://dbrg1:50030查看,由于我的in中文件过多,还在执行,好了,只好吃饭去,等它执行了。。。。

                          

参考:

      http://www.cnblogs.com/wayne1017/archive/2007/03/20/678724.html

      http://cloud.youkuaiyun.com/a/20100810/278028.html

      http://www.cnblogs.com/88999660/articles/1581524.html

      http://exceljava.iteye.com/blog/367193

     感谢这些博主的奉献精神,小弟终于配好了,但是路漫漫长,配置好才是开始之路~~

                                        
### 构建Hadoop完全分布式集群环境 #### 准备工作 为了构建一个功能齐全的Hadoop完全分布式集群,在Ubuntu操作系统之上,需先准备好相应的软件包以及设置好网络环境。推荐使用VMware Workstation 15 Pro来创建多个Ubuntu 20.04虚拟机实例作为集群中的不同节点[^1]。 #### 软件获取 对于Hadoop本身而言,可以从官方网站下载所需版本;考虑到国内访问速度问题,建议通过清华大学开源软件镜像站获取资源,例如Hadoop 3.4.0版本可从此链接获得:`https://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common/hadoop-3.4.0/`[^2]。 #### 配置SSH免密登录 为了让各节点间能够顺利通信并执行命令,需要配置无密码SSH连接。具体操作是在主节点(master)向其他子节点(slave1, slave2...)发送公钥文件,确保后续管理过程中无需重复输入验证信息。这可以通过如下指令完成: ```bash ssh-copy-id -i /home/hadoop/.ssh/id_rsa.pub hadoop@master ssh-copy-id -i /home/hadoop/.ssh/id_rsa.pub hadoop@slave1 ssh-copy-id -i /home/hadoop/.ssh/id_rsa.pub hadoop@slave2 ``` 上述命令会提示确认主机身份及提供目标机器上的账户密码,之后即可实现跨节点间的无缝交互[^3]。 #### 安装Java开发工具包(JDK) 由于Hadoop运行依赖于Java环境的支持,因此还需要事先安装适当版本的JDK。通常情况下,最新稳定版即能满足需求。注意要保证所有参与计算的节点都已正确部署相同规格的JDK环境。 #### 修改Hadoop配置文件 编辑位于`${HADOOP_HOME}/etc/hadoop/core-site.xml`, `${HADOOP_HOME}/etc/hadoop/hdfs-site.xml`, 和 `${HADOOP_HOME}/etc/hadoop/yarn-site.xml` 文件内的参数设定,指明NameNode、DataNodes的位置以及其他必要的属性调整,从而适应当前硬件布局特点。 #### 启动服务进程 最后一步就是启动各个组件的服务程序了。进入Hadoop目录下依次执行以下脚本来激活整个生态系统: ```bash sbin/start-dfs.sh # 开启DFS (Distributed File System) sbin/start-yarn.sh # 启动YARN ResourceManager与NodeManager mr-jobhistory-daemon.sh start historyserver # 如果计划支持MapReduce作业,则还需开启历史服务器 ``` 以上便是基于Ubuntu平台建立Hadoop完全分布式集群的大致过程概述。当然实际操作时可能还会遇到更多细节性的问题等待解决,但遵循这些指导原则应当能帮助顺利完成初步搭建任务。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大胖5566

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值