hadoop配置

目录

1.搭建hadoop要求:

2.创建虚拟机

3. 免用户名登录

 4. 免用户名登录 

5. 配置hadoop

6. 参看文章:

7. 关于hadoop各个文件配置的详解:


 

1.搭建hadoop要求:

  • VirtualBox
  • ubuntu16.04
  • jdk1.8
  • hadoop2.7.4

2.创建虚拟机

    note:

            共创建3个虚拟机:master,slave1,slave2。这里用户均设置为hadoop

            3个虚拟机的网络设置: 桥接

3. 免用户名登录

    在linux下,要远程连接另外一台linux服务器,可以使用ssh:

ssh [email protected]

这样输入用户名和IP很麻烦。 在用户根目录下的.ssh文件内创建config文件(若没有config, 用touch config创建),如下:

在其中以类似如下的格式输入要登陆的服务器的相关信息:

Host servername
User username
Hostname serverIP

 

其中的servername是服务器的别名,username是用户名,serverIP就是这台服务器的IP。比如最前面的那个登陆命令,就可以写成下面的形式:

# [email protected]的别名
Host server18
User hadoop
Hostname 192.168.0.222

virtualbox创建的3台虚拟机的config文件均设置:

# namenode设置为master
Host master
# namenode节点的用户名
User hadoop
# namenode节点的IP
Hostname 58.198.176.202

# dataname设置为slave1
Host slave1
User hadoop
# dataname的IP
Hostname 58.198.176.34

Host slave2
User Hadoop
Hostname 58.198.177.6

这样可以直接:

hadoop@master:~$ ssh slave1

之后输入密码,方便登录。

 4. 免用户名登录 

        通过私匙和公匙实现免密码登录。具体原理参考如下链接:

                https://www.cnblogs.com/kex1n/p/6017963.html

实现在master下免密码登录slave1

  • 在用户目录下输入:
ssh-keygen -t rsa

然后按三下回车之后,会在.ssh目录下按照rsa算法生成id_rsa私匙和id_rsa.pub公匙 

  • id_rsa.pub公匙通过scp发送到slave1的.ssh目录下。 

        注意:slave1的.ssh目录下的文件所属的用户必须是hadoop。若不是,可以通过chown命令进行修改

  • cat id_rsa.pub >> authorized_keys
    在.ssh目录下生成authorized_keys文件(authorized_keys文件的必须属于hadoop用户)

  

5. 配置hadoop

参考:https://www.cnblogs.com/xiaochangwei/p/7466893.html

  •  在master上,下载hadoop 2.7.4压缩包,并解压到/home/hadoop目录下(用户目录)

        设置hadoop环境变量

sudo gedit /etc/profile

export HADOOP_HOME=/home/hadoop/hadoop-2.7.4
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
export YARN_CONF_DIR=$HADOOP_HOME/etc/hadoop


#别忘记source
source /etc/profile

 

  • sudo gedit /home/hadoop/hadoop-2.7.4/etc/hadoop/hadoop-env.sh 设置 :export JAVA_HOME=usr/local/java/jdk1.8.0_181

       sudo gedit /home/hadoop/hadoop-2.7.4/etc/hadoop/mapred-env.sh 设置: export JAVA_HOME=usr/local/java/jdk1.8.0_181

   别忘记source

