zoukankan      html  css  js  c++  java
  • 第三篇 hadoop安装

    前期准备

    需要把hadoop-2.7.3.tar.gz拷贝到/usr/local/src/目录下,并进行解压
    进入到/usr/local/src/目录下进行解压命令

    tar -zxvf hadoop-2.7.3.tar.gz
    
    • 进入到/usr/local/src/hadoop-2.7.3/etc/hadoop/目录修改对应文件
      core-site.xml文件如下:
    <?xml version="1.0" encoding="UTF-8"?>
    <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
    <!--关注微信公众号:阿布的进击-->
    <!--文件:core-site.xml -->
    <!--参考地址 http://hadoop.apache.org/docs/r2.7.3/-->
    <configuration>
    	<property>
    		<name>fs.defaultFS</name>
    		<value>hdfs://master:9000</value>
    		<description>用来指定默认的文件系统</description>
    	</property>
    	<property>
    		<name>hadoop.tmp.dir</name>
    		<value>file:/usr/local/src/hadoop-2.7.3/tmp</value>
    		<description>hadoop临时文件存放目录</description>
    	</property>
    </configuration>
    

    hdfs-site.xml文件如下:

    <?xml version="1.0" encoding="UTF-8"?>
    <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
    <!--关注微信公众号:阿布的进击-->
    <!--文件:hdfs-site.xml -->
    <!--参考地址 http://hadoop.apache.org/docs/r2.7.3/-->
    <configuration>
    	<property>
    		<name>dfs.namenode.secondary.http-address</name>
    		<value>master:9001</value>
    		<description>secondaryNamenode地址和端口</description>
    	</property>
    	<property>
    		<name>dfs.namenode.name.dir</name>
    		<value>file:/usr/local/src/hadoop-2.7.3/dfs/name</value>
    		<description>保存FsImage镜像的目录,作用是存放hadoop的名称节点namenode里的metadata</description>
    	</property>
    	<property>
    		<name>dfs.datanode.data.dir</name>
    		<value>file:/usr/local/src/hadoop-2.7.3/dfs/data</value>
    		<description>存放HDFS文件系统数据文件的目录,作用是存放hadoop的数据节点datanode里的多个数据块</description>
    	</property>
    	<property>
    		<name>dfs.replication</name>
    		<value>2</value>
    		<description>block块副本数,默认值3</description>
    	</property>
    </configuration>
    

    mapred-site.xml文件如下:

    <?xml version="1.0" encoding="UTF-8"?>
    <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
    <!--关注微信公众号:阿布的进击-->
    <!--文件:mapred-site.xml -->
    <!--参考地址 http://hadoop.apache.org/docs/r2.7.3/-->
    <configuration>
    	<property>
    		<name>mapreduce.framework.name</name>
    		<value>yarn</value>
    		<description>指定运行mapreduce的环境是yarn</description>
    	</property>
    	<!--hadoop历史服务器-->
    	<property>
    		<name>mapreduce.jobhistory.address</name>
    		<value>master:10020</value>
    		<description>MR JobHistory服务器进程间通信地址</description>
    	</property>
    	<property>
    		<name>mapreduce.jobhistory.webapp.address</name>
    		<value>master:19888</value>
    		<description>MR JobHistory服务器的用户界面地址</description>
    	</property>
    	<property>
    		<name>mapreduce.jobhistory.done-dir</name>
    		<value>/mr-history/done</value>
    		<description>已执行完毕作业信息存储位置</description>
    	</property>
    	<property>
    		<name>mapreduce.jobhistory.intermediate-done-dir</name>
    		<value>/mr-history/tmp</value>
    		<description>正在运行的作业信息存储位置</description>
    	</property>
    	<property>
    		<name>yarn.app.mapreduce.am.staging-dir</name>
    		<value>/mr-history/hadoop-yarn/</value>
    		<description>MR作业在提交时所使用的临时目录, 是一个本地路径</description>
    	</property>
    	<property>
    		<name>mapreduce.map.memory.mb</name>
    		<value>2048</value>
    		<description>调度器为每个map task申请的内存数,各Job也可以单独指定,如果实际使用的资源量超过该值,则会被强制杀死</description>
    	</property>
    	<property>
    		<name>mapreduce.reduce.memory.mb</name>
    		<value>2048</value>
    		<description>调度器为每个reduce task申请的内存数,同map task,超出强制杀死</description>
    	</property>
    	<property>
    		<name>mapreduce.job.reduce.slowstart.completedmaps</name>
    		<value>0.8</value>
    		<description>当map task完成80%时,为reduce申请资源,reduce开始进行拷贝map结果数据和做reduce shuffle操作,默认0.05</description>
    	</property>
    </configuration>
    

    slaves文件如下:

    slave1
    slave2
    

    yarn-site.xml文件如下:

    <?xml version="1.0" encoding="UTF-8"?>
    <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
    <!--关注微信公众号:阿布的进击-->
    <!--文件:yarn-site.xml -->
    <!--参考地址 http://hadoop.apache.org/docs/r2.7.3/-->
    <configuration>
    	<!--日志聚合相关-->
    	<property>
    		<name>yarn.log-aggregation-enable</name>
    		<value>true</value>
    		<description>开启日志聚合功能,开启后日志保存在hdfs上</description>
    	</property>
    	<property>
    		<name>yarn.log-aggregation.retain-seconds</name>
    		<value>86400</value>
    		<description>聚合后的日志在hdfs上的保存时间,单位为秒</description>
    	</property>
    	<property>
    		<name>yarn.log.server.url</name>
    		<value>http://master:19888/jobhistory/logs</value>
    		<description>日志聚合服务器URL</description>
    	</property>
    	<property>
    		<name>yarn.nodemanager.aux-services</name>
    		<value>mapreduce_shuffle</value>
    		<description>NodeManager上运行的附属服务,需配置成mapreduce_shuffle,才可运行MapReduce程序</description>
    	</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>
    		<description>RM 对客户端暴露的地址。客户端通过该地址向RM提交应用程序,杀死应用程序</description>
    	</property>
    	<property>
    		<name>yarn.resourcemanager.scheduler.address</name>
    		<value>master:8030</value>
    		<description>RM 对ApplicationMaster暴露的访问地址。AM通过该地址向RM申请资源、释放资源</description>
    	</property>
    	<property>
    		<name>yarn.resourcemanager.resource-tracker.address</name>
    		<value>master:8035</value>
    		<description>RM 对NodeManager暴露的地址,NM通过该地址向RM汇报心跳,领取任务</description>
    	</property>
    	<property>
    		<name>yarn.resourcemanager.admin.address</name>
    		<value>master:8033</value>
    		<description>RM 对管理员暴露的访问地址。管理员通过该地址向RM发送管理命令等</description>
    	</property>
    	<property>
    		<name>yarn.resourcemanager.webapp.address</name>
    		<value>master:8088</value>
    		<description>RM对外web ui地址。用户可通过该地址在浏览器中查看集群各类信息</description>
    	</property>
    	<!-- 关闭虚拟内存检查-->
    	<property>
    		<name>yarn.nodemanager.pmem-check-enabled</name>
    		<value>false</value>
    		<description>是否启动一个线程检查每个任务正使用的物理内存量,如果任务超出分配值,则直接将其杀掉,默认为true</description>
    	</property>
    	<property>
    		<name>yarn.nodemanager.vmem-check-enabled</name>
    		<value>false</value>
    		<description>是否启动一个线程检查每个任务正使用的虚拟内存量,如果任务超出分配值,则直接将其杀掉,默认是true</description>
    	</property>
    </configuration>
    
    • 进入到/usr/local/src/hadoop-2.7.3/目录下创建对应目录
    mkdir -p dfs/data
    mkdir -p dfs/name
    mkdir tmp
    
    • 配置/root/.bashrc全局环境变量,如下:
      进入vi /root/.bashrc,进行添加如下内容:
    # set hadoop environment
    export HADOOP_HOME=/usr/local/src/hadoop-2.7.3
    export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
    

    添加之后esc退出保存,并重新加载环境变量
    source /root/.bashrc

    搭建hadoop集群条件

    需要准备三台centos7系统;每个系统节点,都需要关闭防火墙(iptables,selinux)、jdk、互信、ip映射

    VM克隆slave两台

    • 克隆完两台slave之后,修改对应IP地址,并重新启动网络
    /etc/init.d/network restart
    
    • 配置三台对应hostname,操作命令如下:
    hostnamectl set-hostname master
    
    • 配置主机文件(每一个节点都需要执行)
      vi /etc/hosts
      192.168.127.130 master
      192.168.127.131 slave1
      192.168.127.132 slave2
      修改为一台机器的hosts文件之后,也可以通过scp进行分发hosts文件,操作命令如下:
    scp -r /etc/hosts root@slave1:/etc/
    

    提示输入yes/no,输入yes;
    提示输入slave1的密码,输入slave1密码,就会自动分发到对应节点,依次类推发到slave2节点

    • SSH互信配置
      ssh-keygen -t rsa

    三次回车生成密钥(每一个节点都需要执行)

    生成公钥(主节点执行)

    cat /root/.ssh/id_rsa.pub > /root/.ssh/authorized_keys
    chmod 600 /root/.ssh/authorized_keys

    复制其他节点的公钥(主节点执行)

    ssh slave1 cat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys
    ssh slave2 cat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys# 复制公钥到其他节点(主节点执行)
    scp /root/.ssh/authorized_keys root@slave1:/root/.ssh/authorized_keys
    scp /root/.ssh/authorized_keys root@slave2:/root/.ssh/authorized_keys

    免密SSH测试

    ssh slave1 ip addr
    ssh slave2 ip addr

    • 格式化hadoop集群
    hadoop namenode -format
    

    在那节点格式化,对应节点就是主节点

    • 启动hadoop集群
    [root@master hadoop-2.7.3]# sbin/start-all.sh
    
    • 检查hadoop集群是否正常
      • 检查进程是否正常 jps
         [root@master hadoop-2.7.3]# jps
         1777 ResourceManager
         2034 Jps
         1483 NameNode
    
  • 相关阅读:
    欧拉公式
    isap的一些想法
    错误合集
    Hello World
    PAT (Advanced Level) Practice 1068 Find More Coins
    PAT (Advanced Level) 1087 All Roads Lead to Rome
    PAT (Advanced Level) 1075 PAT Judge
    PAT (Advanced Level) 1067 Sort with Swap(0, i)
    PAT (Advanced Level) 1017 Queueing at Bank
    PAT (Advanced Level) 1025 PAT Ranking
  • 原文地址:https://www.cnblogs.com/sjkzy/p/14981744.html
Copyright © 2011-2022 走看看