博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Hadoop的安装(伪分布式模式和分布式模式)
阅读量:4137 次
发布时间:2019-05-25

本文共 7457 字,大约阅读时间需要 24 分钟。

一、Hadoop伪分布式模式安装过程:(windows)
适用于WIndows2000 ,Windows XP
hadoop4win(hadoop for windows):主要提供Windows平台上简易安装hadoop的批次安装档。
主要软件:
1)Cygwin——类似于LInux环境的精简版;
2)JDK 1.6.0 u18——Java环境
3)Hadoop 0.20.2
安装包下载:
1)0.1.3 alpha:http://www.classcloud.org/hadoop4win/hadoop4win-setup-full_0.1.3.zip;
2)0.1.2 alpha: ;
3)0.1.0 alpha: ;
 
解压后,双击执行hadoop4win-setup,默认的安装目录是C:/hadoop4win ;可以修改相应的选项。一开始会弹出CygWin下载安装窗口,点击“下一步”开始安装;接着自动批次程式将会把Hadoop单机版所需的Java开发环境和Hadoop压缩档拷贝到安装目录。
 
安装完成后会自动进入CygWin视窗。此时,可以输入命令【hadoop4win-init】:
 
此初始化指令将会进行JDK与Hadoop解压缩动作;最后将执行Hadoop Namenode的格式化。
 
按下任意键,会依次启动Hadoop Name Node,Data Node,Job Tracker , Task Tracker; 
并使用预设浏览器依次开启 (namenode)
                                   (TaskTracker)
                                   (JobTracker)
 

 

二、Hadoop的分布式模式安装过程:(Ubuntu Linux

1、集群环境介绍

     集群环境中有三个结点,其中1namenode2datanode,它们之间分布在局域网中,相互之间可以ping通。具体的IP地址为:

    namenode192.168.0.68

    datanode1192.168.0.41

    datanode2192.168.0.56

    三台结点计算机都是Ubuntu Linux 系统,是在Virtual Workstation6.5中的虚拟机,并且都有一个相同的用户quinty(安装系统时的首个用户,具有管理员的权限),在/home/quinty目录下均有一个hadoopinstall目录,用于存放hadoop-0.20.2安装文件,hadoop的整个目录结构是/home/quinty/hadoopinstall/hadoop-0.20.2

2、准备工作

1ssh无密码验证配置

      Hadoop需要使用ssh协议,namenode使用ssh协议启动namenodedatanode进程,为使Hadoop集群能够正常启动,需要在namenodedatanode结点之间设置ssh无密码验证。

   A.安装和启动ssh协议(所有机器上)

      $sudo apt-get install ssh  (安装ssh

      $sudo apt-get install rsync

      $ssh sudo /etc/init.d/ssh restart  (启动ssh,无所谓) 

       执行完毕,机器之间可以通过密码验证相互登录。

   B.生成密码对(所有机器)

      ~$ssh-keygen -t rsa    //将在~/.ssh 目录下生成私钥id_rsa和公钥id_rsa.pub

      ~$chmod 755 .ssh

   C.namenode结点上做配置

     ~/.ssh$cp id_rsa.pub authorized_keys       //namenode的公钥

     ~/.ssh$scp authorized_keys data结点的ip地址:/home/quinty/.ssh   //namenode 可以无密码登录所有datanode结点(ssh ip地址  验证)

    D.datanode结点上做配置

     ~/.ssh$scp id_rsa.pub 192.168.0.68:/home/quinty/.ssh/datanode ip地址.id_rsa.pub

     然后在namenode中,

     ~/.ssh$cat datanode ip地址.id_rsa.pub >> authorized_keys

    这样datanode 可以无密码登录namenodessh ip地址  验证)

2jdk安装及环境配置         

  下载Linux环境下的JDK安装包jdk-6u22-linux-i586.bin

#chmod 755 jdk-6u22-linux-i586.bin

#./jdk-6u22-linux-i586.bin  //解压在当前目录,接着做好环境配置

//我将jdk解压在/home/quinty/

  vi /etc/profile.d/java.sh    //写入

#set java environment

JAVA_HOME=/home/quinty/jdk_1.6.0_22

CLASSPATH=.:$JAVA_HOME/lib/tools.jar

PATH=$JAVA_HOME/bin:$PATH

Export JAVA_HOME CLASSPATH PATH

保存退出,然后给java.sh分配权限 chmod  755 /etc/profile.d/java.sh

通过java –version检查JDK是否安装成功。

 

2Hadoop集群的配置

namenode上执行

    下载hadoop-0.20.2.tar.gz,将其解压到/home/quinty/hadoopinstall目录下,可以使用如下命令:tar zxvf hadoop-0.20.2.tar.gz;然后在hadoopinstall下创建tmp文件夹。

1)将Hadoop 的安装路径添加到/etc/profile中,并使其有效(source /etc/profile)

   vi /etc/profile 