source  /home/hadoop-2.7.4/etc/hadoop/hadoop-env.sh

 

  • 修改 /home/hadoop-2.7.4/etc/hadoop/core-site.xml

       
                fs.defaultFS
                hdfs://master:9000
             设定namenode的主机名及端口(建议不要更改端口号)
       
       
                io.file.buffer.size
                131072
         设置缓存大小 
        
       
               hadoop.tmp.dir
               file:/home/hadoop/hadoop-2.7.4/tmp
                存放临时文件的目录 
       
       
       
            hadoop.security.authorization
            false
        
 
  • 修改 /home/hadoop-2.7.4/etc/hadoop/hdfs-site.xml

    
        dfs.namenode.name.dir
        file:/home/hadoop/hadoop-2.7.4/hdfs/name
         namenode 用来持续存放命名空间和交换日志的本地文件系统路径  
    
    
        dfs.datanode.data.dir
        file:/home/hadoop/hadoop-2.7.4/hdfs/data
         DataNode 在本地存放块文件的目录列表,用逗号分隔  
    
    
        dfs.replication
        2
         设定 HDFS 存储文件的副本个数,默认为3 
    
    
        dfs.webhdfs.enabled
        true
    
    
        dfs.permissions
        false
    
 
  • 修改 /home/hadoop-2.7.4/etc/hadoop/mapred-site.xml
  
    
        mapreduce.framework.name
                yarn
                true
        
    
        mapreduce.jobtracker.http.address
        master:50030
    
    
            mapreduce.jobhistory.address
            master:10020
    
    
            mapreduce.jobhistory.webapp.address
            master:19888
    
        
                mapred.job.tracker
                http://master:9001
        

 

 

  • 修改 /home/hadoop-2.7.4/etc/hadoop/yarn-site.xml

        
               yarn.nodemanager.aux-services
               mapreduce_shuffle
        
                                                                        
                yarn.nodemanager.aux-services.mapreduce.shuffle.class
               org.apache.hadoop.mapred.ShuffleHandler
        
        
               yarn.resourcemanager.address
               master:8032
       
       
               yarn.resourcemanager.scheduler.address
               master:8030
       
       
            yarn.resourcemanager.resource-tracker.address
             master:8031
      
      
              yarn.resourcemanager.admin.address
               master:8033
       
       
               yarn.resourcemanager.webapp.address
               master:8088
       

 

 

  • 创建对应的文件夹   mkdir -p logs (其实可以先创建好了文件夹再复制,文件夹多了不影响)

           在每个节点上创建数据存储目录/home/hadoop/hadoop-2.7.4/hdfs 用来存放集群数据。
           在主节点node上创建目录/home/hadoop/hadoop-2.7.4/hdfs/name 用来存放文件系统元数据。
           在每个从节点上创建目录/home/hadoop/hadoop-2.7.4/hdfs/data 用来存放真正的数据。
           所有节点上的日志目录为/home/hadoop/hadoop-2.7.4/logs
           所有节点上的临时目录为/home/hadoop/hadoop-2.7.4/tmp

  • 复制配置好的配置到slave节点
    scp -r /home/hadoop/hadoop-2.7.4 slave1:/home/hadoop/hadoop-2.7.4
    scp -r /home/hadoop/hadoop-2.7.4 slave2:/home/hadoop/hadoop-2.7.4
  •  在master节点上配置hadoop salve配置文件 增加节点

          sudo gedit /home/hadoop-2.7.4/etc/hadoop/slaves

          增加

           salve1

           slave2

 

  • 格式化namenode和datanode并启动,(在master上执行就可以了 不需要在slave上执行)
      /home/hadoop/hadoop-2.7.4/bin/hadoop namenode -format
      /home/hadoop/hadoop-2.7.4/bin/hadoop datanode -format
      /home/hadoop/hadoop-2.7.4/sbin/start-all.sh

 

  • 17 通过jps命令查看是否启动成功
[hadoop@master ~]# jps
9187 Jps
3221 ResourceManager
3062 SecondaryNameNode
2856 NameNode

[hadoop@master ~]# ssh slave1
Last login: Sat Sep  2 00:25:55 2017 from master
[hadoop@slave1 ~]# jps
6044 Jps
2685 NodeManager
2590 DataNode

[hadoop@slave1 ~]# ssh slave2
Last login: Wed Aug 30 21:34:38 2017 from master
[hadoop@slave2 ~]# jps
2679 NodeManager
5994 Jps
2590 DataNode
 

说明hadoop启动成功

 

6. 参看文章:

https://www.cnblogs.com/xiaochangwei/p/7466893.html

https://www.cnblogs.com/kex1n/p/6017963.html 

7. 关于hadoop各个文件配置的详解:

      以后有时间好好看下 

 

你可能感兴趣的:(hadoop配置)