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 hadoop@192.168.0.222

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

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

Host servername
User username
Hostname serverIP

 

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

# hadoop@192.168.0.222的别名
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
<configuration>
       <property>
                <name>fs.defaultFS</name>
                <value>hdfs://master:9000</value>
             <description>设定namenode的主机名及端口(建议不要更改端口号)</description>
       </property>
       <property>
                <name>io.file.buffer.size</name>
                <value>131072</value>
        <description> 设置缓存大小 </description>
        </property>
       <property>
               <name>hadoop.tmp.dir</name>
               <value>file:/home/hadoop/hadoop-2.7.4/tmp</value>
               <description> 存放临时文件的目录 </description>
       </property>
       
       <property>
            <name>hadoop.security.authorization</name>
            <value>false</value>
        </property>
</configuration>
 
  • 修改 /home/hadoop-2.7.4/etc/hadoop/hdfs-site.xml
<configuration>
    <property>
        <name>dfs.namenode.name.dir</name>
        <value>file:/home/hadoop/hadoop-2.7.4/hdfs/name</value>
        <description> namenode 用来持续存放命名空间和交换日志的本地文件系统路径 </description> 
    </property>
    <property>
        <name>dfs.datanode.data.dir</name>
        <value>file:/home/hadoop/hadoop-2.7.4/hdfs/data</value>
        <description> DataNode 在本地存放块文件的目录列表,用逗号分隔 </description> 
    </property>
    <property>
        <name>dfs.replication</name>
        <value>2</value>
        <description> 设定 HDFS 存储文件的副本个数,默认为3 </description>
    </property>
    <property>
        <name>dfs.webhdfs.enabled</name>
        <value>true</value>
    </property>
    <property>
        <name>dfs.permissions</name>
        <value>false</value>
    </property>
</configuration>
 
  • 修改 /home/hadoop-2.7.4/etc/hadoop/mapred-site.xml
<configuration>  
    <property>
        <name>mapreduce.framework.name</name>
                <value>yarn</value>
                <final>true</final>
        </property>
    <property>
        <name>mapreduce.jobtracker.http.address</name>
        <value>master:50030</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>
        <property>
                <name>mapred.job.tracker</name>
                <value>http://master:9001</value>
        </property>
</configuration>

 

 

  • 修改 /home/hadoop-2.7.4/etc/hadoop/yarn-site.xml
<configuration>
        <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>
        <property>
               <name>yarn.resourcemanager.address</name>
               <value>master:8032</value>
       </property>
       <property>
               <name>yarn.resourcemanager.scheduler.address</name>
               <value>master:8030</value>
       </property>
       <property>
            <name>yarn.resourcemanager.resource-tracker.address</name>
             <value>master:8031</value>
      </property>
      <property>
              <name>yarn.resourcemanager.admin.address</name>
               <value>master:8033</value>
       </property>
       <property>
               <name>yarn.resourcemanager.webapp.address</name>
               <value>master:8088</value>
       </property>
</configuration>

 

 

  • 创建对应的文件夹   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各个文件配置的详解:

      以后有时间好好看下 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值