zoukankan      html  css  js  c++  java
  • Ubuntu下伪分布式模式Hadoop的安装及配置

    1、Hadoop运行模式
    Hadoop有三种运行模式,分别如下:
    单机(非分布式)模式
    伪分布式(用不同进程模仿分布式运行中的各类节点)模式
    完全分布式模式
    注:前两种可以在单机运行,最后一种用于真实的集群环境,通常用在生产环境上。我们可以搭建本地的伪分布式模式来模拟分布式环境的执行。

    2、Hadoop的安装及配置
    环境:Ubuntu10.10,Hadoop 0.21.0
    安装步骤如下:
    1、准备工作:
    1)、安装ssh server,如何安装ssh server请看http://www.tieguanyin168.com/index.php/ubuntu-ssh-1650.html
    2)、安装sun jdk6,切忌一定要java6及其以上版本,如何安装jdk6请看http://www.tieguanyin168.com/index.php/ubuntu-jdk-1631.html

    2、增加一个用户组用户,用于hadoop运行及访问。
    root@ubuntu:~# sudo addgroup hadoop
    root@ubuntu:~# sudo adduser –ingroup hadoop hadoop

    3、生成SSH证书,配置SSH加密key
    hadoop@ubuntu:~$ su – hadoop
    Password:
    hadoop@ubuntu:~$ ssh-keygen -t rsa -P ""
    Generating public/private rsa key pair.
    Enter file in which to save the key (/home/hadoop/.ssh/id_rsa):
    Your identification has been saved in /home/hadoop/.ssh/id_rsa.
    Your public key has been saved in /home/hadoop/.ssh/id_rsa.pub.
    The key fingerprint is:
    a8:67:6f:bd:04:13:41:5f:a7:13:2d:84:e7:8a:8c:43 hadoop@ubuntu
    The key's randomart image is:
    +–[ RSA 2048]—-+
    |       .o  o+..  |
    |         o..o+.  |
    |        . .oo.   |
    |      E. .  ..   |
    |     ..oS. .     |
    |     .o oo.      |
    |    . o. ..      |
    |     o ….      |
    |       .. ..     |
    +—————–+
    hadoop@ubuntu:~$

    hadoop@ubuntu:~$ cat $HOME/.ssh/id_rsa.pub >> $HOME/.ssh/authorized_keys
    hadoop@ubuntu:~$

    4、配置完成,测试一下:
    hadoop@ubuntu:~$ ssh localhost
    The authenticity of host 'localhost (::1)' can't be established.
    RSA key fingerprint is d7:87:25:47:ae:02:00:eb:1d:75:4f:bb:44:f9:36:26.
    Are you sure you want to continue connecting (yes/no)? yes
    Warning: Permanently added 'localhost' (RSA) to the list of known hosts.
    Linux ubuntu 2.6.32-22-generic #33-Ubuntu SMP Wed Apr 28 13:27:30 UTC 2010 i686 GNU/Linux
    Ubuntu 10.04 LTS
    [...snipp...]
    hadoop@ubuntu:~$

    5、禁用ipV6配置:
    打开sudo gedit /etc/sysctl.conf,此文件需要root权限。
    再次打开文件中,追加如下:
    net.ipv6.conf.all.disable_ipv6 = 1
    net.ipv6.conf.default.disable_ipv6 = 1
    net.ipv6.conf.lo.disable_ipv6 = 1

    重启,测试是否配置成功:
    $ cat /proc/sys/net/ipv6/conf/all/disable_ipv6
    如果是1就ok了。

    下面就是安装Hadoop(Hadoop保存在/home目录下)了。
    首先是:下载,解压缩,分配权限。
    下载就不说了。
    下载后运行如下:
    root@ubuntu:~# cd /home
    root@ubuntu:/home# ls
    apache-tomcat-6.0.18  jdk1.6.0_30              study
    hadoop                jdk-6u30-linux-i586.bin  ubuntu
    hadoop-0.21.0.tar.gz  ljq                      web.war
    root@ubuntu:/home# sudo tar xzf hadoop-0.21.0.tar.gz
    root@ubuntu:/home# ls
    apache-tomcat-6.0.18  hadoop-0.21.0.tar.gz     ljq     web.war
    hadoop                jdk1.6.0_30              study
    hadoop-0.21.0         jdk-6u30-linux-i586.bin  ubuntu
    root@ubuntu:/home# sudo mv hadoop-0.21.0 hadoop
    root@ubuntu:/home# sudo chown -R hadoop:hadoop hadoop #chown [OPTION]  [OWNER][:[GROUP]]  FILE
    root@ubuntu:/home#

    到此就安装完毕。

    配置环境变量(共有4处要配置)
    1、在/home/hadoop/hadoop-0.21.0/conf/hadoop-env.sh文件中添加环境变量信息。
    2、在/etc/profile文件中添加环境变量信息。
    3、在/home/.bash_profile文件中添加环境变量信息。
    4、在/home/hadoop/.bashrc文件中添加环境变量信息。

    环境变量信息如下:

    1
    2
    3
    4
    5
    6
    7
    8
    HADOOP_HOME=/home/hadoop/hadoop-0.21.0
    JAVA_HOME=/home/jdk1.6.0_30
    PATH=$JAVA_HOME/bin:$HADOOP_HOME/bin:$PATH
    CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$HADOOP_HOME/lib:$CLASSPATH
    export HADOOP_HOME
    export JAVA_HOME
    export PATH
    export CLASSPATH

    重启,接着验证环境变量是否配置成功,如下:
    export、echo $HADOOP_HOME、java -version

    下面说说如何配置和启动:
    基本思路是配置core-site.xml、mapred-site.xml、hdfs-site.xml。
    首先建立一个用来存放数据的目录:mkdir /home/hadoop/hadoop-datastore

    打开/home/hadoop/hadoop-0.21.0/conf/core-site.xml,配置如下

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    <configuration>
      <property>
        <name>hadoop.tmp.dir</name>
        <value>/home/hadoop/hadoop-datastore/</value>
        <description>A base for other temporary directories.</description>
      </property>
     
      <property>
       <!--fs.default.name指定NameNode的IP地址和端口号-->
        <name>fs.default.name</name>
        <value>hdfs://localhost:54310</value>
        <description>The name of the default file system.  A URI whose
      scheme and authority determine the FileSystem implementation.  The
      uri's scheme determines the config property (fs.SCHEME.impl) naming
      the FileSystem implementation class.  The uri's authority is used to
      determine the host, port, etc. for a filesystem.</description>
      </property>
    </configuration>

    打开/home/hadoop/hadoop-0.21.0/conf/mapred-site.xml,配置如下

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <configuration>
    <property>
      <name>mapred.job.tracker</name>
      <value>localhost:54311</value>
      <description>The host and port that the MapReduce job tracker runs
      at.  If "local", then jobs are run in-process as a single map
      and reduce task.
      </description>
    </property>
    </configuration>

    打开/home/hadoop/hadoop-0.21.0/conf/hdfs-site.xml,配置如下

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <configuration>
    <property>
    <!--block的副本数,默认为3;你可以设置为1 这样每个block只会存在一份。-->
      <name>dfs.replication</name>
      <value>1</value>
      <description>Default block replication.
      The actual number of replications can be specified when the file is created.
      The default is used if replication is not specified in create time.
      </description>
    </property>
    </configuration>

    ok,配置完毕

    格式化HDFS:
    hadoop@ubuntu:~$ /home/hadoop/hadoop-0.21.0/bin/hadoop namenode -format

    启动HDFS和MapReduce
    hadoop@ubuntu:~/hadoop-0.21.0/bin$ ./start-all.sh

    停止服务的脚本是:
    hadoop@ubuntu:~/hadoop-0.21.0/bin$ ./stop-all.sh

    通过jps查看进程是否启动成功
    hadoop@ubuntu:~/hadoop-0.21.0/bin$ jps
    5695 DataNode
    5503 NameNode
    6181 TaskTracker
    6222 Jps
    5890 SecondaryNameNode
    5991 JobTracker
    hadoop@ubuntu:~/hadoop-0.21.0/bin$
    出现如上信息,表示hadoop启动成功,缺一不可。

    netstat -at|grep 50030
    netstat -at|grep 50070
    查看端口是否正常

    注意:有时候有些启动不成功,可以在/home/hadoop/hadoop-0.21.0/logs/查看日志信息进行诊断。

    访问http://localhost:50070可以看到NameNode以及整个分布式文件系统的状态,浏览分布式文件系统中的文件以及日志等。
    访问http://localhost:50030可以查看JobTracker的运行状态。

    50070是dfs的端口,50030是MR的端口。

    参考资料
    Ubuntu下安装及配置单点hadoop
    http://www.hadoopor.com/thread-2674-1-1.html
    hadoop常见异常总结:
    http://www.tieguanyin168.com/index.php/hadoop-exception-1706.html

  • 相关阅读:
    分类在使用runtime做方法交换时
    打包自己Framework中含有第三方库的解决方案分CocoaPods与手动导入两种方式
    iOS 百分比圆环曲线swift4.0实现
    最新swift4.0 图片进行尺寸大小及体积压缩
    swift 密码由6-16数字和字母组合组成
    Android 7.0 之后相机/文件读写等权限获取方式改变,导致开启相机闪退
    Android Manifest 中 uses-feature 和 uses-permission的作用 关系和区别
    Android studio 3.1.3真机调试报错,no target device found
    如何用Java实现条件编译
    Missing android.support.FILE_PROVIDER_PATHS meta-data 报错原因分析
  • 原文地址:https://www.cnblogs.com/linjiqin/p/3147880.html
Copyright © 2011-2022 走看看