最近闲来无聊,突发奇想,想在自己的电脑上搭建一套大数据的体系,玩一下Flink,但是在搭建的过程中,女朋友突然说了一句:回回看你这在官网上搜搜查查的,你就不能整理一下嘛?不得不说程序员的女朋友就是牛 啊,所以,我就想,既然我有公众号,为什么不分享一下顺便让腾讯帮我保存一下呢?也可以分享出去让更多的人看见,学习,所以,有了手把手带你玩转大数据系列,后期会和java同步更新,尽量保证每天一篇,今天就从我被疯狂diss 的hdfs搭建开始吧
三种搭建方式一文搞定:伪分布式、分布式、高可用,来吧,往下看
配置:vmware15 centos6.5-mini jdk1.8 Hadoop-2.6.5
1、HDFS伪分布式搭建步骤:
(1) 配置免密登录 node01->node01
ssh-keygen -t rsa ssh-copy-id -i ~/.ssh/id_rsa.pub root@node01
(2) 配置JDK
export JAVA_HOME=/opt/software/jdk/jdk1.8.0_151export PATH=$PATH:$JAVA_HOME/bin
(3) 修改hdfs-site.xml配置文件
<property> <name>dfs.replication</name> <value>1</value></property><property> <name>dfs.namenode.secondary.http-address</name> <value>node01:50090</value></property>
(4) 修改core-site.xml配置文件
<property> <name>fs.defaultFS</name> <value>hdfs://node01:9000</value></property><property> <name>hadoop.tmp.dir</name> <value>/var/abc/hadoop/local</value></property>
(5) 修改slaves配置文件
修改为node01
(6) 格式化NameNode(创建目录以及文件) hdfs namenode -format
(7) 启动HDFS start-dfs.sh
(8) 操作HDFS文件系统
① 创建目录 hdfs dfs -mkdir -p /user/root
② 上传文件 hdfs dfs -D dfs.blocksize=1048576 -put
2、HDFS完全分布式搭建步骤:
(1) 时间同步
① 各个节点安装ntp命令yum install ntp
② 上网查找最新的时间服务器ntp1.aliyun.com
③ 同步时间ntpdate ntp1.aliyun.com
(2) 配置免密登录
node01->node01 node01->node02 node01->node03 node01->node04
① 所有节点执行 ssh-keygen -t r sa -P '' -f ~/.ssh/id_rsa
② 在node01节点执行,将node01 的公钥加入到其他节点的白名单中 ssh-copy-id -i ~/.ssh/id_rsa.pub root@node01
ssh-copy-id -i ~/.ssh/id_rsa.pub root@node02
ssh-copy-id -i ~/.ssh/id_rsa.pub root@node03
ssh-copy-id -i ~/.ssh/id_rsa.pub root@node04
(3) 所有节点配置JDK
(4) 修改hdfs-site.xml配置文件
<property> <name>dfs.replication</name> <value>3</value></property><property> <name>dfs.namenode.secondary.http-address</name> <value>node02:50090</value></property>
(5) 修改core-site.xml配置文件
<property> <name>fs.defaultFS</name> <value>hdfs://node01:9000</value></property><property> <name>hadoop.tmp.dir</name> <value>/var/abc/hadoop/cluster</value></property>
(6) 修改slaves配置文件
修改为node02 node03 node04
将配置好的安装包分发到其他节点上
scp -r hadoop-2.6.5 root@node02:/opt/software/hadoop/
(7) 将所有的HDFS相关的进程关闭
(8) 格式化NameNode(创建目录以及文件) 在node01节点执行
① hdfs namenode -format
(9) 启动HDFS start-dfs.sh
(10) 操作HDFS文件系统
① 创建目录 hdfs dfs -mkdir -p /user/root
② 上传文件 hdfs dfs -D dfs.blocksize=1048576 -put
3、HDFS HA完全分布式搭建步骤:
集群规划:
|
NN-1 |
NN-2 |
DN |
ZK |
ZKFC |
JNN |
|
|
node01 |
* |
* |
* |
|||
|
node02 |
* |
* |
* |
* |
* |
|
|
node03 |
* |
* |
* |
|||
|
node04 |
* |
* |
(1) 配置免密登录
node01->node01 node01->node02 node01->node03 node01->node04
node02->node01
① 在node02 节点执行,将node01的公钥加入到其他节点的白名单中 ssh-copy-id -i ~/.ssh/id_rsa.pub root@node01
(2) 所有节点配置JDK
(3) 修改hdfs-site.xml配置文件
<property> <name>dfs.nameservices</name> <value>mycluster</value></property><property> <name>dfs.ha.namenodes.mycluster</name> <value>nn1,nn2</value></property><property> <name>dfs.namenode.rpc-address.mycluster.nn1</name> <value>node01:8020</value></property><property> <name>dfs.namenode.rpc-address.mycluster.nn2</name> <value>node02:8020</value></property><property> <name>dfs.namenode.http-address.mycluster.nn1</name> <value>node01:50070</value></property><property> <name>dfs.namenode.http-address.mycluster.nn2</name> <value>node02:50070</value></property><property> <name>dfs.namenode.shared.edits.dir</name> <value>qjournal://node01:8485;node02:8485;node03:8485/mycluster</value></property><property> <name>dfs.journalnode.edits.dir</name> <value>/var/sxt/hadoop/ha/jn</value></property><property> <name>dfs.client.failover.proxy.provider.mycluster</name> <value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value></property><property> <name>dfs.ha.fencing.methods</name> <value>sshfence</value></property><property> <name>dfs.ha.fencing.ssh.private-key-files</name> <value>/root/.ssh/id_rsa</value></property><property> <name>dfs.ha.automatic-failover.enabled</name> <value>true</value> </property>
(4) 修改core-site.xml配置文件
<property> <name>fs.defaultFS</name> <value>hdfs://mycluster</value></property><property> <name>ha.zookeeper.quorum</name> <value>node02:2181,node03:2181,node04:2181</value></property>
(5) 修改slaves配置文件
① 修改为node02 node03 node04
(6) 将配置好的HDFS安装包拷贝到node02 node03 node04
4、搭建zookeeper集群:
(1) node02上解压
(2) 修改conf目录下的zoo_sample.cfg 的名称,改为zoo.cfg
① mv zoo_sample.cfg zoo.cfg
(3) 修改zoo.cfg
① dataDir=/var/zfg/zookeeper
② server.1=node02:2888:3888
③ server.2=node03:2888:3888
④ server.3=node04:2888:3888
(4) 在dataDir 目录下创建一个myid文件,在这个文件中写上当前节点ID号
(5) 将配置好的zookeeper安装包拷贝到 node03 node04
(6) 拷贝完毕后,在各自节点上创建myid号, ID号要依次递增
(7) zk节点bin下执行 ./zkServer.sh start
(8) 格式化NameNode(创建目录以及文件 )
① 在node01、node02 、node03分别执行如下命令
1) hadoop-daemon.sh start journalnode
② 随机选择一台NameNode执行:
1) hdfs namenode -format
2) hadoop-daemon.sh start namenode
③ 另外一台NameNode节点执行:
1) hdfs namenode -bootstrapStandby
(9) hdfs zkfc -formatZK
(10) 关闭所有节点上的进程 stop-dfs.sh
(11) 启动HDFS start-dfs.sh
(12) 操作HDFS文件系统
① 创建目录 hdfs dfs -mkdir -p /user/root
② 上传文件 hdfs dfs -D dfs.blocksize=1048576 -put
觉得写的不错的老铁,麻烦点个关注呀,公众号:Java架构师联盟,每日更新技术好文