加入#set hadoop path

   export  HADOOPHOME=home/quinty/hadoopinstall/hadoop0.20.2

   export  PATH=$HADOOPHOME/bin:$PATH

Hadoop配置文件在conf目录下,接下来配置以下五个文件

 2)配置Hadoop-env.sh

 export JAVA_HOME=/home/quinty/jdk1_6_0_22 

 3)core-site.xml

 <configuration>

      <property>

              <name>hadoop.tmp.dir</name>

         <value>/home/quinty/hadoopinstall/tmp</value>

      </property>

      <property>

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

         <value>hdfs://192.168.0.68:9100</value>   

         <description>如果namenodeip地址发生变化,需要修改 </description>

      </property>

</configuration>

  3)配置hdfs-site.xml

<configuration>

      <property>

              <name>dfs.replication</name>

         <value>1 </value>

         <description>replication是数据副本数量,默认是3datanode少于3台会报错</description>

      </property>

</configuration>

4)配置mapred-site.xml

<configuration>

      <property>

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

         <value> 192.168.0.68:9101</value>

       <description>如果namenodeip地址发生变化,需要修改 </description>

      </property>

</configuration>

5)配置master文件,加入namenodeip地址

192.168.0.68

6)配置slaves文件,加入所有datanodeip地址

192.168.0.41

192.168.0.56

   然后将namenode上配置好的hadoop所载文件夹hadoopinstall复制到datanode/home/quinty目录下

$scp –r /home/quinty/hadoopinstall datanode ip地址:/home/quinty/hadoopinstall

$scp –r /home/quinty/jdk1.6.0_22  datanode ip地址:/home/quinty/ jdk1.6.0_22

datanode上执行:

     Hadoop 的安装路径添加到/etc/profile中,并使其有效(source /etc/profile)

   vi /etc/profile   //写入

#set hadoop path

   export  HADOOPHOME=/home/quinty/hadoopinstall/hadoop0.20.2

   export  PATH=$HADOOPHOME/bin:$PATH

至此,hadoop集群的配置完毕。

 

3Hadoop集群的启动及应用

1)在namenode上执行(user:quinty)

A.格式化hadoop

 cd ~/hadoopinstall/hadoop-0.20.2

 bin/hadoop namenode –format

B.启动hadoop

