hadoop分布式集群搭建

Hadoop分布式集群搭建

0.环境准备

1.vmware
2.centOS

1.虚拟机准备

1.1复制三台虚拟机

1.将三个虚拟机挂在到vmware上
2.选择我已经复制该虚拟机
3.将虚拟机关机

 

1.2.设置网卡信息

1.更改三个虚拟机的虚拟机名称,以示区分
2.将三个虚拟机的网络适配器改成 NAT模式
3.在网络适配器的高级选项中,点击生成MAC地址,并将生成后的MAC地址记录到文本上,后面会使用到

1.3配置linux的MAC设置

#1.开启虚拟机,进入到网卡设置,修改MAC地址与网卡名称
vim /etc/udev/rules.d/70-persistent-net.rules 
#2.将三台虚拟机都进行更改,将多余的网卡信息删除掉或注释掉,只保留一个即可。

 

1.4修改linux的网络设置

#1.将动态网络设置成静态网络,三台虚拟机都要设置
vim /etc/sysconfig/network-scripts/ifcfg-eth0
#2.重启三台虚拟机

 

1.5设置linux的主机名

#1 更改主机名
vim /etc/sysconfig/network
#2 添加主机名与ip地址的映射关系
vim /etc/hosts
192.168.96.135 hadoop001
192.168.96.134 hadoop000
192.168.96.136 hadoop002
192.168.96.135 localhost

1.6设置VMnet8

注意:
    ip地址要与虚拟机中的保持同一个网段,但是不能相同

1.7网络验证

# 利用三台虚拟机ping百度
ping www.baidu.com
#如果都可以ping通则说明网络配置成功

1.8其他配置

#1.防火墙关闭
#查看防火墙状态,如果是Firewall is not running. 说明防火墙是关闭的
service iptables status
#关闭防火墙
service iptables stop
#关闭防火墙的自动启动
chkconfig iptables off
#查看防火墙是否会随着机器的启动而启动
chkconfig iptables --list
​
​
#2.时钟同步(这里使用的方法需要虚拟机可以连网)
#如果没有安装crontab,需要安装
yum install vixie-cron crontabs
crontab -e
*/1 * * * * /usr/sbin/ntpdate us.pool.ntp.org;
​
#3.关闭selinux
vim /etc/selinux/config
#设置
SELINUX=disabled
​

1.8SSH免密码登陆

#1 对三台虚拟机分别生成公钥和私钥,该过程需要键盘输入,直接回车就好
ssh-keygen -t rsa
#2 将另外两台虚拟机上的公钥,拷贝到第一台虚拟机上,同时将第一台虚拟机自己的公钥也拷贝到自己身上
#公钥所在的位置在执行完上述命令之后会打印到界面上
Your public key has been saved in /home/hadoop/.ssh/id_rsa.pub.
​
cd /home/hadoop/.ssh
ssh-copy-id hadoop000(第一台主机名)
​
#3 将第一台主机上的authorized_keys存放公钥的文间,复制到其他两个机器上
scp authorized_keys hadoop001:$PWD

2.集群安装

1.安装jdk(略)

2.安装hadoop

(先在hadoop000上安装如下步骤)

#1 安装hadoop
tar -zxvf hadoop-2.6.0-cdh5.7.0.tar.gz -C app/
#2 配置环境变量   
vim /etc/profile
#添加如下内容
export HADOOP_HOME=/home/hadoop/app/hadoop-2.6.0-cdh5.7.0
export PATH=$HADOOP_HOME/bin:$PATH
​
#3 修改hadoop-env.sh
cd /home/hadoop/app/hadoop-2.6.0-cdh5.7.0/etc/hadoop
vim hadoop-env.sh
#修改java的JDK路径
export JAVA_HOME=/home/hadoop/app/jdk1.7.0_79
<!--4. 修改core-site.xml-->
#4 修改core-site.xml
<configuration>
    <property>
        <name>fs.defaultFS</name>
        <!--设置hdfs的默认访问路径-->
        <value>hdfs://hadoop000:8020</value>
    </property>
    <!--设置hadoop的存储位置-->
    <!--如果使用默认的设置将保存在临时文件夹,每次重启都会重置该文件夹-->
     <property>
        <name>hadoop.tmp.dir</name>
        <value>/home/hadoop/app/tmp</value>
    </property>
</configuration>

 

