Hadoop伪分布环境配置

原创
2014/10/11 12:32
阅读数 89

本文参考了如下作者:

http://www.it165.net/pro/html/201410/23406.html

http://blog.csdn.net/hguisu/article/details/7237395

特别鸣谢!

一、准备工作:

    1.最新的jdk1.8(jdk-8u20-linux-i586.tar.gz)

    下载地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

    2.最新hadoop-2.5.1(hadoop-2.5.1.tar.gz

    下载地址:http://apache.fayea.com/apache-mirror/hadoop/common/hadoop-2.5.1/

    3.ssh的安装

(注:本次配置实在ubuntu14.04 kylin LTS系统上进行的)

二、总体流程:

    1.安装jdk,设置环境变量

    2.安装ssh,实现无密码验证

    3.安装配置hadoop

    4.格式化,验证,启动

三、环境配置

  1. 安装jdk

    将下载好的jdk-8u20-linux-i586.tar.gz解压到/usr/lib/jvm目录下,进入源文件目录,输入命令 sudo tar -zxvf jdk-8u20-linux-i586.tar.gz -C /usr/lib/jvm

  2. 设置JAVA_HOME等环境变量

    输入命令 sudo vim /etc/profile 在一般模式下按i进入编辑模式,在末尾输入下列语句:

    #set java home
    export JAVA_HOME=/usr/lib/jvm/java-8u20-sun
    export JRE_HOME=/usr/lib/jvm/java-8u20-sun/jre
    export CLASSPATH=.:$CLASSPATH:$JAVA_HOME/lib:$JRE_HOME/lib
    export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin

    注意:这里设置的JAVA_HOME目录是我的压缩文件最终解压到的位置,读者根据自己情况改变

    在vim编辑模式下输入完成后,按Esc键返回到一般模式,输入:wq保存返回,执行下列命令使配置生效

    sudo chmod +x /etc/profile   #增加执行权限

    source /etc/profile    #使配置生效

    在命令窗口中输入命令  java -version ,出现下列信息,则表明jdk安装成功

    java version "1.8.0_20"

    Java(TM) SE Runtime Environment (build 1.8.0_20-b26)

    Java HotSpot(TM) Server VM (build 25.20-b23, mixed mode)

    在命令窗口中输入命令 echo $JAVA_HOME,出现下列信息,则表明jdk配置成功

    /usr/lib/jvm/java-8u20-sun

  3. ssh无密码验证配置

    在命令窗口下输入  sudo apt -get install ssh

         这个安装完后,可以直接使用ssh命令 了。
         执行$ netstat  -nat    查看22端口是否开启了。
         测试:ssh localhost。
         输入当前用户的密码,回车就ok了。说明安装成功,同时ssh登录需要密码。

  4.     在命令窗口下输入  ssh-keygen -t rsa

    Generating public/private rsa key pair. 
            Enter file in which to save the key (/root/.ssh/id_rsa): & 按回车默认路径 & 
            Created directory '/root/.ssh'. &创建/root/.ssh目录& 
            Enter passphrase (empty for no passphrase): 
            Enter same passphrase again: 
            Your identification has been saved in /root/.ssh/id_rsa. 
            Your public key has been saved in /root/.ssh/id_rsa.pub. 

    通过以上命令将在/root/.ssh/ 目录下生成id_rsa私钥和id_rsa.pub公钥。进入/root/.ssh目录在namenode节点下做如下配置:

输入命令  sudo cat id_rsa.pub > authorized_keys 
        将id_rsa.pub写入authorized_keys,配置完毕,可通过ssh 本机IP 测试是否需要密码登录:ssh localhost

4.hadoop-2.5.1安装配置

    将下载好的hadoop-2.5.1.tar.gz解压到/opt目录下,并更名为hadoop

    在命令窗口下输入 sudo tar -zxvf hadoop2.5.1.tar.gz -C /opt/hadoop

    输入 sudo mv hadoop-2.5.1 hadoop

    然后把Hadoop的安装路径添加到"/etc/profile"中,并使其生效。输入命令 sudo vim /etc/profile 在编辑模式下输入下列语句

    # set hadoop path
            export HADOOP_HOME=/opt/hadoop
            export PATH=$PATH :$HADOOP_HOME/bin

完成后按Esc ,输入:wq保存退出,输入命令 source /etc/profile

请注意这里安装的2.5.1版本,2.*版本较1.*版本改动很大,主要是用Hadoop MapReduceV2(Yarn) 框架代替了一代的架构,其中JobTracker 和 TaskTracker 不见了,取而代之的是 ResourceManager, ApplicationMaster 与 NodeManager 三个部分,而具体的配置文件位置与内容也都有了相应变化,具体的可参考文献:http://www.ibm.com/developerworks/cn/opensource/os-cn-hadoop-yarn/

安装完之后进行配置,首先所有的配置文件从上一版本的hadoop/conf换成了hadoop/etc/hadoop,在hadoop目录下,执行sudo vim etc/hadoop/core-site.xml,将其配置为:

<configuration>

<property>

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

<value>/opt/hadoop/tmp</value>

<description>A base for other temporary directories.</description>

</property>

<!--file system properties-->

<property>

<name>fs.defaultFS</name>

<value>hdfs://127.0.0.1:9000</value>

</property>

</configuration>

(注:我是在本机配置伪分布,因此hdfs配置ip地址为本机ip)

然后执行vim etc/hadoop/hdfs-site.xml进行第二项配置:

<configuration>

<property>

<name>dfs.namenode.name.dir</name>

<value>/opt/hadoop/hdfs/name</value>

</property>

<property>

<name>dfs.datanode.data.dir</name>

<value>/usr/hadoop/hdfs/data</value>

</property>

<property>

<name>dfs.replication</name>

<value>1</value>

</property>

</configuration>

请注意上述路径都需要自己手动用mkdir创建(共三个目录,hdfs目录,还有hdfs目录下的data目录和name目录),具体位置也可以自己选择,其中dfs.replication的值建议配置为与分布式 cluster 中实际的 DataNode 主机数一致,在这里由于是伪分布式环境所以设置其为1。

上述配置也可参考:http://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-common/SingleCluster.html#Pseudo-Distributed_Operation

接下来执行vim etc/hadoop/mapred-site.xml配置其使用 Yarn 框架执行 map-reduce 处理程序

(注意:在hadoop2.X版本中已经没有mapred-site.xml文件了,在这里需要自己新建一个)

内容如下: 
<configuration> 
<property> 
<name>mapreduce.framework.name</name> 
<value>Yarn</value> 
</property> 
</configuration> 

最后执行vim etc/hadoop/yarn-site.xml对yarn进行配置,其内容如下:

<configuration>

<!-- Site specific YARN configuration properties -->

<property>

<name>Yarn.nodemanager.aux-services</name>

<value>mapreduce.shuffle</value>

</property>

<property>

<description>The address of the applications manager interface in the RM.</description>

<name>Yarn.resourcemanager.address</name>

<value>你的ip:18040</value>

</property>

<property>

<description>The address of the scheduler interface.</description>

<name>Yarn.resourcemanager.scheduler.address</name>

<value>你的ip:18030</value>

</property>

<property>

<description>The address of the RM web application.</description>

<name>Yarn.resourcemanager.webapp.address</name>

<value>你的ip:18088</value>

</property>

<property>

<description>The address of the resource tracker interface.</description>

<name>Yarn.resourcemanager.resource-tracker.address</name>

<value>你的ip:8025</value>

</property>

</configuration>

(注意:在这里,因为我是本机配置,所以“你的ip”都为127.0.0.1,不要写成localhost,在这失败好久。。。)

(注意:千万别忘了修改hadoop-env.sh和yarn-env.sh两个文件里的JAVA_HOME,用命令sudo vim hadoop/etc/hadoop/hadoop-env.sh 与 sudo vim hadoop/etc/hadoop/yarn-env.sh来配置两个文件里的JAVA_HOME,在这里,即是将$JAVA_HOME替换为/usr/lib/jvm/java-8u20-sun)

然后格式化:hadoop/bin/hadoop namenode -format,看到命令倒数第三行Storage directory * has been successfully formatted. 则说明格式化成功。

(注意:在格式化过程中可能会出错,如果报出java.io.exception cannot create directory /opt/hadoop/hdfs/data 这是因为目录权限不够,在命令窗口下输入 sudo chmod a+x /opt/hadoop

新版本中启动脚本也从hadoop/bin/start-all.sh变为了hadoop/sbin/start-dfs.sh与hadoop/sbin/start-yarn.sh

执行 sbin/start-dfs.sh

执行sbin/start-yarn.sh

两者均启动成功,可以访问http://127.0.0.1:50070来获得dfs的运行现状,http://127.0.0.1:8088来获得resource manager的运行现状,全部Hadoop上的应用情况一目了然。


展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部