• 大数据(2)


    apache hadoop 官方文档

    ** Hadoop介绍
      ** HDFS:分布式存储文件
        角色:NameNode和DataNode
      ** YARN:分布式资源调度框架(Hadoop2.x以上才引用)
        角色:ResourceManager和NodeManager
      ** MapReduce:分布式数据处理框架

    一、下载hadoop拉到linux中,并解压到指定目录

    官方下载地址

    tips:用smb把hadoop压缩包从window拉到linux时,请注意smb的登陆用户,会导致后面一堆坑,慎用root登陆smb。

    (1)将压缩包拉到/home/admin/softwares/installtions/目录

       (2) 解压到/home/admin/modules目录

    tar -zxf hadoop-2.7.2.tar.gz -C /home/admin/modules/
    

    二、配置环境变量 

     

    vim /etc/profile
    
    在最下面添加
    
    export HADOOP_HOME=/home/admin/modules/hadoop-2.7.2/bin
    export PATH=$PATH:$HADOOP_HOME
    export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
    export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib:$HADOOP_COMMON_LIB_NATIVE_DIR"
    
    
    保存退出后
    
    source /etc/profile
    

      

    配置成功后可用 hadoop version 查看版本,注意没有横杠!

    三、配置

    ** 最终配置效果:
    linux01:namenode、datanode、nodemanager 

    linux02:resourcemanager  、datanode 、nodemanager 

    linux03:datanode、nodemanager

    (1)删除windows脚本

    ** 进入到hadoop的etc/hadoop目录下
    		
    $ rm -rf *.cmd
    

      

    (2)重命名文件

    $ mv mapred-site.xml.template mapred-site.xml
    

     

    (3)配置evn文件

    查看java路径:

    echo $JAVA_HOME,我的机器:/home/admin/modules/jdk1.8.0_131

    配置hadoop-env.sh


    配置yarn-env.sh


    配置mapred-env.sh

    (4)配置site文件

    配置 core-site.xml

     <configuration>
    	<property>
    		<name>fs.defaultFS</name>
    		<value>hdfs://linux01:8020</value>
    	</property>
    
    	<property>
    		<name>hadoop.tmp.dir</name>
    		<value>/home/admin/modules/hadoop-2.7.2/hadoop-data</value>
    	</property>
    </configuration>       
    

      

    配置hdfs-site.xml

    <configuration>
    	<!-- 指定数据冗余份数 -->
    	<property>
    		<name>dfs.replication</name>
    		<value>1</value>
    	</property>
    						
    	<!-- 关闭权限检查-->
    	<property>
    		<name>dfs.permissions.enable</name>
    		<value>false</value>
    	</property>
    
    	<property>
    		<name>dfs.namenode.secondary.http-address</name>
    		<value>linux03:50090</value>
    	</property>
    
    	<property>
    		<name>dfs.namenode.http-address</name>
    		<value>linux01:50070</value>
    	</property>
    
    	<property>
    		<name>dfs.webhdfs.enabled</name>
    		<value>true</value>
    	</property>
    </configuration>
    

     配置yarn-site.xml

    <configuration>
            <!-- Site specific YARN configuration properties -->
    	<property>
    		<name>yarn.nodemanager.aux-services</name>
    		<value>mapreduce_shuffle</value>
    	</property>
    
    	<property>
    		<name>yarn.resourcemanager.hostname</name>
    		<value>linux02</value>
    	</property>
    
    	<property>
    		<name>yarn.log-aggregation-enable</name>
    		<value>true</value>
    	</property>
    
    	<property>
    		<name>yarn.log-aggregation.retain-seconds</name>
    		<value>86400</value>
    	</property>
    
    	<property> 
    		<name>yarn.log.server.url</name> 
    		<value>http://linux01:19888/jobhistory/logs/</value> 
    	</property> 
    
    </configuration>        
    

      配置mapred-site.xml

    <configuration>
    	<property> 
    		<name>mapreduce.framework.name</name> 
    		<value>yarn</value> 
    	</property>
    	<!-- 配置 MapReduce JobHistory Server 地址 ,默认端口10020 -->
    	<property>
    		<name>mapreduce.jobhistory.address</name>
    		<value>linux01:10020</value>
    	</property>
    
    	<!-- 配置 MapReduce JobHistory Server web ui 地址, 默认端口19888 -->
    	<property>
    		<name>mapreduce.jobhistory.webapp.address</name>
    		<value>linux01:19888</value>
    	</property>
    </configuration>
    

      

    (5)配置slaves文件

    四、分发安装配置完成的hadoop到linux02以及linux03

    $ scp -r hadoop-2.7.2/ linux02:/home/admin/modules/
    $ scp -r hadoop-2.7.2/ linux03:/home/admin/modules/
    

      

    五、 格式化namenode(在hadoop-2.7.2的根目录下执行)

    $ bin/hdfs namenode -format
    

      如果正常格式化会生成haddop-data文件夹

    六、启动服务

    HDFS:(linux01)
    	$ sbin/start-dfs.sh
    YARN:(一定要在ResourceManager所在机器启动,linux02)
    	$ sbin/start-yarn.sh 
    JobHistoryServer:(linux01)
    	$ ssh admin@linux01 '/home/admin/modules/hadoop-2.7.2/sbin/mr-jobhistory-daemon.sh start historyserver' 

    常见启动失败情况:

    (1)hadoop处于安全模式,namenode启动失败,参考链接

      解决:磁盘空间不足,需要手动释放资源后再用命令 hdfs dfsadmin -safemode leave  离开安全模式

     全部完成后查看:

    在浏览器输入192.168.1.213:50070,如果不在安全模式证明namenode启动正常

     

    输入192.168.1.214:8088

    七、关闭全部服务

    $ sbin/stop-all.sh
    

      

    八、将系统变量追加到用户变量中(3台机器都要操作)

    $ cd ~
    
    $ cat /etc/profile >> .bashrc 
    

     生效 $ source ~/.bashrc

    九、编写脚本批量操作三台机器

    $ cd ~
    $ mkdir tools
    $ vim /tools/jpsutil.sh
    
    添加批量查看jps服务的脚本
    
    #!/bin/bash
    for i in admin@linux01 admin@linux02 admin@linux03
    do
        echo "==================$i==================="
        ssh $i 'jps'
    done
    
    保存后查看
    
    sh jpsutil.sh
    

      

    十、遇到问题

      关闭虚拟机后重启,重启集群时,namenode启动失败,需要使用命令:bin/hdfs namenode -format

    格式化,才能启动。

      格式化后datanode又有异常,需要把/hadoop-2.7.2/hadoop-data/dfs/name/current/VERSION里面的clusterID复制下来,依次替换/hadoop-2.7.2/hadoop-data/dfs/data/current/VERSION里的clusterID,再执行:sbin/hadoop-daemon.sh start datanode(全部机器都要操作)

      格式化会导致集群原本存储的数据全部丢失,如何正常关机后,正常开启集群,这个有待研究。

  • 相关阅读:
    tree
    单向链表反转
    libev使用方法
    PowerManagerService流程分析
    Android source code compile error: “Try increasing heap size with java option '-Xmx<size>'”
    解决git合并冲突问题
    python之字典
    Django----admin管理工具
    流程控制,以及字符串
    python入门
  • 原文地址:https://www.cnblogs.com/shifu204/p/9485673.html
Copyright © 2020-2023  润新知