大数据技术 Hadoop学习笔记
沉沙 2018-09-25 来源 : 阅读 1243 评论 0

摘要:本篇教程探讨了大数据技术 Hadoop学习笔记,希望阅读本篇文章以后大家有所收获,帮助大家对大数据技术的理解更加深入。

本篇教程探讨了大数据技术 Hadoop学习笔记,希望阅读本篇文章以后大家有所收获,帮助大家对大数据技术的理解更加深入。

<

################# HA 即 High Available 高可用。
# 其作用是为了减少主从结构的单点故障,而设置备用节点,既然学习了Hadoop生态圈,那么HA配置也是必须要掌握的。
# 因为生产环境中,一定会设置HA,减少故障率。

# 参考了好几处的教程,自己动手实践了下,成功。

# 会有一些配置文件需要修改,如果嫌vim麻烦,可以将文件下载到windows,改好后再传回去。
# 本次软件版本: CentOS 6.5 x64      jdk-8u161-linux-x64.tar.gz     zookeeper-3.4.5.tar.gz       hadoop-2.7.5.tar.gz

 

一、集群的规划  四台VM12
Zookeeper集群:
192.168.112.10 master
192.168.112.11 slave1
192.168.112.12 slave2

Hadoop集群:
192.168.112.10 master NameNode1 ResourceManager1 Journalnode
192.168.112.11 slave1 NameNode2 ResourceManager2 Journalnode
192.168.112.12 slave2 DataNode1
192.168.112.13 slave3 DataNode2

二、准备工作
1、安装JDK
2、配置环境变量
3、配置免密码登录
4、配置主机名、网络、关闭防火墙 ...

三、配置Zookeeper(在192.168.112.10 master 安装)
在主节点(master)上配置ZooKeeper
(*)配置/usr/local/src/zookeeper/conf/zoo.cfg文件

dataDir=/usr/local/src/zookeeper/zkdata
clientPort=2181
server.1=master:2888:3888
server.2=slave1:2888:3888
server.3=slave2:2888:3888

 

(*)在/usr/local/src/zookeeper/zkdata目录下创建一个myid的空文件

echo 1 > myid

 

(*)将配置好的zookeeper拷贝到其他节点,同时修改各自的myid文件

scp -r /usr/local/src/zookeeper slave1:/usr/local/src
scp -r /usr/local/src/zookeeper slave2:/usr/local/src

 


四、安装Hadoop集群(在 master 上安装)
1、修改hadoo-env.sh

export JAVA_HOME=/usr/local/src/jdk1.8.0_161

 

2、修改core-site.xml
复制代码




fs.defaultFS
hdfs://names1



hadoop.tmp.dir
/usr/local/src/hadoop-2.7.5/tmp



ha.zookeeper.quorum
master:2181,slave1:2181,slave2:2181



复制代码

 

3、修改hdfs-site.xml(配置这个nameservice中有几个namenode)
复制代码

 


dfs.nameservices
names1




dfs.ha.namenodes.names1
nn1,nn2




dfs.namenode.rpc-address.names1.nn1
master:9000



dfs.namenode.http-address.names1.nn1
master:50070




dfs.namenode.rpc-address.names1.nn2
slave1:9000



dfs.namenode.http-address.names1.nn2
slave1:50070




dfs.namenode.shared.edits.dir
qjournal://master:8485;slave1:8485;/names1



dfs.journalnode.edits.dir
/usr/local/src/hadoop-2.7.5/journal




dfs.ha.automatic-failover.enabled
true




dfs.client.failover.proxy.provider.names1
org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider




dfs.ha.fencing.methods

sshfence
shell(/bin/true)





dfs.ha.fencing.ssh.private-key-files
/root/.ssh/id_rsa




dfs.ha.fencing.ssh.connect-timeout
30000



复制代码

cd /usr/local/src/hadoop-2.7.5/
mkdir journal
chmod 777 journal

 

4、修改mapred-site.xml



mapreduce.framework.name
yarn



 

5、修改yarn-site.xml
复制代码




yarn.resourcemanager.ha.enabled
true




yarn.resourcemanager.cluster-id
yrc




yarn.resourcemanager.ha.rm-ids
rm1,rm2




yarn.resourcemanager.hostname.rm1
master


yarn.resourcemanager.hostname.rm2
slave1




yarn.resourcemanager.zk-address
master:2181,slave1:2181,slave2:2181



yarn.nodemanager.aux-services
mapreduce_shuffle



复制代码

 

6、修改slaves

bigdata14
bigdata15

 

7、将配置好的hadoop拷贝到其他节点

    scp -r /usr/local/src/hadoop-2.7.5/ root@slave1:/usr/local/src/
    scp -r /usr/local/src/hadoop-2.7.5/ root@slave2:/usr/local/src/
    scp -r /usr/local/src/hadoop-2.7.5/ root@slave3:/usr/local/src/

 


五、启动Zookeeper集群

每台上面 zkServer.sh start

六、在master和slave1上启动journalnode

hadoop-daemon.sh start journalnode

 

七、格式化HDFS(在 master 上执行)
1. hdfs namenode -format
2. 将/usr/local/src/hadoop-2.7.5/tmp拷贝到slave1的/usr/local/src/hadoop-2.7.5/tmp下
3. 格式化zookeeper

hdfs zkfc -formatZK
# 日志:18/04/11 22:34:33 INFO ha.ActiveStandbyElector: Successfully created /hadoop-ha/names1 in ZK.

 


八、在master上启动Hadoop集群

start-all.sh

# 日志:
Starting namenodes on [master slave1]
slave1: starting namenode, logging to /usr/local/src/hadoop-2.7.5/logs/hadoop-root-namenode-slave1.out
master: starting namenode, logging to /usr/local/src/hadoop-2.7.5/logs/hadoop-root-namenode-master.out
slave3: starting datanode, logging to /usr/local/src/hadoop-2.7.5/logs/hadoop-root-datanode-slave3.out
slave2: starting datanode, logging to /usr/local/src/hadoop-2.7.5/logs/hadoop-root-datanode-slave2.out


slave1上的ResourceManager需要单独启动

yarn-daemon.sh start resourcemanager

 

九、验证与检查
jps查看每台的进程:(这里没显示Jps进程)
复制代码

master:
    3745 QuorumPeerMain
    3812 JournalNode
    4484 ResourceManager
    4070 NameNode
    4377 DFSZKFailoverController
slave1:
    3809 ResourceManager
    3602 NameNode
    3522 JournalNode
    3715 DFSZKFailoverController
    3455 QuorumPeerMain
slave2:
    19316 NodeManager
    19207 DataNode
    19118 QuorumPeerMain
slave3:
    3530 DataNode
    3630 NodeManager

复制代码

分别访问://master:50070 和 //slave1:50070 可以看到一个是active, 另一个是standby 而Namespace均显示为names1

分别访问://master:8088 和 //slave1:8088 其中slave1将自动跳转到master,注意看浏览器URL的变化。Nodes中可以看到DataNode

模拟宕机:master 上执行 kill -9 4070 后,立刻刷新//slave1:50070 会发现变在了active
然后再重新启动宕掉的master进程: sbin/hadoop-daemon.sh start namenode 启动成功后,master会变为standby状态。

十、停止服务
好了,我要关掉VM了,所以要先停掉这些服务。
master上 stop-all.sh
slave1上 stop-all.sh 因为刚才有个RM是单独启动的,所以也需要单独来停止。
在每台zk上zkServer.sh stop     

本文由职坐标整理发布,学习更多的大数据技术相关知识,请关注职坐标大技术云计算大技术技术频道!

本文由 @沉沙 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程