hadoop 2.8.1 集群搭建

1. 环境信息

IP地址主机名备注
10.0.1.118master主节点
10.0.1.227slave-1子节点1
10.0.1.226slave-2子节点2

说明:两个子节点分别做为datanode ,namenode 和secondnamenode 这里都放在主节点上。


2.新建用户(hadoop)

   统一使用hadoop用户管理安装集群

useradd -md /home/hadoop hadoop   
passwd hadoop  #设置密码  

3.ssh免密登录

   主节点:

[hadoop@master ~]$ ssh localhost #为了生成家目录下的.ssh 目录,有的话不需要执行
[hadoop@master ~]$ cd .ssh
[hadoop@master .ssh]$ ssh-keygen -t rsa #一路回车
[hadoop@master .ssh]$ cat id_rsa.pub >>authorized_keys

说明:以上操作同理在其他节点机上执行,执行后确保每个主机的authorized_keys文件 都有自己和其他成员的公钥id_rsa.pub(可以复制或者scp拷过去再重定向)。另外,

请注意:authorized_keys文件权限请修改成600(chmod 600 authorized_keys,否则后续验证可能不通过 )

执行后测试:

[hadoop@master .ssh]$ ssh hadoop@slave-1    #第一次是要自己输入YES,以后都可以不用输入密码直接登录(在hadoop用户下操作),另
Last login: Wed Sep 13 08:53:00 2017
[hadoop@slave-1 ~]$ 

4.配置hadoop

  下载hadoop包:

http://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common/hadoop-2.8.1/hadoop-2.8.1.tar.gz

下载JDK:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 

我下载的是jdk-8u131-linux-x64.rpm(下载后直接用root 执行(rpm   -ivh  jdk-8u131-linux-x64.rpm))

4.1 JDK安装        

请注意:一定要安装Oracle官网的JDK,不要用openJDK,因为后面要用到jps命令,openJDK是没有这个命令,为了以后方便请安装Oracle的JDK!!

[root@master ~]# cat /etc/profile  
.........#添加JAVA_HOME到最后  
export JAVA_HOME=/usr/java/jdk1.8.0_131/
export HADOOP_HOME=/home/hadoop/hadoop-2.8.1/  
export PATH=$PATH:$HADOOP_HOME/bin:$JAVA_HOME/bin



4.2 文件配置

hadoop 2.8.1 配置文件都在hadoop-2.8.1/etc/hadoop 目录下,另建议配置过程使用主机名代替IP,IP使用DHCP 的话,会发生改变,免密登陆会失效,修改配置文件会很麻烦!:

4.2.1 core-site.xml

<configuration>
<property>   
        <name>hadoop.tmp.dir</name>   
        <value>/home/hadoop/tmp</value>   
        <final>true</final>  
        <description>A base for other temporary directories.</description>   
    </property>   
    <property>   
        <name>fs.default.name</name>   
        <value>hdfs://master:9000</value>  
    <!-- hdfs://Master.Hadoop:22-->  
            <final>true</final>   
    </property>   
    <property>    
         <name>io.file.buffer.size</name>    
         <value>131072</value>    
    </property>  
</configuration>

4.2.2 hadoop-env.sh 

修改JAVA_HOME配置

# The java implementation to use.   
#请注意: 默认配置 export JAVA_HOME=${JAVA_HOME},按照这个配置本来只需要环境里面有JAVA_HOME变量即可,
但是实际上并没有起作用,再启动的时候还是报错没有JAVA_HOME,所以这里干脆直接写路径!!
export JAVA_HOME=/usr/java/jdk1.8.0_131/

4.2.3  hdfs-site.xml

 /home/hadoop/hdfs/下的目录自己手创建

<configuration>
 <property>   
            <name>dfs.replication</name>   
            <value>2</value>   
        </property>   
        <property>   
            <name>dfs.name.dir</name>   
            <value>/home/hadoop/hdfs/name</value>  
        </property>   
        <property>   
            <name>dfs.data.dir</name>   
            <value>/home/hadoop/hdfs/data</value>    

        </property>   
        <property>    
             <name>dfs.namenode.secondary.http-address</name>    
             <value>master:9001</value>    
        </property>    
        <property>    
             <name>dfs.webhdfs.enabled</name>    
             <value>true</value>    
        </property>    
        <property>    
             <name>dfs.permissions</name>    
             <value>false</value>    
        </property>    

</configuration>


4.2.4 mapred-site.xml 
没有该文件请 按照模板copy后,再编辑。

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

4.2.5 yarn-site.xml

<configuration>
   <property>    
  <name>yarn.resourcemanager.address</name>    
  <value>master:18040</value>    
</property>    
<property>    
  <name>yarn.resourcemanager.scheduler.address</name>    
  <value>master:18030</value>    
