美文网首页
Hdopp 伪分布式环境构建-基于Ubuntu 16.04

Hdopp 伪分布式环境构建-基于Ubuntu 16.04

作者: simon000 | 来源:发表于2017-06-12 23:02 被阅读21次

    基础环境

    1)机器 MacBookPro,2.7 GHz Intel Core i5,8G
    2)虚拟机安装 Ubuntu 16.04 64-bit

    配置java环境

    不知是否是安装原因,我下载安装的ubuntu 环境不带java,所以自行安装配置了java,主要步骤如下:
    1)下载jdk(jdk-8u111-linux-x64.tar.gz)
    链接:http://www.oracle.com/technetwork/cn/java/javase/downloads/jdk8-downloads-2133151-zhs.html
    ps.在国内选择中文版本网站,不知为什么外文版本的网站一直无法下载
    2)解压安装

    aa@ubuntu:~$ sudo mkdir -p /usr/lib/jvm  
    aa@ubuntu:~$ sudo mv jdk-8u111-linux-x64.tar.gz /usr/lib/jvm  
    aa@ubuntu:~$ cd /usr/lib/jvm  
    aa@ubuntu:~$ sudo tar xzvf jdk-8u111-linux-x64.tar.gz  
    aa@ubuntu:~$ sudo ln -s jdk1.8.0_111 java-8  
    

    3)设置环境变量

    aa@ubuntu:~$ cd 
    aa@ubuntu:~$ vim .bashrc
    

    在最后添加

    export JAVA_HOME=/usr/lib/jvm/java-8  
    export JRE_HOME=${JAVA_HOME}/jre  
    export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib  
    export PATH=${JAVA_HOME}/bin:$PATH 
    

    保存退出,并通过命令使脚本生效:

    aa@ubuntu:~$ cd 
    aa@ubuntu:~$ source .bashrc
    

    4)检查是否配置成功,如果出现以下则证明已经配置完成

    aa@ubuntu:~$ java -version 
    java version "1.8.0_111"
    Java(TM) SE Runtime Environment (build 1.8.0_111-b14)
    Java HotSpot(TM) 64-Bit Server VM (build 25.111-b14, mixed mode)
    

    配置hadoop 伪分布环境

    Hadoop 的安装分为本地模式伪分布模式集群模式。本地模式是运行在本地,只负责存储,没有计算功能;伪分布模式是在一台机器上模拟分布式部署,方便学习和调试;集群模式是在多个机器上配置hadoop,是真正的分布式。个人使用,只部署伪分布式,主要步骤如下。

    文件均放在/home/aa/jike/目录下

    aa@ubuntu:~/jike$ tree -L 1
    .
    ├── jdk1.8.0_111
    └── soft
    

    1)下载hadoop 1.2.1 稳定版(jdk-8u111-linux-x64.tar.gz)
    链接:https://archive.apache.org/dist/hadoop/common/stable1/hadoop-1.2.1.tar.gz

    2)解压到/home/aa/jike/目录下

    aa@ubuntu:~/jike$ tree -L 1
    .
    ├── hadoop-1.2.1
    ├── jdk1.8.0_111
    └── soft
    

    3)进入/home/aa/jike/hadoop-1.2.1/conf,需要配置的核心文件有4个

    .
    ├── core-site.xml //配置namenode和默认临时路径
    ├── hadoop-env.sh //配置java路径
    ├── hdfs-site.xml //配置hdfs备份的方式
    └── mapred-site.xml //配置job.tracker端口
    

    core-site.xml 配置
    需要首先创建临时目录的路径/jike/tmp/hadoop

    <configuration>
            <property>
                    <name>fs.default.name</name>
                    <value>hdfs://127.0.0.1:9000</value>  //本机ip地址,或者本机名称
            </property>
            <property>
                    <name>hadoop.tmp.dir</name>
                    <value>/home/aa/jike/tmp/hadoop</value> //hadoop默认临时路径
            </property>
    </configuration>
    

    hadoop-env.sh 配置
    JAVA_HOME行的注释去掉,添加对应的JAVA_HOME地址,如以上配置,本次的地址为/usr/lib/jvm/java-8

    # Set Hadoop-specific environment variables here.
    
    # The only required environment variable is JAVA_HOME.  All others are
    # optional.  When running a distributed configuration it is best to
    # set JAVA_HOME in this file, so that it is correctly defined on
    # remote nodes.
    
    # The java implementation to use.  Required.
     export JAVA_HOME=/usr/lib/jvm/java-8
    

    hdfs-site.xml 配置
    因为是单机环境,只配置一个副本,实际应用至少为3个

    <configuration>
            <property>
                    <name>dfs.replication</name>
                    <value>1</value>
            </property>
    </configuration>
    

    mapred-site.xml 配置

    <configuration>
            <property>
                    <name>mapred.job.tracker</name>
                    <value>127.0.0.1:9001</value>
            </property>
    </configuration>
    

    4)配置bashrc

    aa@ubuntu:~$ cd 
    aa@ubuntu:~$ vim .bashrc
    

    添加HADOOP_PATH

    # set hadoop path
    export HADOOP_HOME=/home/aa/jike/hadoop-1.2.1
    export PATH=$HADOOP_HOME/bin:$PATH
    ## 防止出现$HADOOP_PATH is deprecated警告,添加以下语句
    export HADOOP_HOME_WARN_SUPPRESS=1 
    

    5)测试配置情况,如果出现以下则基础配置完成

    aa@ubuntu:~$ hadoop version
    Hadoop 1.2.1
    Subversion https://svn.apache.org/repos/asf/hadoop/common/branches/branch-1.2 -r 1503152
    Compiled by mattf on Mon Jul 22 15:23:09 PDT 2013
    From source with checksum 6923c86528809c4e7e6f493b6b413a9a
    This command was run using /home/simon/jike/hadoop-1.2.1/hadoop-core-1.2.1.jar
    

    6)格式化 namenode,如下则格式化完成

    aa@ubuntu:~$ hadoop namenode -format
    17/05/06 19:09:05 INFO namenode.NameNode: STARTUP_MSG: 
    /************************************************************
    STARTUP_MSG: Starting NameNode
    STARTUP_MSG:   host = ubuntu/127.0.1.1
    STARTUP_MSG:   args = [-format]
    STARTUP_MSG:   version = 1.2.1
    STARTUP_MSG:   build = https://svn.apache.org/repos/asf/hadoop/common/branches/branch-1.2 -r 1503152; compiled by 'mattf' on Mon Jul 22 15:23:09 PDT 2013
    STARTUP_MSG:   java = 1.8.0_111
    ************************************************************/
    17/05/06 19:09:05 INFO util.GSet: Computing capacity for map BlocksMap
    17/05/06 19:09:05 INFO util.GSet: VM type       = 64-bit
    17/05/06 19:09:05 INFO util.GSet: 2.0% max memory = 932184064
    17/05/06 19:09:05 INFO util.GSet: capacity      = 2^21 = 2097152 entries
    17/05/06 19:09:05 INFO util.GSet: recommended=2097152, actual=2097152
    17/05/06 19:09:06 INFO namenode.FSNamesystem: fsOwner=simon
    17/05/06 19:09:06 INFO namenode.FSNamesystem: supergroup=supergroup
    17/05/06 19:09:06 INFO namenode.FSNamesystem: isPermissionEnabled=true
    17/05/06 19:09:06 INFO namenode.FSNamesystem: dfs.block.invalidate.limit=100
    17/05/06 19:09:06 INFO namenode.FSNamesystem: isAccessTokenEnabled=false accessKeyUpdateInterval=0 min(s), accessTokenLifetime=0 min(s)
    17/05/06 19:09:06 INFO namenode.FSEditLog: dfs.namenode.edits.toleration.length = 0
    17/05/06 19:09:06 INFO namenode.NameNode: Caching file names occuring more than 10 times 
    17/05/06 19:09:06 INFO common.Storage: Image file /home/aa/jike/tmp/hadoop/dfs/name/current/fsimage of size 111 bytes saved in 0 seconds.
    17/05/06 19:09:06 INFO namenode.FSEditLog: closing edit log: position=4, editlog=/home/aa/jike/tmp/hadoop/dfs/name/current/edits
    17/05/06 19:09:06 INFO namenode.FSEditLog: close success: truncate to 4, editlog=/home/aa/jike/tmp/hadoop/dfs/name/current/edits
    17/05/06 19:09:06 INFO common.Storage: Storage directory /home/aa/jike/tmp/hadoop/dfs/name has been successfully formatted.
    17/05/06 19:09:06 INFO namenode.NameNode: SHUTDOWN_MSG: 
    /************************************************************
    SHUTDOWN_MSG: Shutting down NameNode at ubuntu/127.0.1.1
    ************************************************************/
    

    初次启动过程中,出现了bug,系统提示:

    connect to host localhost port 22: Connection refused
    

    经过查询得知ubuntu默认自带了ssh服务,但没有sshd服务。如果只是想登陆别的机器的SSH只需要安装openssh-client,如果要使本机开放SSH服务就需要安装openssh-server,重启ubuntu之后再启动hdfs和mapreduce就都正常启动了

    aa@ubuntu:~$ sudo apt-get install openssh-server
    

    6)启动系统:一次性全部启动

    aa@ubuntu:~$ cd 
    aa@ubuntu:~$ start-all.sh
    

    启动后会有5个进程

    aa@ubuntu:~$ jps
    17490 Jps
    3283 DataNode
    3080 NameNode
    3833 TaskTracker
    3465 SecondaryNameNode
    3646 JobTracker
    

    启动系统:分别启动HDFS和MapReduce

    aa@ubuntu:~$ cd 
    aa@ubuntu:~$ start-dfs.sh  //启动hdfs
    

    关闭的命令是 stop-dfs.sh
    执行完该命令后,通过jps能够看到NameNode、DataNode 、SecondaryNameNode 三个进程启动了

    aa@ubuntu:~$ start-mapred.sh  //启动MapReduce
    

    关闭的命令是 stop-mapred.sh
    执行完该命令后,通过jps能够看jobtracker、 tasktracker两个进程启动了。

    也可以先启动MapReduce,再启动 HDFS。这说明,HDFS 和 MapReduce 的进程之间是互相独立的,没有依赖关系。

    参考资料

    1. 百度传课教程-Hive 环境搭建
    2. Ubuntu 14.04 安装 JDK 8
    3. hadoop环境搭建(伪分布式)

    相关文章

      网友评论

          本文标题:Hdopp 伪分布式环境构建-基于Ubuntu 16.04

          本文链接:https://www.haomeiwen.com/subject/ltprqxtx.html