• Hadoop2.7.3 多台主机完全分布式搭建(Mac OS X 10.12.4系统) 前言 由于学校课程实验的要求,特意需要搭建hadoop的完全分布式系统,所以自己就蛋疼的配了,可惜关于MAC系统的Hadoop搭建材料太少,而且真正的基于...

    Hadoop2.7.3 多台主机完全分布式搭建(Mac OS X 10.12.4系统)

    前言

    由于学校课程实验的要求,特意需要搭建hadoop的完全分布式系统,所以自己就蛋疼的配了,可惜关于MAC系统的Hadoop搭建材料太少,而且真正的基于校园网的配置基本上没有(基本是在一台电脑上进行,因此当在多台电脑上运行会有许多bug),因此这里想要能够将自己搭的过程想要分享给大家,可能有些配置的解释没有那么全面,所以希望大家见谅~~~


    环境

    基于Mac OSX 10.12.4(Sierra)、Ubuntu 17.04系统
    虚拟机使用Parallel Desktop12(Mac专用虚拟机)(后面有提到需要升级到Pro Edition)、 VMWare WorkStation 9(Windows上的虚拟机)
    Hadoop采用的是官网下载的2.7.3(相对稳定)
    Hadoop Eclipse的plugins为2.7.3(某大神提供的已编译版本)(文章的最后提供的百度云链接地址)




    实验目的

    本次试验的目的是实现mac系统上面的主机作为master,mac上面的parallel desktop虚拟机上的linux系统作为slave1,windows10系统上VMWare WorkStation 9的linux系统作为slave2,最后实现分布式的WordCount程序(同时涉及一台主机上的配置和不同主机间的配置)




    搭建Hadoop前的琐事(工欲善其事,必先利其器)

    1.搭建Parallel Desktop上的虚拟机

    1.将/etc/hostname修改为slave1(需要重启才能生效)
    

    sudo vim /etc/hostname                               #若没有安装vim则使用vi代替

    Hadoop1.png


    2.将Parallel Desktop12的网络的模式设置为共享网络
    

    Hadoop2.png


    3.将Macbook的hostname修改为master(mac系统可以不需要重启)
    

    sudo scutil –set HostName master                               #修改mac上的hostname

    4.获取macbook以及linux系统下的ip地址(两个终端指令相同)
    

    ifconfig                               #查看虚拟机的ip地址

    Hadoop3.png


    5.通过获取来的ip地址修改/etc/hosts文件(linux将原有的127.0.1.1删除) 
    

    sudo vim /etc/hosts

    Hadoop4.png


    6.linux系统安装openssh-server并启动(苹果系统自带支持ssh,所以不用安装)
    

    sudo apt-get install openssh-server      #安装openssh-server
    sudo service ssh start                           #启动openssh-server

    7.将mac系统上的防火墙关闭,并启动远程登录的机制(为了保证能够进行ssh)
    

    Hadoop5.png
    Hadoop6.png
    Hadoop7.png
    Hadoop8.png


    8.前往master主机的~/.ssh目录,在master主机上面生成rsa秘钥(注意这里最好不要用dsa),并将其放入本机的~/.ssh文件夹内
    

    cd ~/.ssh                   #前往~/.ssh目录,该目录用于存放ssh所用的公钥和私钥
    ssh-keygen -t rsa      #生成rsa秘钥(有提示出现,一直按回车默认设置)
    cat id_rsa.pub    >>    authorized_keys         #将rsa公钥放入authorized_keys中,作用是当通过ssh登录自己时不需要密码
                                                                  #cat指令的作用是添加到尾部,在这里需要保证authorized_keys是可以改写的

    9.将master主机的rsa公钥放入linux系统的~/.ssh/authorized_keys中(新生成文件)(免密码登录slave1)
    

    scp id_rsa.pub jiangqian@slave1:~/.ssh/authorized_keys       #注意这里jiangqian是mac机上面的主机名,记得更改

    10.检查是否配置ssh成功
    

    ssh master                #检查自己
    ssh slave1                #检查slave1


    2.搭建Windows10上的虚拟机

    1.打开VMWare, 点击Ubuntu 64-bit虚拟机的镜像
    

    Hadoop11.png


    2.点击Edit,设置虚拟机的虚拟网卡
    

    Hadoop12.png


    3.这里使用VMnet8作为NAT的转换端口,其它的端口都可以关闭,将子网设置为192.168.18.0(保留地址都可以)
    

    Hadoop13.png


    4.将VMnet8设置为NAT(NAT的概念详见计算机网络),并点击NAT Settings进行配置
    

    Hadoop14.png


    5.设置网关IP(保留地址的概念详见计算机网络),添加三个端口转换,这里的Virtual machine IP address通过ifconfig获取
    

    温馨小提示:
    这里必须要设置三个端口的转换,第一个端口是22号端口,这个端口是ssh需要使用的默认端口,而50010端口和50090端口都是在hdfs上传文件的时候需要开放的,如果没有进行端口转换会导致最后出现让人苦恼的bug,详细出错信息参见后面

    Hadoop29.png
    Hadoop15.png
    Hadoop16.png
    Hadoop18.png


    6.设置linux系统的网卡,让其使用的是VMNet8(右键 -> Settings打开,选择Network Adapter)
    

    Hadoop21.png
    Hadoop22.png


    7.右键点击windows10桌面的小电脑,选择"打开网络和共享中心",选择更改适配器设置
    

    Hadoop23.png
    Hadoop24.png

    8.选择关于VMNet8的网卡,配置相应的IP地址
    

    Hadoop25.png
    Hadoop26.png
    Hadoop27.png


    9.选择前面设置子网网段(4中的IP subnet)里面的一个IP地址作为该网卡的地址,设置好默认网关和DNS服务器
    

    Hadoop28.png


    10.如配置Parallel Desktop12中的虚拟机一样,配置 /etc/hostname(slave2) 和/etc/hosts文件
    

    Hadoop31.png


    11.同时将master和slave1主机的/etc/hosts文件中添加slave2的IP地址和相应的名字
    

    Hadoop30.png

    12.在master主机上,在~/.ssh目录下,同样将id_rsa文件发送到slave2中,进行免密码登录
    

    scp id_rsa.pub jiangqian@slave2:~/.ssh/authorized_keys       #注意这里jiangqian是mac机上面的主机名,记得更改

    13.验证是否成功配置
    

    ssh slave2                #检查slave2


    3.配置JAVA环境变量!!!!

    温馨小提示:
    MAC配置JAVA的环境变量就是麻烦,毕竟是竞争对手~~~,可能会遇到的一种情况就是如果普通的配置~/.bash_profile后,需要每次打开一个终端就要source一次,不然的话echo $JAVA_HOME的话结果为空。千万别被网上的坑爹的讲法给坑了,千万别蛋疼地重启!!配置方法详见下方


    1.配置master(关键)的JAVA环境变量,通过/usr/libexec/java_home查看当前的java的绝对路径(如果打which java是引用路径)
    

    /usr/libexec/java_home                #查看当前的java路径(记得复制该路径)

    2.打开~/.bash_profile并添加JAVA_HOME环境变量,并通过source使它生效
    

    sudo vim  ~/.bash_profile                #打开环境变量配置的文件夹
    export  JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home                #添加JAVA_HOME环境变量(所复制的路径)

    Hadoop32.png


    3.在 ~/.zshrc 文件的末尾添加如下语句,使得每次新开终端都有效
    

    sudo  vim  ~/.zshrc                 #打开zshrc文件
    source ~/.bash_profile            #添加该语句
    source  ~/.zshrc                      #使得该文件生效

    4.配置linux的路径(两个slave的配置一摸一样,所以只选择一个来讲),首先是安装java
    

    java -version                            #查看是否安装JAVA
    sudo apt get install default-jre                    #安装jre
    sudo apt get install default-jdk                    #安装jdk(可能不需要装)

    5.寻找java的绝对路径,通过ls -ll寻找(可能有更好的办法!!~)
    

    whcih  java                            #寻找java的绝对路径
    ls -ll /usr/bin/java
    ls -ll /etc/alternatives/java                  #查看绝对路径

    Hadoop33.png

    sudo vim ~/.bashrc                     #添加环境变量(直觉告诉我绝对路径是下面这个。。)
    export  JAVA_HOME=/usr/lib/jvm/java-9-openjdk-amd64                #添加JAVA_HOME环境变量(所复制的路径)
    source  ~/.bashrc                      #使得该文件生效




    草蛋,终于可以开始搭Hadoop~~~

    1.在官网或者通过下面的百度云盘链接下载Hadoop2.7.3(记得下载二进制文件,不用编译了!)

    Hadoop2.7.3的云盘链接: Hadoop2.7.3 提取码为: 7udu

    1.将该文件解压到/usr/local的目录下,记住不要忘记了加-C的参数,不然会解压失败!!
    

    sudo tar -zxf ~/hadoop-2.6.0.tar.gz  -C  /usr/local                       # 解压到/usr/local中
    cd /usr/local/                                                                                #前往该文件夹
    sudo mv ./hadoop-2.7.3/ ./hadoop                                              # 将文件夹名改为hadoop
    sudo  chown  -R  jiangqian ./hadoop                                             # 修改文件权限,权限是你当前的用户

    2.为了操作方便,将该文件的bin文件夹和sbin文件夹的路径放入~/.bash_profile下,便于操作指令
    

    sudo vim  ~/.bash_profile                                                                                #打开环境变量配置的文件夹
    export  PATH=$PATH:/usr/local/hadoop/bin:/usr/local/hadoop/sbin                #添加sbin和bin的文件夹路径


    2.配置集群/分布式环境(这里需要修改4个xml文件、两个sh文件)(这里是在master机上操作)

    1.配置yarn-env.sh和hadoop-env.sh文件,添加master机上的环境变量(建议用sublime text打开)
    

    echo   $JAVA_HOME                #获取当前JAVA环境变量
    sudo vim /usr/local/hadoop/etc/hadoop/yarn-env.sh                #打开yarn-env.sh文件
    export  JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home                #添加JAVA_HOME环境变量(所复制的路径)
    sudo vim /usr/local/hadoop/etc/hadoop/hadoop-env.sh                #打开yarn-env.sh的文件夹
    export  JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home                #添加JAVA_HOME环境变量(所复制的路径)

    Hadoop41.png
    Hadoop42.png


    2.配置core-site.xml文件(说白了就是复制粘贴大法)
    


    sudo vim /usr/local/hadoop/etc/hadoop/core-site.xml                #打开core-site.xml文件

    <?xml version="1.0" encoding="UTF-8"?>
    <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
    
    <configuration>  
    
        <property>  
            <name>fs.defaultFS</name> 
              <!-- master是hostsname -->
            <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:/usr/local/hadoop/tmp</value>  
            <description>A base for other temporary   directories.</description>  
        </property> 
    </configuration>  

    3.配置hdfs-site.xml文件,这里注意,dfs.replication的含义就是备份,备份的数目不要超过节点数(slave)(这里是2),不然会有问题
    


    sudo vim /usr/local/hadoop/etc/hadoop/hdfs-site.xml                #打开hdfs-site.xml文件

    <?xml version="1.0" encoding="UTF-8"?>
    <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
    <configuration>  
            <property>
                    <name>dfs.namenode.secondary.http-address</name>
                    <value>master:50090</value>
            </property>
         <property>  
                 <name>dfs.namenode.name.dir</name>  
                 <value>file:/usr/local/hadoop/tmp/dfs/name</value>  
           </property>  
          <property>  
                  <name>dfs.datanode.data.dir</name>  
                  <value>file:/usr/local/hadoop/tmp/dfs/data</value>  
           </property>  
           <property>  
                   <name>dfs.replication</name>  
                   <value>2</value>  
            </property>  
            <property>
              <name>dfs.permissions</name>
              <value>false</value>
           </property> 
            <property>
                     <name>dfs.webhdfs.enabled</name>
                      <value>true</value>
          </property>
    
    </configuration>  

    4.配置mapred-site.xml文件,这里注意,原来没有修改的文件是没有这个文件的,需要重新命名(默认文件名是 mapred-site.xml.template)
    


    cd  /usr/local/hadoop/etc/hadoop                                               #前往目标文件夹
    sudo  cp  mapred-site.xml.template  mapred-site.xml               #创建mapred-site.xml文件(拷贝template文件夹的内容)
    sudo vim /usr/local/hadoop/etc/hadoop/mapred-site.xml                #打开mapred-site.xml文件

    <?xml version="1.0"?>
    <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
    
    <configuration>  
              <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>  
    </configuration>  

    5.配置yarn-site.xml(守护进程)文件
    


    sudo vim /usr/local/hadoop/etc/hadoop/yarn-site.xml                #打开yarn-site.xml文件

    <?xml version="1.0"?>
    <configuration>  
    <?xml version="1.0"?>
    <configuration>  
              <property>
                    <!-- 注意,这里是master机的hostname -->
                    <name>yarn.resourcemanager.hostname</name>
                    <value>master</value>
            </property>
            <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> -->
    </configuration>  
    </configuration>  
    

    6.修改slaves文件(差点忘了~~),记得添加两台slaves主机的hostname!
    


    sudo vim /usr/local/hadoop/etc/hadoop/slaves                #打开slaves文件

    slave1
    slave2
    


    3.将master主机上配置好的文件复制到两台slave机上,并修改yarn-env.sh以及hadoop-env.sh的JAVA环境变量(这里两台机都要配,操作而且一样,这里演示一个即可)

    cd  /usr/local/                                                            #前往hadoop文件夹所在的上一层

    scp  -r  ./hadoop  jiangqian@slave1:/tmp/                #将hadoop文件夹复制到slave1主机的tmp文件夹,这里jiangqian是指slave1的主机名字
    scp  -r  ./hadoop  jiangqian@slave2:/tmp/                #将hadoop文件夹复制到slave2主机的tmp文件夹,这里jiangqian是指slave2的主机名字

    温馨小提示:
    这里由于ssh的权限原因,不能直接复制到slave机子的/usr/local文件夹的目录下,因此需要先复制到/tmp文件夹的目录下,然后再从tmp文件夹转移到/usr/local文件夹下(有点类似于黑客入侵的感觉~~)

    ssh   slave1                #通过ssh登录slave1主机, 这里也可以直接在slave2主机上进行操作
    sudo  mv  /tmp/hadoop  /usr/local/                    #将tmp文件夹下的hadoop移动至/usr/local文件夹下

    !!温馨大提示!!:
    Warning!Warning!
    老大们,千万千万不要将mv指令写成rm指令,坑爹的rm指令也可以支持这种格式的递归删除,小编就是糙心将mv指令写成rm指令,结果导致啊电脑啊重新装~,hadoop重新搭~,教程重新写~!!!!!!,千万别组合sudo和rm加上-r指令,不然~!

    cd  /usr/local/                                                            #前往/usr/local文件夹下
    sudo  chown  -R  jiangqian:jiangqian ./hadoop                                             # 修改文件权限,权限是你当前slave用户的用户名以及用户组(没有创建则用root也行),不过很危险呀

    补充可能用到的操作:
    ls  -ll            #来查看用户名和用户组
    sudo  passwd  root            #用来创建root用户的密码(大大哥用户)(要是不记得的话)
    sut  root            #用来登录root用户(大大哥用户)
    adduser  jiangqian  sudo            #用来创建jiangqian的用户,并且加入sudo的用户组(说白了就是可以用sudo指令)(需要登录到root用户才能执行这个操作)

    echo   $JAVA_HOME                #获取当前JAVA环境变量
    sudo vim /usr/local/hadoop/etc/hadoop/yarn-env.sh                #打开yarn-env.sh文件
    export  JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64                #添加JAVA_HOME环境变量(所复制的路径)
    sudo vim /usr/local/hadoop/etc/hadoop/hadoop-env.sh                #打开yarn-env.sh的文件夹
    export  JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64                #添加JAVA_HOME环境变量(所复制的路径)

    Hadoop43.png
    Hadoop44.png
    Hadoop45.png

    温馨小提示:
    之前跑过伪分布式或者之前配置完全分布式失败需要进行下面清除临时文件以及日志的操作,不然会出错(datanode起不来)!!(记得三台主机都得删除~)


    cd  /usr/local/hadoop                                                            #前往目标文件夹,在该文件夹下存放着日志和临时文件的文件夹
    sudo  rm  -r  ./tmp                    #删除临时文件存放的文件夹
    sudo  rm  -r  ./logs/*                 #删除日志文件夹里面的所有日志文件



    4.好了,老大们,拔剑吧,开始跑了!(记得开始跑之前关闭windows、linux和mac上面的防火墙!!!)

    1.首次(准确说是每次删除了tmp和logs文件后)记得在master主机上格式化namenode
    


    cd  /usr/local/hadoop                      #前往目标文件夹
    hdfs  namenode  -format                #格式化namenode

    2.启动hadoop
    


    start-all.sh                                      #启动hadoop

    温馨小提示:
    这里小编贪图方便就直接用了start-all.sh,但规范的用法应该如下:


    start-dfs.sh
    start-yarn.sh

    3.检查是否启动成功(关键是结点是否都live起来了)
    

    首先可以通过Web来查看:http://master:50070/


    hdfs  dfsadmin  -report                #或者通过命令行直接查看

    Hadoop46.png

    4.在hdfs上创建相应的文件,同时上传/usr/local/hadoop/etc/hadoop文件夹中所有的xml文件
    


    hdfs  dfs  -mkdir  -p  /user/jiangqian                  #创建jiangqian的文件夹,这里的jiangqian是指master主机的主机名字
    hdfs  dfs  -mkdir  -p  input                                 #创建input文件夹,默认是在/user/jiangqian的文件夹下
    hdfs  dfs  -put  /usr/local/hadoop/etc/hadoop/*.xml  input              #将对应文件夹所有的xml文件上传到hdfs

    !!温馨大提示!!:
    这里如果没有将50010端口和50090端口打开(其实主要是50010端口)打开的话,会出现一个非常常见的问题,那就是出现下面的一大堆错误:

    Hadoop47.png

    而网上的错误回答真的是一本正经地胡说八道,有些瞎扯蛋的人说的datanote没起来,怎么可能??都live起来了!,有些人说是内存不够,去尝试这个原因小编吃了不少苦头!不小心把系统文件夹给删了!!~,而小编也是因为这个错误,苦恼了许久,幸好有可靠的师姐和大神的帮助以及出错信息才发现没有打开50010端口,然后去就去把虚拟机的两个端口50010和50090打开,VMWare的方法前面也已经提到了,而下面这一点则是重点讲Parallels Desktop如何打开50010和50090端口!

    5.如果出现了未开放端口的错误(或者其它失败的错误),需要先停止hadoop,再清除tmp文件目录和logs日志
    


    stop-all.sh                                                   #停止hadoop
    cd  /usr/local/hadoop                                  #前往目标文件夹,在该文件夹下存放着日志和临时文件的文件夹
    sudo  rm  -r  ./tmp                    #删除临时文件存放的文件夹
    sudo  rm  -r  ./logs/*                 #删除日志文件夹里面的所有日志文件

    6.配置Parallels Desktop12,开放50010和50090端口!(钱的代价)
    

    温馨小提示:
    这里Parallels Desktop的网络的模式应该选择是的共享模式(shared Network),Parallels Desktop中,共享模式就相当于NAT转换的形式

    由于不知道怎么使用Parallels Desktop,所以并不知道怎么开放端口,后来找到了,但是也发现了一个惊人的事实,就是如果想要做tcp端口的规划,就需要钱!!,个人模式无法进行端口的设置!!

    Hadoop49.png
    Hadoop48.png
    Hadoop51.png


    小编脑子一热,为了作为先行者,就升级了Pro Edition��哭了~。

    Hadoop52.png
    Hadoop53.png
    Hadoop54.png


    7.通过telnet验证主机是否开放50010端口和50090端口
    

    Hadoop55.png

    温馨小提示:
    这里telnet的是master主机而不是slave1(虚拟机) ,因为该虚拟机的端口是通过master主机来做端口转换来实现与外界的交流,因此需要去telnetmaster的端口而不是slave

    8.运行WordCount小程序,验证结果(结果不正确可能是由于slave1和slave2不可达(无法ping通))
    


    hadoop jar /usr/local/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.3.jar grep input output ‘dfs[a-z.]+’           #运行hadoop文件夹自带的wordCount小程序

    Hadoop81.png
    Hadoop85.png

    由于小编还找不到问题,所以这个问题可能待到以后再解决,先看看能不能运行wordCount程序吧~~~~

    可能的猜想:

    可能是因为master上的虚拟机不能通过作为一个独立的主机(只是有可能),所以导致slave1和slave2以及master之间不能很好地通信,最好将三者分开吧??然后slave2和slave1之间可能会不可达,也可能会导致失败(来自华为大神香飘叶子的猜想)
    Hadoop90.png
    Hadoop91.png

    9.退出hadoop
    


    stop-all.sh                                                   #停止hadoop

    温馨小提示:
    这里小编还是偷懒了,正规的用法是:


    stop-dfs.sh
    stop-yarn.sh                                     #停止守护进程




    搭建可视化的hadoop平台(装eclipse hadoop plugins)

    1.下载并安装eclipse的neon2的版本(neon3的版本的兼容性不好~)
    

    eclipse  neon2网盘地址: eclipse  neon2 提取码为: jdwd

    2.下载并安装eclipse hadoop2.7.3 plugins插件
    

    eclipse  hadoop  2.7.3plugins网盘地址: eclipsehadoop  2.7.3plugins 提取码为: 5u52

    3.将该插件解压(双击或者用前面的指令)并安装到neon2的相应的文件夹中(plugins文件夹)
    Cotents->Eclipse->plugins
    

    Hadoop56.png
    Hadoop57.png


    4.打开neon2,并进行相关的操作
    

    温馨小提示:
    在打开neon2之前,请保持hadoop已经打开(start-all.sh)

    Hadoop86.png


    5.配置好后,接下来的操作请参照厦门大学hadoop实验室的mapreduce的配置:
    

    厦门大学hadoop实验室:  厦门大学hadoop实验室的mapreduce的配置

    温馨小提示:
    Hadoop87.png
    Hadoop88.png


    6.运行程序并显示结果(希望要成功哦~~~)
    

    Hadoop84.png




    实验总结

    本次实验为了写这个教程花费小编不少心血,而且搭hadoop搭到都想吐了,但是一想到现在网上的教程一水一大把,所以才想要写这个教程给大家节省宝贵的时间,虽然最后验证自带的hadoop包出了问题(有空小编会努力找出问题~~),但是最后的整体结果是一致的,所以在这里要感谢Dragon大神、华为大神香飘叶子~、何大神以及师姐的帮忙,不然这篇教程不会出现在这里~~,虽然自己写的不好,希望大家勿喷~~!这些都是纯手工打的哦~




    参考的文章

    不得不说好的文章教程会省很多事情,小编这里强烈推荐厦门大学Hadoop的教程~!,大家多看看这个实验室
    的东西,比较标准!
    厦门大学hadoop实验室:  厦门大学hadoop2.6.0集群安装配置
    厦门大学hadoop实验室:  厦门大学hadoop实验室的mapreduce的配置
    关于mac配置hadoop的教程:  关于mac配置hadoop的教程
    关于配置路径的生效问题:  配置路径的生效问题

    展开全文
  • 启动集群 sbin/hadoop-daemon.sh start namenode sbin/hadoop-daemon.sh start datanode sbin/yarn-daemon.sh start nodemanager sbin/yarn-daemon.sh start resourcemanager 快捷键 ...斜体 Ctrl +...

    一、素材准备(以Mac电脑为例)

    虚拟机软件:Parallels Desktop
    Linux系统:Centos6.10
    Hadoop安装包:http://mirrors.cnnic.cn网站 apache/hadoop/common/stable目录下hadoop-2.9.1.tar.gz
    jdk的Linux版本安装包

    二、准备环境

    在虚拟机上安装Centos6.10后查看配置Linux机器环境:
    命令行输入rpm qa | grep java 查看本机安装的java版本

    卸载本机的java1.7.0 openjdk 和 java1.6.0 openjdk
    命令行输入rpm -c —nodeps java-1.7.0-openjdk—————————
    命令行输入rpm -c —nodeps java-1.6.0-openjdk—————————

    建立安装包目录
    在目录/opt下建立包 删除原来/opt下的rh
    命令行输入cd /opt
    rm -rf rh
    建立三个文件夹 命令行输入
    mkdir soft
    mkdir moudle
    mkdir data

    本机和虚拟机启动的Linux系统之间的交互用ssh访问
    本机登陆Linux:ssh root@172.20.10.10 (172.20.10.10是自己的Linux系统的IP地址,可用ifconfig命令查看)
    本机的安装包文件传到Linux,将jdk和Hadoop安装文件拷贝到Linux系统里安装
    本机命令行进入要上传的文件目录,输入scp jdk-8u162-linux-x64.tar.gz root@172.20.10.10:/opt/soft

    进入Linux系统里对刚才上传的文件进行赋权,再解压到/opt/module目录
    cd /opt/soft
    chmod 777 *
    tar -zxf jdk-8u162-linux-x64.tar.gz -C /opt/moudle/

    设置java环境变量
    vim /etc/profile
    末尾添加
    export JAVA_HOME=/opt/moudle/jdk1.8.0-162
    export PATH=\$PATH:$JAVA_HOME/bin
    使环境变量生效 source /etc/profile
    查看安装后的java版本是否生效java -version

    进入Hadoop目录,赋予root权限
    chown root Hadoop

    三、Hadoop的.sh文件和xml文件配置

    参看官网 http://hadoop.apache.org
    linux系统进入Hadoop目录
    cd hadoop-2.5.0-cdh5.3.6/,新建data/tmp目录
    mkdir data
    cd data
    mkdir tmp

    建立软链接(以后可以用/usr/local/hadoop来访问实际的Hadoop目录)
    ln -s /opt/moudle/hadoop-2.9.1 /usr/local/hadoop
    (建立后用ll命令查看是否生效,如要删除输入rm -rf hadoop
    进入hadoop/etc/hadoop目录
    vim hadoop-env.sh
    修改JAVA_HOME路径为刚才安装的jdk路径
    export JAVA_HOME=/opt/moudle/jdk1.8.0_162
    vim yarn-env.sh
    修改JAVA_HOME路径为刚才安装的jdk路径
    export JAVA_HOME=/opt/moudle/jdk1.8.0_162
    vim mapred-env.sh
    修改JAVA_HOME路径为刚才安装的jdk路径
    export JAVA_HOME=/opt/moudle/jdk1.8.0_162

    vim core-site.xml修改配置如下:

    <configuration>
      <property>
      <name>fs.defaultFS</name>
      <value>hdfs://localhost:9000</value>
      </property>
      <property>
      <name>hadoop.tmp.dir</name>
      <value>/usr/local/hadoop/data/tmp</value>
      </property>
    </configuration>

    vim hdfs-site.xml修改配置如下:(伪分布式设置为1台集群就可以)

    <configuration>
      <property>
      <name>dfs.replication</name>
      <value>1</value>
      </property>
    </configuration>

    mv mapred-site.xml.template mapred-site.xml
    vim mapred-site.xml修改配置如下:

    <configuration>
      <property>
      <name>mapreduce.framework.name</name>
      <value>yarn</value>
      </property>
    </configuration>

    vim yarn-site.xml修改配置如下:

    <configuration>
      <property>
      <name>yarn.nodemanager.aux-services</name>
      <value>mapreduce_shuffle</value>
      </property>
      <property>
      <name>yarn.log-aggregation-enable</name>
      <value>true</value>
      </property>
    </configuration>

    四、启动集群

    root用户下格式化namenode
    $ hadoop namenode -format
    进入hadoop的sbin目录,启动hadoop
    $ start-all.sh
    执行后报错如下,只能按ctrl+c结束
    The authenticity of host ‘localhost (::1)’ can’t be established.
    RSA key fingerprint is ac:a1:……..
    Are you sure you want to continue connecting (yes/no)? no

    一般的Hadoop集群动辄数百台或上千台机器,因此一般来说都会配置SSH的无密码登录。
    root用户下执行
    ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
    然后执行cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
    命令行输入ssh localhost会提示yes/no,输入yes
    至此免密登陆已设置完成,下次登录将不再提示

    重新格式化namenode
    $ hadoop namenode -format
    进入hadoop的sbin目录,启动hadoop
    $ start-all.sh
    仍会提示
    Starting secondary namenodes [0.0.0.0]
    The authenticity of host ‘0.0.0.0 (0.0.0.0)’ can’t be established.
    RSA key fingerprint is ac:a1:……….
    Are you sure you want to continue connecting (yes/no)? 输入yes

    使用jps命令查看启动的进程,发现没有namenode和datanode,查看日志报错ulimit -a for user root,网上找了很多设置都没有解决,最后发现是因为/etc/hosts文件中没有将本虚拟机及ip的映射添加进去。
    (参考https://blog.csdn.net/scuzoutao/article/details/81546269
    添加后重新格式化并启动成功。

    展开全文
  • 本篇文章主要整理了笔者学习大数据时整理的一些文章,文章是从环境搭建到整个大数据生态圈的常用技术整理,环境希望可以帮助到刚学习大数据到童鞋,大家在学习过程中有问题可以随时评论回复! 大数据生态圈涉及技术...

    本篇文章主要整理了笔者学习大数据时整理的一些文章,文章是从环境搭建到整个大数据生态圈的常用技术整理,环境希望可以帮助到刚学习大数据到童鞋,大家在学习过程中有问题可以随时评论回复!

    大数据生态圈涉及技术:

    Hadoop、MapReduce、HDFS、Hive、Hbase、Spark、Scala、Python、Kafka、Flume、Sqoop、Zookeeper

    大数据生态圈技术图:

     

    一、大数据入门环境搭建整理(集群、环境配置)

    1、Windows安装VMware Workstation Pro、Mac安装Parallels

    2、虚拟机VMware中安装linux系统CentOS

    3、CentOS7设置静态IP以及windows下ping不通虚拟机、虚拟机ping不通外网解决方案

    4、Linux中安装配置jdk1.7

    5、Linux(CentOS7)设置主机名及IP映射(用于hadoop单机/伪分布式/分布式/集群配置)

    6、Winodws下使用VMware克隆、移出、快照Linux系统

    7、Linux下yum方式安装mysql 以及卸载mysql

    8、linux(Centons7)下重置root密码超详细步骤

    9、linux下配置ssh免密(用于Hadoop高可用集群)

    10、Linux系统xshell安装上传下载文件命令rz sz

    11、Linux下zookeeper单机、伪分布式、分布式环境搭建(本篇主要介绍分布式用于Hadoop高可用集群)

    二、大数据入门系列教程合集(生态圈技术安装配置使用)

    【Hadoop篇】

    1、大数据入门教程系列之Hadoop环境搭建--Hadoop单机/伪分布式搭建配置

    2、基于centons7安装配置apache hadoop(mac)

    3、大数据入门教程系列之Hadoop环境搭建--Hadoop集群/分布式搭建配置

    4、大数据入门教程系列之Hadoop环境搭建--Hadoop高可用集群搭建配置

    5、大数据入门教程系列之Hadoop环境搭建--新建Hadoop用户

    6、大数据入门教程系列之HDFS分布式文件系统--idea下使用java API操作HDFS分布式文件系统

    7、大数据入门教程系列之mapreduce--idea下使用java API操作mapreduce完成wordcount案例

    8、大数据入门教程系列之HDFS分布式文件系统--shell命令操作HDFS分布式文件系统

     

    【Hive篇】

    1、大数据入门教程系列之Hive环境搭建--Linux(Centons7)下配置安装Hive

    2、大数据入门教程系列之Hive的Java API 操作

    3、大数据入门教程系列之Hive内置函数及自定义函数

    4、Hive DDL DML及SQL操作

    5、Hadoop2.7.4 编译 支持5种压缩

    【Hbase篇】

    1、大数据入门教程系列之Hbase安装(伪分布式)

    【Flume篇】

    1、Centons7下安装配置Flume、Linux下安装配置Flume、Flume的简单使用示例、Flume整合Kafka使用

    【Kafka篇】

    1、Centons7下安装配置Kafka、Linux下安装配置Kafka

    【Spark篇】

    1、hadoop集群下spark环境配置并且完成wordcount案例

    2、Spark中RDD的Value型Transformation算子操作(一)

    3、Spark中RDD的Key-Value型Transformation算子操作(二)

    4、Spark中Actionn算子操作(三)

     

    三、大数据生态圈技术整理汇总(技术架构、原理、流程)

    1、Hive概述、体系架构、分区、桶与倾斜、环境搭建

    2、Hbase架构及工作原理、数据及物理模型、Hbase优化

    3、Hbase常用优化、Hbae性能优化、Hbase优化经验总结

    4、Flume架构、Flume工作原理、Flume应用场景

    5、Kafka架构、Kafka核心组件、Kafka工作原理、Kafka应用场景

    6、在idea下使用java将Log4j日志实时写入Kafka(Kafka实时日志写入)

    7、Spark基本架构及原理

     

    四、大数据常见错误合集(环境搭建和实际项目操作)

    1、windows下运行mapreduce报错Could not locate executable null bin winutils.exe in the Hadoop binaries 解决方案

    2、windows下运行mapreduce报错The auxService mapreduce_shuffle do 解决方案

    3、Hadoop HA 高可用集群启动报错 Encountered exception loading fsimage 解决方案

    4、Hadoop HA 高可用集群格式化NameNode后启动没有DataNode

    5、Hive启动hiveserver2报错:Could not open client transport with JDBC Uri解决方案

    6、Hive2.x版本创建表报错:Unable to instantiate org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient

    7、使用hive的beeline连接报错hadoop is not allowed to impersonate hadoop (state=08S01,code=0)解决方案

    8、Hbase错误总结:Hbase未正常关闭启动报错

    9、Hbase错误总结:Hbase连接不上Zookeeper

    10、kafka启动报错is empty Please build the project first e.g. by running gradlew jar

     

    五、大数据的离线和实时数据处理流程分析

    1、

    2、

     

    展开全文
  • 前言 ...首先,我需要下载虚拟机Parallels Desktop 14.0.1提取码: vycc 安装后,会选择虚拟机下载Centos 7,根据步骤安装就好。 注意点: 我们在软件安装完成的时候,登陆软件需要翻墙和代理。 ...

    前言

    其实之前就看过好多一部分大数据的视频,但是由于工作的原因一直没能坚持下来久而久之又忘记了,时间总是挤出来的,自己每天能进步一点学习一点就好,学习都是一个积少成多的过程,我会一步步的记录下我学习大数据的过程。目前我是用Mac进行研发的,所以我会围绕着Mac下搭建虚拟机来学习大数据。

    虚拟机的安装和配置静态IP

    Centos的系统安装

    • 首先,我需要下载虚拟机Parallels Desktop 14.0.1提取码: vycc
    • 安装后,会选择虚拟机下载Centos 7,根据步骤安装就好。
      在这里插入图片描述

    PS:我们再选择安装的时候,一定要注意看字,就使用当前的安装包进行安装,中途不需要去登陆Google账号。

    关闭屏幕保护

    每次经过一段时间后,就会进入屏保状态之后进入界面又会输入密码很耽误事,所以,我在这里配置下虚拟机从图形化界面关闭屏保的操作。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    给虚拟机配置静态网址

    查看网段

    首先,我们需要在配置中去查看下Shared状态下,我们的网段地址。
    在这里插入图片描述

    修改网卡配置

    通常情况下,我们服务器都会有一个固定的ip,因为我们的客户端访问的时候,不可能每次都会去更改客户端的配置文件ip,所以这里我们需要给服务器配置一个静态的IP地址,首先,使用命令sudo vi /etc/sysconfig/network-scripts/ifcfg-eth0编辑网络配置文件,然后更改下面5个位置。

    • ONBOOT 字段表示是否开机是自动启用该网卡
    • BOOTPROTO 字段表示IP地址是动态DHCP还是静态STATIC,初始值是DHCP,我们把它改成 STATIC
    • IPADDR 字段就是我们要设置的静态IP地址了,我们把它设置成 10.211.55.9
    • GATEWAY 字段表示网关,一般都是 xxx.xxx.xxx.1 做为网关
    • NETMASK 字段表示子网掩码,这个学过网络的基本都知道要填写 255.255.255.0
    [parallels@localhost ~]$ cat /etc/sysconfig/network-scripts/ifcfg-eth0
    TYPE=Ethernet
    BOOTPROTO=static
    DEFROUTE=yes
    PEERDNS=yes
    PEERROUTES=yes
    IPV4_FAILURE_FATAL=no
    IPV6INIT=yes
    IPV6_AUTOCONF=yes
    IPV6_DEFROUTE=yes
    IPV6_PEERDNS=yes
    IPV6_PEERROUTES=yes
    IPV6_FAILURE_FATAL=no
    IPV6_ADDR_GEN_MODE=stable-privacy
    DEVICE=eth0
    NAME=eth0
    UUID=9410076c-bee9-4886-af6c-537c17bcfee0
    DEVICE=eth0
    ONBOOT=yes
    IPADDR=10.211.55.9
    NETMASK=255.255.255.0
    GATEWAY=10.211.55.1
    

    当配置完成以后,需要让重启网卡。
    在这里插入图片描述
    查看修改情况

    [parallels@localhost ~]$ ifconfig eth0
    eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
            inet 10.211.55.9  netmask 255.255.255.0  broadcast 10.211.55.255
            inet6 fdb2:2c26:f4e4:0:d5a2:332c:f355:9ca0  prefixlen 64  scopeid 0x0<global>
            inet6 fe80::d41a:a6de:73c6:70fd  prefixlen 64  scopeid 0x20<link>
            ether 00:1c:42:38:be:fd  txqueuelen 1000  (Ethernet)
            RX packets 2734  bytes 2235331 (2.1 MiB)
            RX errors 0  dropped 0  overruns 0  frame 0
            TX packets 4575  bytes 383825 (374.8 KiB)
            TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
    
    

    使用ping命令测试下:

    [parallels@localhost ~]$ ping www.baidu.com
    PING www.a.shifen.com (61.135.169.125) 56(84) bytes of data.
    64 bytes from 61.135.169.125 (61.135.169.125): icmp_seq=1 ttl=128 time=39.8 ms
    64 bytes from 61.135.169.125 (61.135.169.125): icmp_seq=2 ttl=128 time=56.4 ms
    64 bytes from 61.135.169.125 (61.135.169.125): icmp_seq=3 ttl=128 time=39.8 ms
    64 bytes from 61.135.169.125 (61.135.169.125): icmp_seq=4 ttl=128 time=51.6 ms
    64 bytes from 61.135.169.125 (61.135.169.125): icmp_seq=5 ttl=128 time=53.6 ms
    64 bytes from 61.135.169.125 (61.135.169.125): icmp_seq=6 ttl=128 time=43.5 ms
    ^C
    --- www.a.shifen.com ping statistics ---
    6 packets transmitted, 6 received, 0% packet loss, time 5011ms
    rtt min/avg/max/mdev = 39.852/47.509/56.464/6.681 ms
    

    可以ping通代表配置好了。

    远程登陆

    • 查找虚拟机的ip和当前用户名
      在这里插入图片描述
    • Mac远程登陆

    执行ssh命令:ssh 【用户名】@【服务器ip地址】

    ssh parallels@10.211.55.100
    

    来看看效果图:
    在这里插入图片描述

    克隆虚拟机后需要更改的一些操作

    这部分内容属于我自己的拓展内容,可以不予理会。如果想了解也可以看下。
    学习大数据的时候,是需要多台虚拟机来进行操作的,这里就避免不了去修改一些虚拟机的IP网络和Host文件,便于学习使用,下面就是一些操作。

    • 修改Mac地址
      使用命令sudo vi /etc/udev/rules.d/70-persistent-net.rules将第一行删除,保留第二行的数据,并且将第二行的Mac地址保存,在网卡中修改为此地址即可。
      在这里插入图片描述
      PS:这里是操作系统CentOS6的操作,如果这里是7可以不做此操作。
    • 修改IP地址
      按照上面修改网卡配置操作即可
    • 修改HostName
      目前,我们需要为我们主机使用命令sudo vi /etc/sysconfig/network配置
      在这里插入图片描述
    • 修改Host文件
      sudo vi /etc/hosts命令修改Host文件10.211.55.101
      在这里插入图片描述

    最后,重启电脑,最后使用命令Ping一下自己的主机表示配置成功。

    小结

    我们在配置静态IP的时候一定要去查看下,我们的网段,只有在网段中的ip才能生效。

    参考文档

    展开全文
  • 简要回顾了Hadoop的基本知识,介绍了基于Ubuntu的Hadoop伪分布式环境搭建

    Hadoop简介

    在进行环境搭建之前,先简要回顾一下Hadoop的基本知识。

    Hadoop背景

    Hadoop是面向集群的分布式并行计算框架(cluster、distributed、parallel),其核心组成是HDFS分布式文件系统和MapReduce并行编程模型。在开发者的业务背景下(如数据分析项目),Hadoop可被视为一套工具,它解决了并行计算中的种种复杂问题(如分布式存储,任务调度,负载均衡,容错机制…),让我们能够绕开底层细节,专注于业务自身的实现。

    Hadoop主要经历了Hadoop1和Hadoop2两个时代,Hadoop2在Hadoop1的HDFS+MapReduce的基础上,引入了YARN资源管理系统,hadoop核心区别如下图示:

    这里写图片描述

    Hadoop的快速发展与大数据、云计算等新兴领域的崛起相辅相成,围绕Hadoop形成的生态系统现已十分庞大,相关内容按下不表。

    基本原理回顾

    这里简要回顾一下Hadoop的基本工作机制,包括HDFS和MapReduce两部分。

    1. HDFS

      HDFS(Hadoop-分布式文件系统)遵循主从架构(Master-Slave)模式。一个主节点NameNode,负责整个文件系统命名空间(NameSpace)的管理与维护,同时面向客户端(HDFS Client)提供文件读写等操作控制;多个从节点DataNode则构成文件实际的存储集群。此外HDFS为提升系统生存弹性而精心设计了副本机制(Replication)。其它需明确的HDFS术语包括:块(Block)、通信包(Packet)、源数据(MetaData)、Secndary NameNode冷备份等等。

      HDFS的架构示意图如下所示:

      这里写图片描述

      文件系统最基本的任务是读/写,对于HDFS为用户(Client)提供了完备的读写接口。基本的模式是通过访问NameNode的命名空间映射信息,建立起Client与DataNode File之间的读写通道,生成流对象来进行读写操作。下图是读写文件示意图:

      这里写图片描述
      这里写图片描述

    2. MapReduce

      MapReduce是Hadoop实现并行计算的基础(称之为模型、框架、平台…),首先回顾一下Hadoop-MapReduce的运行,主要有以下内容:

      • 用户端Client提交所要进行的MapReduce Job;
      • ResourceManager进行资源调配设置,NodeManager加载与监控容器;
      • ApplicationMaster向ResourceManager申请资源并交互状态;
      • NodeManager管理MapReduce运行时的Job;
      • 基于HDFS的Job配置,jar包的分发;

      下图所示是Hadoop2下基于YARN的MapReduce过程示意图:

      这里写图片描述

      重点地,MapReduce运行的核心是Map和Reduce,一个完整MapReduce程序执行主要经历:输入分片(input split)、映射(map)、结合(combiner)、洗牌(shuffle)、化简(reduce)几个阶段,详情按下不表。

    Hadoop环境搭建

    准备工作

    本文Hadoop安装的一些准备信息(不限于此):

    • 系统环境:Ubuntu 16.04 64bit.
    • Java环境:系统自带Java8(JDK-1.8).
    • Hadoop版本:Apache Hadoop 2.7.3.

    安装过程

    整个安装过程详情可参考:

    java、ssh

    安装Hadoop首先要配置好java环境ssh登录支持,建议jdk1.7及以上版本java和免密码登录的ssh。java要配置好环境变量,ubuntu16.04自带ssh,可直接运行。

    为了方便hadoop节点构建(包括权限冲突的规避),新建一个名为hadoop的新用户,执行下列命令即可:

    sudo useradd -m hadoop -s /bin/bash  # 新建用户名为hadoop采用bash为shell
    sudo passwd hadoop  # 设置新用户密码
    sudo adduser hadoop sudo  # 为其添加root权限接入
    

    于是我们可以进入hadoop用户继续环境搭建操作。

    hadoop安装文件获取

    可以直接从各路镜像网站(如华科开源镜像站的/apache/hadoop/common/)下载hadoop安装文件或带编译源文件(如hadoop-2.7.3.tar.gz)。由于文件的来源可能不稳定规范,为了验证文件数据完整性,还需要从Apache - 官方镜像的/hadoop/common/hadoop-2.7.3路径下下载.asc或.mds文件,这里我们选择hadoop-2.7.3.tar.gz.mds进行MD5 hash的验证。

    下载好文件后,执行命令:

    cat hadoop-2.7.3.tar.gz.mds | grep 'MD5' # 列出md5检验值
    md5sum hadoop-2.7.3.tar.gz | tr "a-z" "A-Z" # 获取hadoop主文件md5检验值。
    

    比较二者结果是否相同即可以判断文件是否完整,如下认证示意:

    这里写图片描述

    验证通过后,可直接解压到目标文件夹,并为hadoop用户配置读写权限,示意命令如下:

    sudo tar -zxf hadoop-2.7.3.tar.gz -C /usr/local  # 这里解压到/usr/local中
    cd /usr/local/
    sudo mv ./hadoop-2.7.3/ ./hadoop  # 重命名方便后续使用
    sudo chown -R hadoop ./hadoop  # 修改hadoop用户对该文件夹的权限
    

    同时加入环境变量(可修改环境变量配置文件如~/.bashrc):

    export HADOOP_HOME=/usr/local/hadoop
    export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
    

    单机模式

    Hadoop默认为单机模式,所谓单机模式(Standalone),即是Hadoop本地运行,无节点间的交互,也无需HDFS的操作,一般用于测试MapReduce逻辑。为了更好的学习Hadoop,我们跳过该模式。

    伪分布式模式

    所谓伪分布式,是在单机条件下模拟分布式集群运行环境,它包括各种Java进程对不同Hadoop节点任务的模拟(如NameNode、DataNode和SourceManager、NodeManager等),以及和HDFS的交互。

    这里的配置过程主要是hadoop文件目录下./etc/hadoop/中相关.xml文件中修改 configuration*片段的修改,给出如下(详细说明见参考):

    基本配置:

    • core-site.xml

      <configuration>
              <property>
                   <name>hadoop.tmp.dir</name>
                   <value>file:/usr/local/hadoop/tmp</value>
                   <description>Abase for other temporary directories.</description>
              </property>
              <property>
                   <name>fs.defaultFS</name>
                   <value>hdfs://localhost:9000</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:/usr/local/hadoop/tmp/dfs/name</value>
              </property>
              <property>
                   <name>dfs.datanode.data.dir</name>
                   <value>file:/usr/local/hadoop/tmp/dfs/data</value>
              </property>
      </configuration>
      

    YARN配置:

    • mapred-site.xml

      先是重命名:

      mv ./etc/hadoop/mapred-site.xml.template ./etc/hadoop/mapred-site.xml   
      

      然后修改 configuration 片段:

      <configuration>
              <property>
                   <name>mapreduce.framework.name</name>
                   <value>yarn</value>
              </property>
      </configuration>
      
    • yarn-site.xml

      <configuration>
              <property>
                   <name>yarn.nodemanager.aux-services</name>
                   <value>mapreduce_shuffle</value>
              </property>
      </configuration>
      

    格式化NameNode,终端命令:

    ./bin/hdfs namenode -format
    

    注意,这一步的结果应如下所示(注意画线处):

    这里写图片描述

    接着生成HDFS文件系统:

    ./bin/hdfs dfs -mkdir -p /user/hadoop  # 这里hadoop是用户名
    ./bin/hdfs dfs -mkdir input
    ./bin/hdfs dfs -put ./etc/hadoop/*.xml input
    

    环境测试

    经过上述配置过程之后,可通过./bin/hdfs dfs -ls input命令查看所生成的HDFS文件列表,通过./sbin/start-dfs.sh启动守护进程NameNodeDataNode,通过./sbin/start-yarn.sh启动守护进程ResourceManagerNodeManager(对应的停止命令将start改为stop),通过jps命令可查看当前hadoop进程如下图示:

    这里写图片描述

    停止YARN脚本的命令是:

    ./sbin/stop-yarn.sh
    ./sbin/mr-jobhistory-daemon.sh stop historyserver
    

    Hadoop运行中,可通过 http://localhost:50070 查看NameNode、Datanode等节点信息,通过 http://localhost:8088/cluster 查看YARN上任务状态。

    本文小结

    搭建Hadoop环境为分布式并行任务开发创造了条件,接下来的工作将围绕基于Hadoop框架的数据挖掘研究展开。

    参考

    列出与本文内容紧密相关的参考源如下:

    展开全文
  • hive hadoop 大数据初探

    2019-08-10 20:17:49
    一、环境搭建: 1、安装虚拟机,mac 系统推荐parallels;直接转化讲师发的xmdl后缀名的文件;里面自带了环境; 注意事项:mac 本机和虚拟机中centos 的通讯,需要修改centos中得hosts;命令:vi etc/hosts ...
  • HADOOP Ubuntu18.04虚拟环境搭建 前言  为了更好的获取网上资料的支持,我还是决定转到Linux环境下(Mac上做大数据的资料太少啦,出了问题半天都解决不了)。 1、系统环境  物理机环境 - - - macOS Mojave 10.14.6...
  • 我是用的是parallels desktop 来安装,安装步骤详见: 链接: Mac os上配置PD虚拟机,使其共享网络访问公网. vi /etc/sysconfig/network-scripts/ifcfg-eth0进行网络环境的相关配置: 设置DNS解...
  • ELK简介Elasticsearch Elasticsearch是一个实时的分布式搜索分析引擎, 它能让你以一个之前从未有过的速度和规模,去探索你的数据。它被用作全文检索、结构化搜索、分析以及这三个功能的组合: ...
  • 大数据生态对每个组成的技术版本有一定要求,如果不是适配版本,则很可能会出现各种问题。像hadoop1.x、2.x、3.x每个大版本都有很大区别,如果基于Hadoop-hdfs去搭建诸如hive数据仓库或者hbase数据库的时候,对版本...
  • HBase是Apache Hadoop的数据库,能够对大数据提供随机、实时的读写访问功能,具有开源、分布式、可扩展及面向列存储的特点。HBase是由Chang等人基于Google的Bigtable开发而成的。HBase的目标是存储并处理大型的数据...
  • Hadoop–mac 上利用虚拟机安装hadoop步骤整理 本文仅提供详细步骤,不提供详尽解释 VMware fusion虚拟机配置静态IP ######mac book 执行获取 [tonerMac-Pro:~ toner]$ cd /Library/Preferences/VMware\ Fusion/vmnet...
  • Hadoop的运行环境搭建 创建文件夹 更改用户权限 一般情况下,在一些特定的目录中需要一些权限来创建文件夹,但是频繁的去切换到root用户比较麻烦,其实我们可以通过修改/etc/soduers文件来做到当前用户也能获取...
  • ELK 6.1环境搭建(转)

    2018-02-06 15:57:02
    ELK简介 Elasticsearch Elasticsearch是一个实时的分布式搜索分析引擎, 它能让你以一个之前从未有过的速度和规模,去探索你的数据。它被用作全文检索、结构化搜索、分析以及这三个功能的组合: ...
  • ELK日志平台介绍在搜索ELK资料的时候,发现这篇文章比较好,于是摘抄一小段:日志主要包括系统日志、应用程序日志和安全日志。系统运维和开发人员可以通过日志了解服务器软硬件信息、检查配置过程中的错误及错误发生...
  • ELK日志平台介绍 在搜索ELK资料的时候,发现这篇文章比较好,于是摘抄一小段: 日志主要包括系统日志、应用程序日志和安全日志。系统运维和开发人员可以通过日志了解服务器软硬件信息、检查配置过程中的错误及...
  • Hadoop笔记 实验环境 Ubuntu 18.04 jdk1.8.251 Hadoop3.1.3 1、Hadoop的三种运行模式(启动模式) 1.1、单机模式(独立模式)(Local或Standalone Mode) ...默认情况下,Hadoop即处于该模式,用于开发和调式。...
  • 1.确认ssh服务已经安装并打开: 2.打开文件/etc/ssh/sshd_config,确保以下配置已经添加(如果被"#“注释了就把”#"删除,用sudo完成): AuthorizedKeysFile .ssh/authorized_keys PubkeyAuthentication yes ...
  • Java全栈工程实践

    2018-04-12 16:48:31
    Java全栈工程实践
  • 本文关键字:环境搭建、虚拟化、VMware、Windows。VMware提供了一系列十分强大的虚拟化软件,支持多个系统平台,提供了个人及企业级解决方案。我们可以使用它来安装Windows各版本、Linux各发行版、甚至是Mac系统,...
1 2
收藏数 33
精华内容 13