bin/start-all.sh    (结束是  bin/stop-all.sh

启动hadoop成功后,在namenode中的tmp文件夹中生成了dfs文件夹,在所有datanode中的tmp文件夹中均生成了dfs文件夹和mapred文件夹。

C.用java自带的小工具jps查看进程:

namenode中执行jps,分别列出 JobTrackerJpsSecondaryNamenodeNamenode的对应进程号;

在每个datanode中执行jps,分别列出DatanodeJpsTaskTracker对应的进程号。

D.查看集群状态 

namenode bin/hadoop dfsadmin –report

Hadoopweb方式查看:结点信息——http://192.168.0.68:50070

                      JobTracker信息——http://192.168.0.68:50030

                       TaskTracker信息——http://datanode ip地址:50060

E.实例应用——运行wordcount(hadoop安装目录下)

$bin/hadoop dfs –mkdir input  (新建目录)

$bin/hadoop dfs –put READEME.TXT input 

$bin/hadoop jar hadoop-0.20.2-examples wordcount input output

$bin/hadoop dfs –cat output/*   (查看结果)

F.常见问题:

 a. start-all.sh是有启动namenode的,但是用jps查看发现没有namenode进程

原因之一:hadoopinstall/tmp下的dfs不能访问,可以通过删除dfs文件夹解决;

 原因之二:hadoop集群的配置错误(core-site.xmlmapred-site.xml,namenodeIP地址没有更新,导致namenodedatanode等进程启动后自动关闭。

b.连接到远程机器失败,可能是datanodeip地址发生改变,但是slaves文件夹中的内容没有修改。

 

4Hadoop分布式并行编程< xmlnamespace prefix ="o" ns ="urn:schemas-microsoft-com:office:office" />

网上很多就介绍了用< xmlnamespace prefix ="st1" ns ="urn:schemas-microsoft-com:office:smarttags" />IBM MapReduce Tool,但是IBM MapReduce Tool只适用于Hadoop0.17.0的,已经不能满足最新的Hadoop要求,其实Hadoop本身是有带Eclipse-Plugin的,可以直接使用。

Hadoop如上配置安装在Linux系统中,然后在windows下使用Eclipse进行分布并行编程,

环境: Windows xp

          Eclipse 3.4.2+JDK1.6.0_22+Hadoop0.20.2

1)在本地机器(windows xp)中安装JDK1.6.0,并配置好相关的环境变量

A. 下载.安装JDK,安装过程中可以自定义安装目录等信息,如选择安装目录为D:\java\jdk1.6.0_22

B. 配置环境变量安装完成后,右击“我的电脑”,点击“属性”;选择“高级”选项卡,点击“环境变量”;在“系统变量”中,设置3项属性,JAVA_HOME,PATH,CLASSPATH(大小写无所谓),若已存在则点击“编辑”,不存在则点击“新建”;

JAVA_HOME= D:\java\jdk1.6.0_22;

PATH=.;%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;(追加))

CLASSPATH=.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar(追加)

C检验是否配置成功,“开始”->;“运行”,键入“cmd”;

键入命令java -version,出现JDK版本号,说明环境变量配置成功;

2)将在Linux中配置好的Hadoop复制一份到本地机器中,Eclipse中新建Map/Reduce项目时,需Hadoop的本地路径(如,D:\Programs\hadoopinstall\hadoop-0.20.2)。

3)下载Eclipse3.4.2(之前的版本好象不能识别hadoop-0.20.2eclipse插件),然后解压到D:\Programs\ (绿色版,无需要安装),设置工作目录。

A.    Hadoop自带的Eclipse插件复制到Eclipse的插件目录下

D:\Programs\hadoopinstall\hadoop-0.20.2\contrib\eclipse-plugin\hadoop-0.20.2-eclipse-plugin.jarà D:\Programs\eclipse\plugins

B.     重启Eclipse在右上角的perspective,选择other->map/reduce,可以切换到Map/Reduce视窗,然后在下方“Map/Reducer ”点击可以设置Hadoop Location

Location name:自定一个

Map/Reduce Master  Host:192.168.0.69( Hadoop中的namenodeip地址)

            Port:9101(根据Hadoop中的配置来设,注意这里是MapReduceMaster,监听端口是**01的。

DFS Master 勾选 Use M/R Master host port:9100(根据配置来设)

User name:Linux中使用Hadoop的用户名,(如,我的是quinty

SOCKS proxy 不需要勾选“Enabel SOCKSproxy

点击Finish,配置完毕,回到主界面,project面板出现了“DFS location”,点击可以查看dfs中的内容。 Advanced Parameters可以不用设置。

C.    设置本地Hadoop的位置,windowsàPreferencesàHadoop Map/Reduce,Hadoop的安装目录设置为本地机器的Hadoop目录。

4)新建一个MapReduce工程,试运行Hadoop自带的WordCount程序

A.FileàNewàProjectàMapReduce     填写工程名WordCount等信息,然后将Hadoop中自带的WordCount.javaHadoop目录\src\examples\ org\apache\hadoop\examples)拷贝到src目录下,此时会出现错误,将第一行的pakage信息删除即可。

B.运行配置 运行WordCount,右击WordCount.java,在弹出的菜单中选择Run As àRun Configurations…,弹出的窗口中,在Java Application下选择“WordCount”,然后在右侧Arguments面板中配置相应的运行时参数。

程序参数可以用本地路径,也可以用HDFS路径,二者要求不同

本地路径不能指明处理的具体文件,输出文件夹必须是尚未存在的。

HDFS路径可以指明处理的具体文件

Pragrams  arguments

   D:/input  D:/output

   Hdfs://UBUNTU:9100/user/quinty/input/README.txt  输出文件夹

**我是运行了一下,本地物理路径配置能成功运行;第一个参数为HDFS路径,第二个参数为本地路径也能成功运行;但是两个参数都是HDFS路径,则提示不允许,我觉得应该是用户访问权限的问题,但是还不知如何解决

VM argument   -Xmx512m   用于限制内存的使用量

C.程序运行  参数配置完成后,点击ApplyRun则开始运行WOrdCount程序,从Console面板中可以看到程序的运行过程。同时结果将在第二个参数指定的文件目录中。

 

这中间还涉及如何让本地机器访问虚拟机中的Linux系统等问题,将在下一日志中整理出来。

转载地址:http://vgovi.baihongyu.com/

你可能感兴趣的文章
XML生成(三):JDOM生成
查看>>
Ubuntu Could not open lock file /var/lib/dpkg/lock - open (13:Permission denied)
查看>>
collect2: ld returned 1 exit status
查看>>
C#入门
查看>>
C#中ColorDialog需点两次确定才会退出的问题
查看>>
数据库
查看>>
nginx反代 499 502 bad gateway 和timeout
查看>>
linux虚拟机安装tar.gz版jdk步骤详解
查看>>
python实现100以内自然数之和,偶数之和
查看>>
python数字逆序输出及多个print输出在同一行
查看>>
苏宁产品经理面经
查看>>
百度产品经理群面
查看>>
去哪儿一面+平安科技二面+hr面+贝贝一面+二面产品面经
查看>>
element ui 弹窗在IE11中关闭时闪现问题修复
查看>>
vue 遍历对象并动态绑定在下拉列表中
查看>>
Vue动态生成el-checkbox点击无法选中的解决方法
查看>>
MySQL Tricks1
查看>>
python 变量作用域问题(经典坑)
查看>>
pytorch
查看>>
pytorch(三)
查看>>