• 【大数据之Hadoop篇】【1】hadoop集成环境搭建


    1. 环境准备

      1) hadoop集成环境至少需要三台虚拟机,所以先搭建一台ubuntu的虚拟机,配置好java环境,再克隆两台;

      2) 修改主机名,sudo  vim /etc/hostname,三台主机的名称分别为master、slave1、slave2。

      3) 配置上网环境,设置静态ip,sudo  vim /etc/network/interfaces,重启网络,sudo /etc/init.d/networking restart

    auto eth0
    iface eth0 inet static
            address 192.168.204.130
            netmask 255.255.255.0
            gateway 192.168.204.2
            dns-nameservers 192.168.204.2

    2. 修改hosts文件

      1) 将三台虚拟机的ip地址都转换成域名访问,sudo vim /etc/hosts,格式如下:

        ip1 master

        ip2 slave1

        ip3 slave2

    3. ssh免密码登陆

      1) 安装ssh,sudo apt-get ssh

      2) 生成ssh密钥对,ssh-keygen -t rsa

      3) 配置本地无密码登陆,cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

      4) 测试本地无密码登陆,ssh localhost

      5) 分发master主节点的公钥,

        scp ~/.ssh/id_rsa.pub slave1:~/

        scp ~/.ssh/id_rsa.pub slave2:~/

      6) 将公钥追加到authorized_keys,cat ~/id_rsa.pub >> ~/.ssh/authorized_keys

      7) 验证是否相互之间是否可以无密码登陆,ssh master、ssh slave1、ssh slave2

      注释:此处的三台虚拟机的authorized_keys,最好都含有三台主机的ssh公钥。

    4. hadoop安装

      1) 下载hadoop

      2) 解压并移动到/usr/local文件夹中

        tar -zxvf hadoop2.6.4.tar.gz

        sudo mv hadoop2.6.4 /usr/local/hadoop

    5. 配置hadoop环境变量

      1) 在配置文件中追加环境变量, sudo vim /etc/profile,如下:

    export JAVA_HOME=/usr/lib/jvm/jdk
    export HADOOP_HOME=/usr/local/hadoop
    export PATH=$PATH:$HADOOP_HOME/bin
    export PATH=$PATH:$HADOOP_HOME/sbin
    export HADOOP_MAPRED_HOME=$HADOOP_HOME
    export HADOOP_COMMON_HOME=$HADOOP_HOME
    export HADOOP_HDFS_HOME=$HADOOP_HOME
    export YARN_HOME=$HADOOP_HOME
    export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
    export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
    export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib:$HADOOP_HOME/lib/native"

        注释:如果显示更详细的Hadoop启动和运行信息,添加export HADOOP_ROOT_LOGGER=DEBUG,console,不过一般不推荐用

    6. 编辑hadoop配置文件

      1) hadoop-env.sh,添加java环境变量

        export JAVA_HOME=/usr/lib/jvm/jdk

      2) core-site.xml,创建临时目录/home/gmr/tmp,这里一定要在用户名下,不然hadoop启动后,通过web检查显示为Unhealthy nodes

    <property>
            <name>fs.defaultFS</name>
            <value>hdfs://master:9000</value>
    </property>
    <property>
            <name>io.file.buffer.size</name>
            <value>131072</value>
    </property>
    <property>
            <name>hadoop.tmp.dir</name>
            <value>file:/home/gmr/tmp</value>
    </property>
    <property>
            <name>hadoop.proxyuser.hduser.hosts</name>
            <value>*</value>
    </property>
    <property>
            <name>hadoop.proxyuser.hduser.groups</name>
            <value>*</value>
    </property>

      3) yarn-site.xml

    <property>
            <name>yarn.nodemanager.aux-services</name>
            <value>mapreduce_shuffle</value>
    </property>
    <property>
            <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
            <value>org.apache.hadoop.mapred.ShuffleHandler</value>
    </property>
    <property>
            <name>yarn.resourcemanager.address</name>
            <value>master:8032</value>
    </property>
    <property>
            <name>yarn.resourcemanager.scheduler.address</name>
            <value>master:8030</value>
    </property>
    <property>
            <name>yarn.resourcemanager.resource-tracker.address</name>
            <value>master:8031</value>
    </property>
    <property>
            <name>yarn.resourcemanager.admin.address</name>
            <value>master:8033</value>
    </property>
    <property>
            <name>yarn.resourcemanager.webapp.address</name>
            <value>master:8088</value>
    </property>

      4) mapred-site.xml

    <property>
            <name>mapreduce.framework.name</name>
            <value>yarn</value>
    </property>
    <property>
            <name>mapreduce.jobhistory.address</name>
            <value>master:10020</value>
    </property>
    <property>
            <name>mapreduce.jobhistory.webapp.address</name>
            <value>master:19888</value>
    </property>

      5) 创建namenode和datanode目录

        mkdir -p ~/hdfs/namenode

        mkdir -p ~/hdfs/namenode

        sudo mv ~/hdfs /hdfs

      6) hdfs-site.xml

    <property>
            <name>dfs.namenode.secondary.http-address</name>
            <value>master:9001</value>
    </property>
    <property>
            <name>dfs.namenode.name.dir</name>
            <value>file:/hdfs/namenode</value>
    </property>
    <property>
            <name>dfs.datanode.data.dir</name>
            <value>file:/hdfs/datanode</value>
    </property>
    <property>
            <name>dfs.replication</name>
            <value>2</value>
    </property>
    <property>
            <name>dfs.webhdfs.enabled</name>
            <value>true</value>
    </property>

      7) 配置masters和slaves文件

        由于在/usr/local/hadoop/etc/hadoop/目录中没有masters文件,所以需要创建,cp slaves masters

        在masters文件中删除所有,并添加master

        在slaves文件中删除所有,并添加slave1、slave2

      8) 分发配置好的hadoop到所有节点,并移动到/usr/local/hadoop

        scp /usr/local/hadoop slave1:~/

        scp /usr/local/hadoop slave2:~/

        sudo mv ~/hadoop /usr/local/hadoop

    7. 格式化namenode

      hadoop namenode -format

    8. 启动hadoop

      start-all.sh

    9. 验证hadoop集成环境是否正确搭建

      1) jps命令查看

        

        

        

      2) 网页查看

        

        

      3) 启动JobHistoryServer进程的命令

        mr-jobhistory-daemon.sh start historyserver

      

    10. 运行示例程序

      1) 创建hdfs文件夹,hadoop fs -mkdir -p input 

      2) 将本地文件传到hdfs文件夹中,hadoop fs -put test.txt input

      3) 执行作业命令,hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.6.4.jar grep input output 'dfs[a-z.]+'

      4) 查看结果,hadoop fs -cat output/part-r-00000

      5) 可以根据网页来查看作业进度等信息,http://master:8088

  • 相关阅读:
    SQL 高级语法 (一)
    SQL 基础语法
    Memcache数据备份和还原
    OSPF原理及配置
    kubernetes全栈监控部署
    非容器化Jenkins连接Kubernetes
    Jenkins+Ansible安装部署
    Gitlab+Nexus Maven部署
    部署docker私有仓库Harbor
    LVS实现Kubernetes集群高可用
  • 原文地址:https://www.cnblogs.com/guomeiran/p/5717310.html
Copyright © 2020-2023  润新知