Hadoop-2.6.0完全分布式搭建

时间:2022-09-24 20:50:08

准备工作:
Ubuntu14.04镜像文件;
xshell;
xftp;
virtualbox;
开始安装:

  • 装好Ubuntu虚拟机;

  • 在虚拟机上安装openssh server
    apt-get -y install openssh-server

  • 安装vim
    apt-get -y install vim

  • 修改主机名
    vim /etc/hostname
    将三台机器的主机名分别修改成Master,Slave1,Slave2

  • 安装JDK&&环境变量的配置
    ps:此处有两种安装方式,在线或离线,网络较好推荐在线安装,但是如果网络不好,尽量使用离线安装
    在线安装:

    sudo add-apt-repository ppa:webupd8team/java
    sudo apt update
    sudo apt install oracle-java7-installer

    安装完成后配置环境变量

    sudo vim ~/.bashrc
    加入export JAVA_HOME=/usr/lib/jvm/java-7-oracle
    source ~/.bashrc(使配置生效,这一步非常重要)

    离线安装:
    先到官网下载你所需要的JDK安装包
    JDK下载链接
    创建JDK所需要的文件夹

    sudo mkdir /usr/local/java

    将JDK复制到该目录下

    cp jdk-8u25-linux-x64.tar.gz /usr/local/java

    进入java目录并解压JDK

    cd /usr/local/java
    sudo tar -zxvf jdk-8u25-linux-x64.tar.gz

    删除压缩包

    sudo rm -r jdk-8u25-linux-x64.tar.gz

    配置环境变量

    export JAVA_HOME=/usr/local/java/jdk1.8.0_25  
    export JRE_HOME=${JAVA_HOME}/jre
    export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
    export PATH=${JAVA_HOME}/bin:$PATH
    最后运行source ~/.bashrc使配置生效
  • 修改三台机器的IP地址为静态

    vim /etc/network/interface
    加上如下内容
    Auto eth0
    Iface eth0 inet static
    Address 192.168.1.100
    Netmask 255.255.255.0
    Gateway 192.168.1.1
    保存并退出
    vim /etc/resolv.conf
    加上如下内容
    Nameserver 192.168.1.1
    Nameserver 220.170.64.68
    保存并退出
    vim /etc/resolvconf/resolv.conf.d/base
    加上如下内容
    Nameserver 192.168.1.1
    Nameserver 220.170.64.68
    保存并退出

    ps:使用静态IP相比动态IP要更方便一些,如果频繁更换网络环境,后期还要不断跟进修改host文件中的IP地址

  • 修改hosts文件

    sudo vim /etc/hosts
    加入如下内容
    192.168.1.100 Master
    192.168.1.101 Slave1
    192.168.1.102 Slave2
    这里的IP地址和主机名改成与自己相对应的就行
  • 设置免密登陆
    在master机器上输入如下命令

    ssh-keygen(然后一路回车)
    ssh-copy-id 用户名@192.168.1.101
    ssh-copy-id 用户名@192.168.1.102
    此处用户名是你另外两台机器的用户名,后面则是对应的IP地址,这样的操作在三台机器上都要进行,将对应的内容替换就行
    ps:建议三台机器的用户名一致,更方便操作,避免记混
  • 下载&&安装Hadoop

    下载:
    http://apache.fayea.com/hadoop/common/hadoop-2.6.0/hadoop-2.6.0.tar.gz

    将这段链接复制到迅雷之类的下载工具,下载完毕后用xftp上传到Ubuntu里面即可

    安装:

    sudo tar -zxvf hadoop-2.6.0.tar.gz -C /usr/local
    sudo mv /usr/local/hadoop-2.6.0 /usr/local/hadoop
    sudo chown -R 用户名:用户名 /usr/local/hadoop
    ps:此处是修改文件所属的组和用户,将hadoop文件归为你之前设置免密登陆的用户和组,避免后续免密登陆出现权限方面的问题

    最后输入如下命令验证Hadoop是否安装成功

    /usr/local/hadoop/bin/hadop
    如果输出一串英文则表明hadoop安装成功

    配置环境变量:

    sudo vim ~/.bashrc
    加上如下内容
    export HADOOP_INSTALL=/usr/local/hadoop
    export PATH=$PATH:$HADOOP_INSTALL/bin
    export PATH=$PATH:$HADOOP_INSTALL/sbin
    export HADOOP_MAPRED_HOME=$HADOOP_INSTALL
    export HADOOP_COMMON_HOME=$HADOOP_INSTALL
    export HADOOP_HDFS_HOME=$HADOOP_INSTALL
    export YARN_HOME=$HADOOP_INSTALL
    最后输入source ~/.bashrc使配置生效
    此时输入hdfs,如果看见相关提示,则说明安装成功了

    创建hadoop所需要的目录

    Sudo mkdir /home/Hadoop
    sudo chown –R 用户名:用户名 /home/Hadoop
    mkdir /home/Hadoop/Hadoop-2.6.0
    mkdir /home/Hadoop/Hadoop-2.6.0/tmp
    mkdir /home/Hadoop/Hadoop-2.6.0/dfs
    mkdir /home/Hadoop/Hadoop-2.6.0/dfs/name
    mkdir /home/Hadoop/Hadoop-2.6.0/dfs/data
    ps:此处修改权限与上面同理
  • 修改配置文件
    请仔细对比,避免出错

    vim /usr/local/hadoop/etc/hadoop/hadoop-env.sh
    加上如下内容
    export JAVA_HOME=/usr/local/java/jdk1.8.0_25
    vim /usr/local/hadoop/etc/hadoop/core-site.xml
    <configuration></configuration>中加上如下内容
    <property>
    <name>hadoop.tmp.dir</name>
    <value>/home/hadoop/hadoop-2.6.0/tmp</value>
    <description>Abase for other temporary directories.</description>
    </property>
    <property>
    <name>fs.default.name</name>
    <value>hdfs://Master:9000</value>
    </property>
    ps:此处Master就是你Master节点的主机名
    vim /usr/local/hadoop/etc/hadoop/hdfs-site.xml
    在<configuration></configuration>中加上如下内容
    <property>
    <name>dfs.name.dir</name>
    <value>/home/hadoop/hadoop-2.6.0/dfs/name</value>
    <description>Path on the local filesystem where the NameNode stores the namespace and transactions logs persistently.</description>
    </property>
    <property>
    <name>dfs.data.dir</name>
    <value>/home/hadoop/hadoop-2.6.0/dfs/data</value>
    <description>Comma separated list of paths on the local filesystem of a DataNode where it should store its blocks.</description>
    </property>
    <property>
    <name>dfs.replication</name>
    <value>1</value>
    </property>
    vim /usr/local/hadoop/etc/hadoop/mapred-site.xml.template
    在<configuration></configuration>中加上如下内容
    <property>
    <name>mapred.job.tracker</name>
    <value>Master:9001</value>
    <description>Host or IP and port of JobTracker.</description>
    </property>
    ps:此处Master同上
    cp /usr/local/hadoop/etc/hadoop/mapred-site.xml.template /usr/local/hadoop/etc/hadoop/mapred-site.xml
    vim /usr/local/hadoop/etc/hadoop/slaves
    将localhost删掉,加上如下内容
    Slave1
    Slave2
    vim /usr/local/hadoop/etc/hadoop/masters
    加上如下内容
    Masters
  • 格式化HDFS文件系统的namenode

    cd /usr/local/hadoop && bin/hdfs namenode -format
    ps:三台机器都要做
  • 启动hadoop集群

    /usr/local/hadoop/sbin/start-dfs.sh 开启
    /usr/local/hadoop/sbin/stop-dfs.sh 关闭

    启动完成之后分别在三台机器上输入jps查看输出,如果master节点上成功启动了SecondarynNameNode,NameNode,Jps这三个进程,两台slave节点上都成功启动了DataNode,Jps这三个进程,那么恭喜你,你的Hadoop完全分布式集群已经搭建成功了

  • Hadoop基本操作

    hadoop fs -mkdir /test/ //在HDFS上创建test文件文件夹
    hadoop fs -ls / //查看hadoop的根目录下有哪些文件夹或文件
    hadoop fs -put test //上传test文件到hadoop里面
    hadoop fs -rm /test //删除hadoop根目录下的test文件
    ps:其实在Hadoop里面进行文件操作的时候和我们在Linux里面差不多,只需要在命令前面加上hadoop fs然后命令加上-就好,掌握规律可以自己尝试些命令
  • 可能出现的问题

    在安装完成后输入jps并不能正确地看到我们想要的输出,而是提示jps包含在如下…这个是我们环境变量没有配置好,不管之前是否有效准确地执行了配置环境变量的那一步,重新配置一遍,记得一定要source一遍让配置生效

    输入jps之后发现启动的进程少了一些,这时候需要自己去看日志文件来解决了,日志文件的目录是usr/local/hadoop/logs在里面找那种提示错误的信息,然后粘贴到百度里面,大部分问题应该都是能够解决的

  • 后记

    本人也就刚接触大数据Hadoop这个东西,最开始搭建集群也是错误百出,之后参考了Ypersistence大神关于搭建Hadoop的博客,一步一步排除各种问题终究还是搭建成功了,写这篇博客也是为了记录我的学习进程,记录曾今遇到的问题。

    ps:如下是我搭建Hadoop集群时参考的相关资料
    Ubuntu设置静态IP:http://jingyan.baidu.com/article/e5c39bf5bbe0e739d7603396.html
    Ypersistence关于搭建Hadoop的博客:http://blog.csdn.net/ypersistence/article/details/53448632