美文网首页
hadoop基本环境搭建

hadoop基本环境搭建

作者: cccccttttyyy | 来源:发表于2018-07-27 09:19 被阅读0次

    hadoop基本环境搭建

    linux配置
    本地模式
    伪分部模式
    完全分布式
    HA架构
    启动方式
    基准测试

    clouder版本说明
    由于配置限制 没有用 CDH 加CM (配置足够的话这两个更方便)直接下载的各个模块 地址:http://archive.cloudera.com/cdh5/cdh/5/
    推荐 jdk 8u144 , jdk 8u40 8u45 and 8u60 8u75 有问题不要用
    建议用cdh 5.13.0 以下的版本

    1. linux配置

    1.配置主机名

    编辑:/etc/sysconfig/network
    内容:

    NETWORKING=yes
    HOSTNAME=master
    

    2.配置dns
    编辑:/etc/resolv.conf
    内容:

    search master
    nameserver 114.114.114.114
    nameserver 114.114.115.115
    

    备用:

    223.5.5.5
    223.6.6.6
    112.124.47.27
    114.215.126.16
    

    3.配置静态ip (IP生效:ifdown 设备名,ifup 设备名)
    编辑:/etc/sysconfig/network-scripts/ifcfg-eno
    内容:

    DEVICE=eth0
    BOOTPROTO=static
    TYPE=Ethernet
    IPADDR=192.168.13.10
    NETMASK=255.255.255.0         //子网掩码
    NETWORK=192.168.13.0         //网络地址
    GATEWAY=192.168.13.2          //网关
    BROADCAST=192.168.13.255  //广播地址
    ONBOOT=yes
    

    4.host配置(scp传到所有机器)
    编辑: /etc/hosts
    格式:

    192.168.13.10 master.cty.com master

    5.yum源配置
    6.安装jdk

    卸载原有包:
    rpm -qa|grep java
    rpm -e --nodeps java-* …
    解压安装包:
    tar -zxfjdk-7u67-linux-x64.tar.gz -C /opt/modules/
    配置环境变量: /etc/profile
    JAVA_HOME=
    PATH=PATH:\JAVA_HOME/bin
    CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

    7.关闭防火墙Selinux

    service iptables status
    chkconfig iptables off
    firewall-cmd --state
    systemctl stop firewalld.service
    systemctl disable firewalld.service #禁止firewall开机启动
    修改/etc/selinux/config文件中设置SELINUX=disabled 然后重启服务器
    8.ssh配置
    确认已安装ssh:
    rpm –qa | grep openssh
    rpm –qa | grep rsync
    master:
    生成密匙对:
    ssh-keygen -t rsa -P ''
    ssh-copy-id 192.168.13.10 (master本机ip)
    ssh-copy-id -i~/.ssh/id_rsa.pub 用户名@对方机器IP

    所有机器:
    chmod 600 ~/.ssh/authorized_keys(且.ssh文件夹应为700)
    root用户下 vi /etc/ssh/sshd_config
    把文件中的下面几条信息的注释去掉: 
    RSAAuthentication yes # 启用 RSA 认证
    PubkeyAuthenticationyes # 启用公钥私钥配对认证方式
    AuthorizedKeysFile.ssh/authorized_keys # 公钥文件路径(和上面生成的文件同)
    重启ssh
    service sshd restart(或systemctl restart sshd.service)
    运行 ps -e | grep ssh,查看是否有sshd进程
    若ssh进程未启动: /etc/init.d/ssh -start
    解决 Agentadmitted failure tosign using the key
    如果出现该错误,则需要在所有的节点都执行 ssh-add ~/.ssh/id_rsa 将私钥加入ssh

    2. 本地模式

    1.简介:

    本地就是单机模式,hadoop默认安装完就是单机模式
    hdfs默认使用本地的文件系统
    hdfs dfs -ls / 查看本地文件系统 和linux的ls/一样

    2.安装解压:

    tar xf /soft/hadoop-2.7.3.tar.gz -C /…
    编辑: /etc/profile
    HADOOP_HOME=…
    编辑: hadoop/etc/hadoop/hadoop-env.sh
    修改jAVA_HOME
    如果需要修改日志存储路径,则需要在conf/hadoop-env.sh文件中增加:
    export HADOOP_LOG_DIR=/home/xxxx/xxxx即可

    3.测试wordcount:

    hadoop jarshare/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.3.jar wordcount /input/output

    3. 伪分部模式

    1.简介

    Hadoop进程以分离的 Java 进程来运行,节点既作为 NameNode 也作为 DataNode,同时,读取的是 HDFS 中的文件。

    2.安装及配置
    在本地模式的基础上
    在hadoop文件夹下建立 tmp name data文件夹
    配置core-site.xml

    <configuration>
    <property>
    <name>fs.defaultFS</name>
    <value>hdfs://master:9000</value>
    </property>
    <property>
    <name>hadoop.tmp.dir</name>
    <value>file:/home/**/hadoop/tmp</value>
    </property> </configuration>
    配置hdfs-site.xml
    <configuration>
    <property>
    <name>dfs.replication</name>
    <value>1</value>
     </property>
    <property>
    <name>dfs.namenode.name.dir</name>
    <value>file:/home/**/hadoop/name</value>
    </property>
    <property>
    <name>dfs.namenode.secondary.http-address</name>
    <value>master.cty.com:50090</value>
    </property>
     <property>
    <name>dfs.datanode.data.dir</name>
    <value>/home/**/hadoop/tmp/data</value>
    </property>
    </configuration>
    

    配置mapred-site.xml

    <configuration>
    <property>
    <name>mapreduce.framework.name</name>
    <value>yarn</value>
    </property>
    <!-- ###########jobhistory############    -->
    <property>
    <name>mapreduce.jobhistory.address</name>
    <value>master.cty.com:10020</value>
    </property>
    <property>
    <name>mapreduce.jobhistory.webapp.address</name>
    <value>master.cty.com:19888</value>
    </property>
    </configuration>
    

    配置yarn-site.xml

    <configuration>
    <property>
    <name>yarn.resourcemanager.hostname</name>
    <value>master</value>
    </property>
    <property>
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</value>
    </property>
    <property>
         <name>yarn.log-aggregation-enable</name>
         <value>true</value>
    </property>
    <property>
         <name>yarn.log-aggregation.retain-seconds</name>
         <value>640800</value>
    </property>
    </configuration>
    

    配置slaves

    Master
    

    格式化
    bin/hadoop namenode -format
    可查看集群状态
    hdfs dfsadmin -report
    进入离开安全模式
    hadoop dfsadmin -safemode leave/enter
    启动JobHistoryServer服务
    sbin/mr-jobhistory-daemon.sh starthistoryserver
    start-balancer.sh(负载均衡)
    hadoop job -kill job_id 杀进程
    通过web 50070端口可查看hdfs信息

    4. 完全分布式

    1.安装及配置

    在本地模式的基础上
    在hadoop文件夹下建立 tmp name data文件夹
    配置core-site.xml
    <<core-site.xml>>
    配置hdfs-site.xml
    <<hdfs-site.xml>>
    配置mapred-site.xml
    <<mapred-site.xml>>
    配置yarn-site.xml
    <<yarn-site.xml>>
    配置slaves
    加入从节点的hostname

    2.启动方式
    各个服务组件逐一启动

    • hdfs
      hadoop-daemon.sh start|stopnamenode|datanode|secondarynamenode
    • yarn
      yarn-daemon.sh start|stop resourcemanager|nodemanager
    • historyserver
      mr-historyserver-daemon.sh start|stop historyserver
      各个模块分开启动
    • hdfs
      start-dfs.sh
      stop-dfs.sh
    • yarn
      start-yarn.sh
      stop-yarn.sh
    • 全部启动
      start-all.sh
      stop-all.sh

    3.基准测试

    • Hdfs io测试:
      TestDFSIO用来测试HDFS的I/O性能,
      以下命令写了10个文件,每个1000MB:
      Hadoop jarshare/hadoop/mapreduce/hadoop-mapreduce-client-jobclient-2.0.0-cdh4.5.0-tests.jarTestDFSIO -write -nrFiles 10 -fileSize 1000
      结果被写入控制台并同时记录在一个本地文件。
      cat TestDFSIO_results.log
      完成基准测试后,可通过参数-clean从HDFS上删除所有生成的文件:
      Hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-client-jobclient-2.0.0-cdh4.5.0-tests.jar TestDFSIO-clean

    • Namenode负载测试:
      nnbench用于测试NameNode的负载,它会生成很多与HDFS相关的请求,给NameNode施加较大的压力。这个测试能在HDFS上创建、读取、重命名和删除文件操作。
      以下例子使用10个mapper和5个reducer来创建1000个文件
      hadoop jarshare/hadoop/mapreduce/hadoop-mapreduce-client-jobclient-2.0.0-cdh4.5.0-tests.jarnnbench -operation create_write -maps 10 -reduces 5 -numberOfFiles 1000-replicationFactorPerFile 3 -readFileAfterOpen true

    • mrbench会多次重复执行一个小作业,用于检查在机群上小作业的运行是否可重复以及运行是否高效。
      hadoop jarshare/hadoop/mapreduce/hadoop-mapreduce-client-jobclient-2.0.0-cdh4.5.0-tests.jarmrbench -numRuns 50

      hadoop jarshare/hadoop/mapreduce/hadoop-mapreduce-client-jobclient-2.0.0-cdh4.5.0-tests.jarmrbench -numRuns 10 -inputLines 100000 -maps 100 -reduces 5

    • example测试:
      其中最常用的是teragen/terasort/teravalidate,一个完整的terasort测试由三个步骤组成:1)teragen产生数据;2)terasort执行排序;3)teravalidate验证排序结果。其运行命令参数如下:
      terasort产生数据:
      hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.0.0-cdh4.5.0.jar teragen10000000 /examples/terasort-input
      排序数据:
      hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.0.0-cdh4.5.0.jar terasort /examples/terasort-input /examples/terasort-output
      验证是否有序:
      hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.0.0-cdh4.5.0.jarteravalidate /examples/terasort-output /examples/terasort-validate
      teravalidate执行验证操作时会输出排序错误的key,当输出结果为空时,表示排序正确
      wordcount:现将一个文本文件put到hdfs中,执行
      hadoop jarshare/hadoop/mapreduce/hadoop-mapreduce-examples-2.0.0-cdh4.5.0.jarwordcount /input /output

    5. HA架构

    1.需要zookeeper实现自动切换
    2.实现局域网内时间同步 ntp
    安装ntp
    编辑:/etc/ntp.conf
    #restrict 192.168.1.0 mask 255.255.255.0nomodify notrap 去注释改成正确网络号
    server 0.centos.pool.ntp.org iburst 此行及以下注释掉
    server1.centos.pool.ntp.org iburst
    server2.centos.pool.ntp.org iburst
    编辑 :/etc/sysconfig/ntpd
    #Drop root to id 'ntp:ntp' by default.
    SYNC_HWCLOCK=yes
    OPTIONS="-untp:ntp -p /var/run/ntpd.pid -g"
    servicentpd status
    servicentpd start
    chkconfigntpd on
    用crontab -e
    定时执行Ntpdate master.cty.com
    3.配置
    <<core-site.xml>>
    <<hdfs-site.xml>>
    缺失的配置文件真的需要的话 可以查找我的onenote笔记
    地址:github.com/cccccttttyyy/Mynote

    相关文章

      网友评论

          本文标题:hadoop基本环境搭建

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