手把手带你玩转大数据系列--hdfs三种搭建方式一文搞定

222 阅读5分钟

最近闲来无聊,突发奇想,想在自己的电脑上搭建一套大数据的体系,玩一下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架构师联盟,每日更新技术好文