HDFS集群的搭建:
1.安装JDK
2.免秘钥
3.时间同步
4.完全分布式的搭建
5.搭建zookeeper
一.首先安装JDK:上传解压就行
注意解压的命令:
rpm -i /software/file/linux-basic/jdk-7u67-linux-x64.rpm(rpm类型的文件解压)
复制将路径配置到/etc/profile路径下
完成之后:. /etc/profile(source /etc/profile)
二.免秘钥
https://mp.csdn.net/postedit/80939949
就是生成自己的秘钥和公钥,将自己打的公钥发给别人,并且保存在authorizedkeys下的文件中
伪分布式:就是在一台机器上操作
免秘钥:是管理脚本,远程登录到一个节点上去,自己的登陆自己也需要免秘钥操作
ssh localhost:登录自己生成.ssh的密钥系统
ssh-keygen -t dsa -P '' -f /root/.ssh/id_dsa
秘钥放在root下的家目录下
要想登录对方,必须将自己的公钥给对方,也就是被登陆者有这么一个认证文件
将自己的密钥发给自己形成和自己IDE绵密登录:
cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
管理脚本用到了免秘钥
将自己的公钥发给别人:
scp ~/.ssh/id_rsa.pub root@node02:`pwd`./node01_pub
三.时间同步:
分别下载:yum install ntp -y
同阿里云时间一致:
分别执行:
ntpdate ntp1.aliyun.com
四.安装Hadoop:
上传解压:
gz包的解压:tar xf hadoop-2.6.5.tar.gz /opt/sxt
hadoop文件下有bin目录和sbin目录,故在配置Hadoop的时候,需要在/etc/profile下分别配置$HADOOP_HOME/bin和$HADOOP_HOME/sbin
配置环境:
去Hadoop下etc下:
查看:
:! ls -l /usr/java
1.hadoop-env.sh下配置export java_home
2.mapred-env.sh下配置export java_home
3.yarn-env.sh下配置export java_home
hdfs中namenode:9000
hdfs是一个虚的东西,真正的是namenode
4.core-site.xml:配置namenode的节点
<property>
<name>fs.defaultFS</name>
<value>hdfs://mycluster</value>
</property>
5.hdfs-site.xml:配置namenode副本的节点
6.创建vi slaves 下配置DataNode的节点,主从模型
node02
node03
node04
五.zookeeper集群的搭建
具体见:
https://blog.csdn.net/wyqwilliam/article/details/81024103
上传解压:
去zoo.cfg下配置:
持久化的目录:
dataDir=/var/sxt/hadoop/zk
在最后加上:
server.1=192.168.206.22:2888:3888
server.2=192.168.206.23:2888:3888
server.3=192.168.206.24:2888:3888
2888:
3888:
分别去node02,node03,node04下:
mkdir -p /var/sxt/hadoop/zk
echo 1 > /var/sxt/hadoop/zk/myid
分别将配置好的zookeeper复制分发给其他节点
最后分别配置:
core-site.xml:配置zookeeper的节点
hdfs-site.xml:配置journalnode,免秘钥等
然后分发
zookeeper启动之前的格式化:
启动zookeeper的客户端,
在node01上:hdfs zkfc -format
单独启动某一个节点用:
hadoop-daemon.sh start namenode
hdfs namenode -format:格式化
启动HDFS的命令:start-dfs.sh
格式化zkfc,也就是创建znode文件
附加hdfs-site.xml的配置:
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_dsa</value>
</property>
<property>
<name>dfs.ha.automatic-failover.enabled</name>
<value>true</value>
</property>
附加core-site.xml的配置:
core-site.xml
******core-site.xml
注意:hadoop.tmp.dir的配置要变更:/var/sxt/hadoop-2.6/ha
<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>
客户端开发,保证core,hdfs-site.xml都被客户端加载