• Hadoop部署


    前期准备
    (1)JAVA_HOME:因为Hadoop的配置文件中依赖 $JAVA_HOME。修改/etc/profile文件。
    (2)hostname:修改主机名,方便管理。/etc/sysconfig/network。
    (3)ip hostname:方便管理,hadoop默认是使用hostname作为ip的域名。/etc/hosts。
    (4)iptables stop:关闭防火墙,由于集群需要用到的端口比较多,所以最好是先关掉。7版本:systemctl stop firewalld
    (5)visudo:赋予sudo权限,CentOS中其他用户都没有sudo权限。/etc/sudoers。
    (6)chown:更改hadoop文件夹的所有者。sudo chown -R user:group hadoop。
    (7)验证:在hadoop根目录输入 bin/hadoop,验证是否配置正常。
    (8)hadoop-env.sh添加 JAVA_HOME变量。
     
    1,单机部署
    ··· 以wordcount为例:
        (1)输入数据:在根目录下创建 wcinput文件夹,并添加word.txt文件。
        (2)执行命令:bin/hadoop jar share/hadoop/mapreduce/......jar wordcount wcinput wcoutput   # 注意:根目录不能存在wcoutput目录,必须由hadoop创建。
        (3)查看输出:cat wcoutput/part-00000。
     
    2,伪分布式部署
    ··· 以wordcount为例:
        (1)修改core-site.xml 文件
                <configuration>
                    <!-- 用来指定默认文件系统的名称以及NameNode服务的主机和端口号
                    注意:下面的mini主机名要改成你本机的实际的hostname -->
                    <property>
                        <name>fs.defaultFS</name>
                        <value>hdfs://hostname:8020</value>
                    </property>
     
                    <!-- 配置hadoop临时保存目录
                    注意:目录名和你安装的目录名要对应 -->
                    <property>
                        <name>hadoop.tmp.dir</name>
                        <value>/opt/app/hadoop/data/tmp</value>
                    </property>
                </configuration>
        (2)修改hdfs-site.xml文件
                <configuration>
                    <!-- 用来指定Hadoop中每一个数据的副本数,默认都是3,但是在伪分布式中只有一个节点,所以这个
                    值必须设置为1 -->
                    <property>
                        <name>dfs.replication</name>
                        <value>1</value>
                    </property>
                </configuration>
        (3)对HDFS进行格式化
                bin/hadoop namendoe -format
                注意:只可以格式化一次,如果再次格式化,需要删除配置的临时文件目录 data文件夹
        (4)启动NameNode和DataNode进程
                sbin/hadoop-daemon.sh start namenode
                sbin/hadoop-daemon.sh start datanode
                注意:
                    启动NameNode时一定要联网。
                    可以通过jps查看进程是否启动。
                    可以通过web访问HDFS(http://主机IP(或域名):50070/explorer.html#
        (5)上传文件到HDFS
                创建文件夹:bin/hdfs dfs -mkdir /input
                添加文件到HDFS的input目录:bin/hdfs dfs -put input.txt  /input
                查看是否上传成功:bin/hdfs dfs -ls /input
        (6)运行与查看
                运行:bin/hadoop  jar  share/..../....jar  wordcount  /input  /output
                查看结果:bin/hdfs dfs -cat /output/par*
     
    ··· 在YARN上运行MapReduce
        (1)复制一份 mapred-site.xml文件
                cp mapred-site.xml.template  mapred-site.xml
        (2)配置 MapReduce的计算框架为yarn
                <!-- 配置MapReduce的计算框架,可以是local,classic,yarn,如果不配置,默认是local -->
                <property>
                    <name>mapreduce.framework.name</name>
                    <value>yarn</value>
                </property>
        (3)配置yarn-site.xml文件
                <!-- 设置该属性通知NodeManager需要实现名为mapreduce.shuffle的辅助服务-->
                <property>
                    <name>yarn.nodemanager.aux-services</name>
                    <value>mapreduce_shuffle</value>
                </property>
        (4)启动
                sbin/yarn-daemon.sh start resourcemanager
                sbin/yarn-daemon.sh start nodemanager
                或者:start-yarn.sh
                通过:http://hostname:8088 查看yarn上执行的程序。
     
    ··· 配置历史服务器和日志聚集:
        (1)配置mapred-site.xml文件
                <!-- 配置历史服务器的地址 -->
                <property>
                    <name>mapreduce.jobhistory.address</name>
                    <value>mini:10020</value>
                </property>
     
                <!-- 配置历史服务器的web展示地址,以及端口号 -->
                <property>
                    <name>mapreduce.jobhistory.webapp.address</name>
                    <value>mini:19888</value>
                </property>
     
        (2)启动
            sbin/mr-jobhistory-daemon.sh start historyserver  # 启动历史服务器
            查看:http://hadoop11:19888
     
        (3)日志聚集
            作用:在MR任务运行结束后,将相关的运行日志上传到HDFS文件系统中。
            配置yarn-site.xml文件:
                <!-- 配置日志聚集属性-->
                <property>
                    <name>yarn.log-aggregation-enable</name>
                    <value>true</value>
                </property>
     
                <!-- 配置日志聚集的时间 (7天) -->
                <property>
                    <name>yarn.log-aggregation.retain-seconds</name>
                    <value>604800</value>
                </property>
            配置完后需要 重启 历史服务器和 yarn
     
    ··· 注意事项:
        · start-dfs.sh 可以一次启动NameNode、DataNode和 SecondaryNameNode,但是需要输入三次密码,可以通                    过设置本地免密登录,来面输密码;ssh-copy-id -i ~/.ssh/id_rsa.pub  shendeng@hadoop11(本地主机名)。
        · start-yarn.sh 可以一次启动 resourcemanager和nodemanager。
     
    3,完全分布式
    ··· 集群规划
    hadoop11
    hadoop22
    hadoop33
    NameNode
    ResourceManager SecondaryNameNode
    DataNode
    DataNode
    DataNode
    NodeManager
    NodeManager
    NodeManager
     
     
    HistoryServer
     
    ··· 5个配置文件
    · core-site.xml:配置hadoop的文件系统为hdfs以及地址、临时文件夹位置。
    · hdfs-site.xml:配置SecondaryNameNode的主机地址、NameNode的web地址、关闭文件系统的权限控制。
    · yarn-site.xml:配置ResourceManager主机的位置、shuffle服务、开启日志聚集功能、日志保存的时间。
    · mapred-site.xml:配置MapReduce的计算框架为yarn、MapReduce历史记录地址、历史记录web地址。
    · slaves:在该文件中添加从节点的主机名(注意不能有空格)。
    具体配置文件 提取码:0gkn
     
    ··· 启动
    · 复制配置文件:
        将配置文件复制到其他节点上。scp -r /opt/app/hadoop27/etc/hadoop/   hadoop22:/opt/app/hadoop27/etc/
    · 初始化NameNode节点:
        注意:必须删除 /tmp和 hadoop根目录中的 data/tmp文件,否则无法初始化
        在部署NameNode的节点上初始化NameNode。hadoop namenode -format
    · 启动守护进程
        在部署NameNode的节点上启动 HDFS。start-hdfs.sh
        在部署resourcemanager的节点上启动YARN。start-yarn.sh
  • 相关阅读:
    Linux环境变量$PATH
    grep
    echo命令
    ip命令
    浅析Linux下的/etc/profile、/etc/bashrc、~/.bash_profile、~/.bashrc文件
    shell脚本4种执行方式
    /proc路径
    tr命令
    Linux命令cut
    前端论坛网站知识
  • 原文地址:https://www.cnblogs.com/shendeng23/p/12375161.html
Copyright © 2020-2023  润新知