</property>    
<property>    
  <name>yarn.resourcemanager.webapp.address</name>    
  <value>master:18088</value>    
</property>    
<property>    
  <name>yarn.resourcemanager.resource-tracker.address</name>    
  <value>master:18025</value>    
</property>    
<property>    
  <name>yarn.resourcemanager.admin.address</name>    
  <value>master:18141</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>


4.2.6 slaves 

[hadoop@master hadoop]$ vi slaves
slave-1
slave-2

4.2.7 masters


[hadoop@master hadoop]$ vi masters
#添加主节点的主机名
master


5 配置hosts 文件
另需修改主机名:
后续可能数据节点启动了,但是连不上主节点。会报错


[root@master ~]# hostnamectl  --static set-hostname master  #centos 7 
[root@master ~]# 
 用root修改:
[root@master ~]# vi /etc/hosts
10.0.1.118 master
10.0.1.227 slave-1
10.0.1.226 slave-2

6 复制文件


[hadoop@master sbin]$ pwd
/home/hadoop/hadoop-2.8.1/sbin
[hadoop@master sbin]$ ./start-all.sh 
[hadoop@master sbin]$ ./stop-all.sh 
[hadoop@master sbin]$ jps #查看hadoop 组件

7 格式化namenode

[hadoop@master ~]$ hdfs namenode -format


8 启动hadoop

[hadoop@master sbin]$ pwd
/home/hadoop/hadoop-2.8.1/sbin
[hadoop@master sbin]$ ./start-all.sh 
[hadoop@master sbin]$ ./stop-all.sh 
[hadoop@master sbin]$ jps #查看hadoop 组件


9 web 查看集群状态

  http://10.0.1.118:50070/dfshealth.html#tab-datanode



上面 Live Nodes 可能在启动后十几秒后才能看到!耐心等等。



10.附录

 10.1 报错信息:

2017-09-12 15:51:11,134 WARN org.apache.hadoop.hdfs.server.datanode.DataNode: Block pool BP-2096182614-127.0.0.1-1505236916451 (Datanode Uuid a960ca3f-d58b-4342-b33a-32f415efdc34) service to 10.0.1.118/10.0.1.118:9000 is shutting down
org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.hdfs.protocol.UnregisteredNodeException): Unregistered server: DatanodeRegistration(10.0.1.118:50010, datanodeUuid=a960ca3f-d58b-4342-b33a-32f415efdc34, infoPort=50075, infoSecurePort=0, ipcPort=50020, storageInfo=lv=-57;cid=CID-06e4c25f-3fac-4187-8847-c764a889817a;nsid=1530532974;c=1505236916451)
        at org.apache.hadoop.hdfs.server.namenode.NameNodeRpcServer.verifyRequest(NameNodeRpcServer.java:1545)
        at org.apache.hadoop.hdfs.server.namenode.NameNodeRpcServer.sendHeartbeat(NameNodeRpcServer.java:1397)
        at org.apache.hadoop.hdfs.protocolPB.DatanodeProtocolServerSideTranslatorPB.sendHeartbeat(DatanodeProtocolServerSideTranslatorPB.java:119)
        at org.apache.hadoop.hdfs.protocol.proto.DatanodeProtocolProtos$DatanodeProtocolService$2.callBlockingMethod(DatanodeProtocolProtos.java:28421)
        at org.apache.hadoop.ipc.ProtobufRpcEngine$Server$ProtoBufRpcInvoker.call(ProtobufRpcEngine.java:447)
        at org.apache.hadoop.ipc.RPC$Server.call(RPC.java:989)
        at org.apache.hadoop.ipc.Server$RpcCall.run(Server.java:845)
        at org.apache.hadoop.ipc.Server$RpcCall.run(Server.java:788)
        at java.security.AccessController.doPrivileged(Native Method)
        at javax.security.auth.Subject.doAs(Subject.java:422)
        at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1807)
        at org.apache.hadoop.ipc.Server$Handler.run(Server.java:2455)

解决:修改主机名跟etc/hosts 一致!


10.2 如果节点机datanode 都是启动的(jps 查看),在主机上查看没有9000 的端口 ,或者IP是127.0.0.1:9000 请修改hosts 文件。或者namenode 格式化错误

[hadoop@master sbin]$ netstat -an|grep 9000
tcp        0      0 10.0.1.118:9000         0.0.0.0:*               LISTEN     
tcp        0      0 10.0.1.118:9000         10.0.1.226:43822        ESTABLISHED
tcp        0      0 10.0.1.118:60549        10.0.1.118:9000         TIME_WAIT  
tcp        0      0 10.0.1.118:9000         10.0.1.227:42736        ESTABLISHED














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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值