zoukankan      html  css  js  c++  java
  • Linux集群搭建与Hadoop环境搭建

      今天是8月19日,距离开学还有15天,假期作业完成还是遥遥无期,看来开学之前的恶补是躲不过了

      今天总结一下在Linux环境下安装Hadoop的过程,首先是对Linux环境的配置,设置主机名称,网络设置、关闭防火墙、安装JDK、配置环境变量

      免密钥登录配置:大数据集群中的Linux计算机之间需要频繁分通信,免密钥登录是指两台Linux计算机之间不需要用户名和密码的SSH链接,默认状态下,SSH链接是需要密码认证的,但是可以通过修改系统认证,使系统通信免除密码输入和SSH认证

      首先终端生成密钥:

    ssh-keygen -t rsa

    再将公钥文件复制到.ssh目录下,复制后可以修改文件的权限

    chmod 600 ~/.ssh/authorized_keys

    将authorized_keys复制到其他节点

    scp ~/.ssh/authorized_keys lqy0@linux0:~/

    以上是关于主节点的配置,接下来是子节点的配置

    还是执行生成密钥的命令,将主节点转移过来的authrized_keys移动到.ssh目录下,并修改它的权限

    同样先生成密钥

    ssh-keygen -t rsa

    将从主节点复制过来的authorized_keys复制到.ssh目录下

    mv authorized_keys ~/.ssh/

    再修改authorized_keys的权限

    chmod 600 authorized_keys

    1      Hadoop环境搭建

    1)     设置DNS,这里是一主两从

    Master的hosts文件修改,需要添加所有节点的ip及域名,包括master和所有的slave

    Sudo vi /etc/hosts 添加以下内容:

    127.0.0.1            localhost
    
    192.168.1.100   namenode-master
    
    192.168.1.101   datanode-slave1
    
    192.168.1.103   datanode-slave2

    Slave的hosts文件修改,仅需要添加master和本机的ip和域名

    Sudo vi /etc/hosts 添加以下内容:

    127.0.0.1            localhost
    
    192.168.1.100   namenode-master
    
    192.168.1.101   datanode-slave1
    
    或
    
    192.168.1.103   datanode-slave2

    2)     修改hostname

    vi /etc/hostname

    分别把各个机器的hostname设置为hosts文件中设置的dns

    namenode-master
    
    datanode-slave1
    
    datanode-slave2

    3)     所有机器添加grid用户,并设置sudo权限

    useradd -m grid  #添加用户

    passwd grid  #为gird用户设置密码,这里设置为grid

    root权限下,vi /etc/sudoers,添加以下内容:

    grid ALL=(ALL)  NOPASSWD:ALL

    4)     安装SSH

    Hadoop运行过程中需要管理远端的Hadoop守护进程,所有的机器都安装ssh

    Sudo apt-get install ssh

    5)     所有机器都在grid的家目录下创建.ssh文件夹

    mkdir ~/.ssh  或者  mkdir /home/grid/.ssh

    6)     SSH配置

    在master的家目录下运行,ssh-keygen -t rsa,一直按回车键,将会按照默认的选项生成秘钥对,保存在.ssh/id_rsa文件中

    接着执行以下命令:

    cp id_rsa.pub authorized_keys

    scp authorized_keys datanode-slave1:/home/grid/.ssh

    scp authorized_keys datanode-slave2:/home/grid/.ssh

    然后设置所有节点authorized_keys文件的权限为644

    Sudo chmod 644 authorized_keys

    7)     安装JDK

    在master上操作,把SDK安装包分别远程拷贝到所有从节点中

    scp jdk-7u25-linux-x64.tar.gz datanode-slave1:/home/grid/下载/jdk-7u25-linux-x64.tar.gz

    scp jdk-7u25-linux-x64.tar.gz datanode-slave2:/home/grid/下载/jdk-7u25-linux-x64.tar.gz

    将jdk-7u25-linux-x64.tar.gz解压到/usr/local/java/中

    tar -zxvf jdk-7u25-linux-x64.tar.gz

    sudo mv ./jdk1.7.0_25 /usr/local/java/jdk1.7.0_25

    8)     配置jdk环境变量(所有节点都需要配置)

    编辑/etc/profile

    vi /etc/profile

    最后面加上

    export JAVA_HOME=/usr/local/java/jdk1.7.0_25 #jdk的解压目录
    
    export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
    
    export PATH=$PATH:$JAVA_HOME/bin
    
    export JAVA_HOME CLASSPATH PATH

    重启配置文件

    source /etc/profile

    9)     安装配置hadoop(所有节点都需配置)

    解压tar -zxvf hadoop-2.6.0.tar.gz

    剪切到/usr/local/下

    配置环境变量 vi /etc/profile

    添加export HADOOP_HOME=/usr/local/hadoop-2.6.0

    重启配置文件生效 source /etc/profile

    10)   配置hadoop(所有节点都配置)

    创建以下目录:

    sudo mkdir /usr/local/hadoopdata
    
    sudo mkdir -p /usr/local/hadoopdata/dfs/name
    
    sudo mkdir -p /usr/local/hadoopdata/dfs/data

    改变这三个文件夹的owner

    sudo chown –R grid:grid /usr/local/hadoopdata

    11)   配置hadoop-env.sh

    hadoop-2.6.0/etc/hadoop目录下

    vi hadoop-env.sh修改jdk地址

    export JAVA_HOME=/usr/local/java/jdk1.7.0_25

    12)   配置core-site.xml

    hadoop-2.6.0/etc/hadoop目录下

    vi core-site.xml

    <configuration>
    
    <property>
    
    <name>fs.default.name</name>
    
    <value>hdfs://namenode-master:9000</value>
    
    </property>
    
    <property>
    
    <name>hadoop.tmp.dir</name>
    
    <value>/usr/local/hadoopdata</value>
    
    </property>
    
    </configuration>

    13)   配置hdfs-site.xml

    hadoop-2.6.0/etc/hadoop目录下

    vi hdfs-site.xml

    添加如下代码

    <configuration>
    
    <property>
    
        <name>dfs.name.dir</name>
    
        <value>file:/usr/local/hadoopdata/dfs/name</value>
    
        <description>Path on the local filesystem where the NameNode stores the namespace and transactions logs persistently.</description>
    
    </property>
    
    <property>
    
        <name>dfs.data.dir</name>
    
        <value>file:/usr/local/hadoopdata/dfs/data</value>
    
        <description>Comma separated list of paths on the local filesystem of a DataNode where it should store its blocks.</description>
    
    </property>
    
    <property>
    
        <name>dfs.replication</name>
    
        <value>2</value>
    
    </property>
    
    </configuration>

    14)   配置mapred-site.xml

    hadoop-2.6.0/etc/hadoop目录下

    先复制

    cp mapred-site.xml.template mapred-site.xml

    vi mapred-site.xml

    <configuration>
    
    <property>
    
    <name>mapred.job.racker</name>
    
    <value>namenode-master:9001</value>
    
    </property>
    
    <property>
    
    <name>mapreduce.framework.name</name>
    
    <value>yarn</value>
    
    </property>
    
    <property>
    
    <name>mapreduce.jobtracker.http.address</name>
    
    <value>namenode-master:50030</value>
    
    </property>
    
    <property>
    
    <name>mapreduce.jobhistory.address</name>
    
    <value>namenode-master:10020</value>
    
    </property>
    
    <property>
    
    <name>mapreduce.jobhistory.webapp.address</name>
    
    <Value>namenode-master: 19888</value>
    
    </property>
    
    </configuration>

    15)   配置yarn-site.xml文件,增加yarn功能

    hadoop-2.6.0/etc/hadoop目录下

    vi yarn-site.xml

        

    <Configuration>
    
          <property>
    
           <name>yarn.scheduler.maximum-allocation-mb</name>
    
           <value>3890</value>
    
          </property>
    
               <property>
    
           <name>yarn.nodemanager.local-cache.max-files-per-directory</name>
    
           <value>3890</value>
    
          </property>
    
              <property>
    
           <name>yarn.nodemanager.resource.memory-mb</name>
    
           <value>3000</value>
    
          </property>
    
      <property>
    
           <name>yarn.resourcemanager.address</name>
    
           <value>namenode-master:8032</value>
    
          </property>
    
          <property>
    
           <name>yarn.resourcemanager.scheduler.address</name>
    
           <value>namenode-master:8030</value>
    
          </property>
    
          <property>
    
           <name>yarn.resourcemanager.resource-tracker.address</name>
    
           <value>namenode-master:8035</value>
    
          </property>
    
          <property>
    
           <name>yarn.resourcemanager.admin.address</name>
    
           <value>namenode-master:8033</value>
    
          </property>
    
          <property>
    
           <name>yarn.resourcemanager.webapp.address</name>
    
           <value>namenode-master:8088</value>
    
          </property>
    
    </configuration>

    16)   配置masters与slaves

    配置masters

    sudo vi masters

    添加如下内容:

    namenode-master

    配置slaves

    sudo vi slaves

    添加如下内容:

    datanode-slave1

    datanode-slave2

    17)   配置从节点hadoop

    复制到从节点

    scp -r hadoop-2.6.0 datanode-slave1:/home/grid/hadoop-2.6.0

    scp -r hadoop-2.6.0 datanode-slave2:/home/grid/hadoop-2.6.0

    将hadoop-2.6.0移动到/usr/local下

    sudo mv ../hadoop-2.6.0 /usr/local/

    18)   格式化NameNode

     /usr/local/hadoop-2.6.0/目录下

    ./bin/hdfs namenode –format

    19)   开启与关闭hdfs和yarn

     /usr/local/hadoop-2.6.0/目录下

    ./sbin/start-dfs.sh  #开启hdfs

    ./sbin/stop-dfs.sh  #关闭hdfs

    ./sbin/start-yarn.sh  #开启yarn服务

    ./sbin/stop-yarn.sh  #关闭yarn服务

    20)   用jps命令测试是否安装成功

     

     

     

    2      Hive的安装

    仅需配置主节点

    1)     创建Hive数据目录

    #创建数据仓库目录

    sudo mkdir -p /usr/local/hive/warehouse    

    #创建数据临时目录

    sudo mkdir mkdir -p /usr/local/hive/tmp

    #创建IO临时目录

    sudo mkdir mkdir -p /usr/local/hive/iotmp  

    2)     配置环境变量

    sudo vi /etc/profile,添加如下内容

    export HIVE_HOME=/usr/local/apache-hive-2.0.0-bin

    export PATH=$PATH:$HIVE_HOME/bin:$HIVE_HOME/conf

    source /etc/profile

    3)     配置hive-site.xml

    #设置仓库目录

     

     <property>
    
        <name>hive.metastore.warehouse.dir</name>
    
        <value>/usr/hive/warehouse</value>
    
        <description>location of default database for the warehouse</description>
    
      </property>

    #Hive的数据临时文件目录

    <property>
    
        <name>hive.exec.scratchdir</name>
    
        <value>/usr/local/hive/tmp</value>
    
        <description>HDFS root scratch dir for Hive jobs which gets created with write all (733) permission. For each connecting user, an HDFS scratch dir: ${hive.exec.scratchdir}/&lt;username&gt; is created, with ${hive.scratch.dir.permission}.</description>
    
      </property>
  • 相关阅读:
    关于模式窗体的缓存问题的解决方案
    C# 读取网页
    C# 压缩文件
    C#实现反射调用动态加载的DLL文件中的方法
    在线程中修改窗体控件内容
    C# 启用双缓存,避免ListView控件加载数据时闪烁
    JBuilder2005破解方法
    C# combbox datatable 赋值
    今天感觉到秋凉了~
    烦人的流程图~~~
  • 原文地址:https://www.cnblogs.com/1605-3QYL/p/9499630.html
Copyright © 2011-2022 走看看