#5 设置hdfs-site.xml
cd /home/hadoop/app/hadoop-2.6.0-cdh5.7.0/etc/hadoop
vim hdfs-site.xml
<!--添加如下内容-->
<configuration>
    <property>
        <!--设置副本系数,即一个文件会被保存几份,如果不设置默认副本系数为3,在这里可以不用设置-->
        <name>dfs.replication</name>
        <value>3</value>
    </property>
    
    <property>
        <!--设置namenode的存放路径-->
        <name>dfs.namenode.name.dir</name>
        <value>/home/hadoop/app/tmp/dfs/name</value>
    </property>
    <property>
          <!--设置datanode的存放路径-->
        <name>dfs.datanode.data.dir</name>
        <value>/home/hadoop/app/tmp/dfs/data</value>
    </property>
</configuration>

 

 

#6 配置yarn-site.xml
cd /home/hadoop/app/hadoop-2.6.0-cdh5.7.0/etc/hadoop
vim yarn-site.xml
<!--添加如下内容-->
<property>
    <!--默认-->
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</value>
</property>
<!--告诉yarn,resourcemanager跑在那个机器上-->
<property>
    <name>yarn.resourcemanager.hostname</name>
    <value>hadoop000</value>
</property>

 

#7 配置mapred-site.xml
cd /home/hadoop/app/hadoop-2.6.0-cdh5.7.0/etc/hadoop
vim mapred-site.xml
<!--添加如下内容-->
<property>
    <name>mapreduce.framework.name</name>
    <value>yarn</value>
 </property>

 

#8 配置slaves
cd /home/hadoop/app/hadoop-2.6.0-cdh5.7.0/etc/hadoop
vim slaves
//配置如下,告诉服务器namenode,nodemanage需要跑到哪几个机器上
hadoop000
hadoop001
hadoop002

3.分发配置

#复制hadoop000的配置到hadoop001和hadoop002上
scp -r ~/app hadoop001:~/
scp -r ~/app hadoop002:~/
scp /etc/profile hadoop001:/etc
scp /etc/profile hadoop002:/etc

 

4.对NN做格式化

​ 只要在hadoop000上执行即可

cd /home/hadoop/app/hadoop-2.6.0-cdh5.7.0/bin
hdfs namenode -format

5.启动hadoop集群

cd /home/hadoop/app/hadoop-2.6.0-cdh5.7.0/sbin
./start-all.sh

6.验证

1.进程验证

#在hadoop000上输入jps显示:
 ResourceManager
 NameNode
 SecondaryNameNode
 DataNode
 NodeManager
#在hadoop001上输入jsp显示:
 DataNode
 NodeManager
#在hadoop002上输入jps显示:
 NodeManager
 DataNode

 

2.网页验证

http://hadoop000:50070

 

http://hadoop000:8088

 

7:集群的关闭

cd /home/hadoop/app/hadoop-2.6.0-cdh5.7.0/sbin
 ./stop-all.sh 

 

问题:

1.

2018-07-26 12:23:41,529 FATAL org.apache.hadoop.hdfs.server.datanode.DataNode: Initialization failed for Block pool <registering> (Datanode Uuid unassigned) service to hadoop000/192.168.96.134:8020. Exiting.
java.io.IOException: All specified directories are failed to load.
        at org.apache.hadoop.hdfs.server.datanode.DataStorage.recoverTransitionRead(DataStorage.java:478)
        at org.apache.hadoop.hdfs.server.datanode.DataNode.initStorage(DataNode.java:1394)
        at org.apache.hadoop.hdfs.server.datanode.DataNode.initBlockPool(DataNode.java:1355)
        at org.apache.hadoop.hdfs.server.datanode.BPOfferService.verifyAndSetNamespaceInfo(BPOfferService.java:317)
        at org.apache.hadoop.hdfs.server.datanode.BPServiceActor.connectToNNAndHandshake(BPServiceActor.java:228)
        at org.apache.hadoop.hdfs.server.datanode.BPServiceActor.run(BPServiceActor.java:829)
        at java.lang.Thread.run(Thread.java:745)
2018-07-26 12:23:41,532 WARN org.apache.hadoop.hdfs.server.datanode.DataNode: Ending block pool service for: Block pool <registering> (Datanode Uuid unassigned) service to hadoop000/192.168.96.134:8020
原因:多次对hadoop集群进行了格式化,所以产生了不同的cluster ID。
解决:删除掉dfs文件,然后再重新进行格式化即可


 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值