1.安装NFS,配置共享目录
安装配置NFS
NFS是Network File System的简写,即网络文件系统.网络文件系统是FreeBSD支持的文件系统中的一种,也被称为NFS. NFS允许一个系统在网络上与它人共享目录和文件。通过使用NFS,用户和程序可以象访问本地文件一样访问远端系统上的文件。CentOS系统中如何安装和配置nfs呢,下面我们就来学习一下方法。首先我们来介绍一些会用到的CentOS系统命令。
1. 安装
$yum -y install nfs-utils
2. 创建共享目录
$su root (切换到root用户,因为NFS只能被root用户使用)
$mkdir –p /smp/hadoop-cdh4
$chmod –R 777 /smp/hadoop-cdh4 (因为是root用户创建,要给当前用户赋可读写的权限)
3. 配置
$vi /etc/exports
在配置文件中添加你要共享的目录等信息,例如:
/smp/hadoop-cdh4 *(rw,sync,no_root_squash)
内容具体参数说明如下:
[共享的目录] [主机名或IP(参数,参数)]
其中参数是可选的,当不指定参数时,nfs将使用默认选项。默认的共享选项是 sync,ro,root_squash,no_delay。
CentOS系统中,当主机名或IP地址为空时,则代表共享给任意客户机提供服务。
当将同一目录共享给多个客户机,但对每个客户机提供的权限不同时,可以这样:
[共享的目录] [主机名1或IP1(参数1,参数2)] [主机名2或IP2(参数3,参数4)]
下面是一些NFS共享的常用参数:
1. ro 只读访问
2. rw 读写访问
3. sync 所有数据在请求时写入共享
4. async NFS在写入数据前可以相应请求
5. secure NFS通过1024以下的安全TCP/IP端口发送
6. insecure NFS通过1024以上的端口发送
7. wdelay 如果多个用户要写入NFS目录,则归组写入(默认)
8. no_wdelay 如果多个用户要写入NFS目录,则立即写入,当使用async时,无需此设置。
9. hide 在NFS共享目录中不共享其子目录
10. no_hide 共享NFS目录的子目录
11. subtree_check 如果共享/usr/bin之类的子目录时,强制NFS检查父目录的权限(默认)
12. no_subtree_check 和上面相对,不检查父目录权限
13. all_squash 共享文件的UID和GID映射匿名用户anonymous,适合公用目录。
14. no_all_squash 保留共享文件的UID和GID(默认)
15. root_squash root用户的所有请求映射成如anonymous用户一样的权限(默认)
16. no_root_squash root用户具有根目录的完全管理访问权限
17. anonuid=xxx 指定NFS服务器/etc/passwd文件中匿名用户的UID
anongid=xxx 指定NFS服务器/etc/passwd文件中匿名用户的GID
4. 启动
$/etc/init.d/nfs restart
在你要共享的机器上同样使用root用户创建同步的目录并赋读写权限,并挂在该目录,具体的命令如下:
$mkdir –p /smp/avatarshare
$mount -v -t nfs -o tcp,soft,retry=20,timeo=20,rsize=32768,wsize=32768 hadoop04:/smp/hadoop-cdh4 /smp/hadoop-cdh4
到此我们就将NFS配置并启动好了
4.安装zookeeper-3.4.2
下载zookeeper-3.4.2.tar.gz http://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.4.2/zookeeper-3.4.2.tar.gz
将tar包解压到指定目录
tar zxvf zookeeper-3.4.2.tar.gz
修改zookeeper配置
将zookeeper安装目录下conf/zoo_sample.cfg重命名为zoo.cfg
修改其中的内容
# The number of milliseconds of each tick
tickTime=2000
# The number of ticks that the initial
# synchronization phase can take
initLimit=10
# The number of ticks that can pass between
# sending a request and getting an acknowledgement
syncLimit=5
# the directory where the snapshot is stored.
# do not use /tmp for storage, /tmp here is just
# example sakes.
dataDir=/home/hadoop/zookeeper
# the port at which the clients will connect
clientPort=2181
server.1=hadoop01:2888:3888
server.2=hadoop02:2888:3888
server.3=hadoop03:2888:3888
#
# Be sure to read the maintenance section of the
# administrator guide before turning on autopurge.
#
# http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance
#
# The number of snapshots to retain in dataDir
#autopurge.snapRetainCount=3
# Purge task interval in hours
# Set to "0" to disable auto purge feature
#autopurge.purgeInterval=1
在配置的dataDir目录下创建一个myid文件,里面写入一个0-255之间的一个随意数字,每个zookeeper上这个文件的数字要是不一样的
修改下面的内容变成你自己的服务器地址
server.1=hadoop01:2888:3888
server.2=hadoop02:2888:3888
server.3=hadoop03:2888:3888
分别启动所有的zookeeper
bin/zkServer.sh start
使用客户端连接zookeeper测试是否成功
bin/zkCli.sh -server ip地址:clientPort
2.修改hadoop安装目录下etc/hadoop/core-site.xml
加入以下内容
<!--fs.default.name for MRV1 ,fs.defaultFS for MRV2(yarn) -->
<property>
<name>fs.defaultFS</name>
<!--这个地方的值要和hdfs-site.xml文件中的dfs.federation.nameservices一致-->
<value>hdfs://dinglicom</value>
</property>
<property>
<name>ha.zookeeper.quorum</name>
<value>hadoop03:2181,hadoop04:2181,hadoop05:2181</value>
</property>
3.修改hdfs-site.xml
<!--配置dfs.nameservices 这个名称可以随意,如果同时还使用HDFS 的Federation机制,则应该使用逗号分隔nameservices列表-->
<property>
<name>dfs.federation.nameservices</name>
<value>dinglicom</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>/home/hadoop/hadoop-cdh4-nn</value>
</property>
<!--配置:dfs.ha.namenodes.[nameservice ID]. 下面的dinglicom是nameservice ID,nn1和nn2是每台namenode的serviceId。-->
<property>
<name>dfs.ha.namenodes.dinglicom</name>
<value>nn1,nn2</value>
</property>
<!--配置rpc通信地址:dfs.namenode.rpc-address.[nameservice ID].-->
<property>
<name>dfs.namenode.rpc-address.dinglicom.nn1</name>
<value>hadoop01:8020</value>
</property>
<property>
<name>dfs.namenode.rpc-address.dinglicom.nn2</name>
<value>hadoop02:8020</value>
</property>
<!--配置http通信地址:dfs.namenode.http-address.[nameservice ID].-->
<property>
<name>dfs.namenode.http-address.dinglicom.nn1</name>
<value>hadoop01:50070</value>
</property>
<property>
<name>dfs.namenode.http-address.dinglicom.nn2</name>
<value>hadoop02:50070</value>
</property>
<!--配置 dfs.namenode.shared.edits.dir 是主备namenode共享目录,这里要求主备都可以读写,采用NFS实现共享-->
<property>
<name>dfs.namenode.shared.edits.dir</name>
<value>/smp/hadoop-cdh4</value>
</property>
<!--配置客户端failover,解决客户端故障转移-->
<property>
<name>dfs.client.failover.proxy.provider.dinglicom</name>
<value>org.apache.Hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
</property>
<!--配置:Fencing,
这里dfs.ha.fencing.methods实现的方法有两种sshfence和shell,我下面实现的是sshfence,dfs.ha.fencing.ssh.private-key-files这个是ssh的key file ,用于在Active 节点切换期间的安全机制,确保在任何时间都只有一个NameNode 处于活跃状态。在故障切换期间,haadmin 命令确保在将其它NameNode 转换为Active 状态之前Active 节点处在Standby 状态,或其进程已被终止。
至少应该配置一个,因为没有默认配置,因此如果配置则HA 机制将会失效。
如果要实现自定义的安全机制,参照org.apache.hadoop.ha.NodeFencer
-->
<property>
<name>dfs.ha.fencing.methods</name>
<value>sshfence</value>
</property>
<property>
<name>dfs.ha.fencing.ssh.private-key-files</name>
<value>/home/smp/.ssh/id_rsa</value>
</property>
<!--启用失败自动切换-->
<property>
<name>dfs.ha.automatic-failover.enabled</name>
<value>true</value>
</property>
<!--配置zk集群信息-->
<property>
<name>ha.zookeeper.quorum</name>
<value>hadoop03:2181,hadoop04:2181,hadoop05:2181</value>
</property>
<!--datanode数据存放目录-->
<property>
<name>dfs.data.dir</name>
<value>/home/hadoop/hadoop-cdh4-dn</value>
</property>
4.namenode格式化
bin/hadoop namenode -format -clusterid cluster1
5. HDFS (HA) 的初始化
设定所有的必要配置项后,必须首先同步两个NameNode 上的元数据。如果是新建的HDFS 集群,则应首先格式化一个NameNode ,或者想把非HA 集群转换为HA 集群,按照dfs.namenode.name.dir 、dfs.namenode.edits.dir 的配置把当前NameNode 节点的元数据目录复制到另一个NameNode. 还应该确保共享存储目录下(dfs.namenode.shared.edits.dir ) 包含NameNode 所有的元数据
6.zk格式化
bin/hdfs zkfc -formatZK
7.HDFS(HA) 的管理
sbin/start-dfs.sh
默认以HA 方式启动集群,启动后为Standby 状态,使用如下命令设置Active 节点 (手动方式)
bin/hdfs haadmin –DFSHAadmin –transitionToActive nn1
如果让nn2 成为变为active nn1 变为standby ,则
# bin/hdfs haadmin -DfSHAadmin -failover nn1 nn2
如果失败(is not ready to become active) 则
# bin/hdfs haadmin -DfSHAadmin -failover --forceactive nn1 nn2
具体参照bin/hdfs haadmin命令
分享到:
相关推荐
而hadoop-2.6.0-cdh5.16.2.tar.gz则是Cloudera公司推出的基于Hadoop 2.6.0的CDH(Cloudera Distribution Including Apache Hadoop)版本。CDH是业界广泛采用的企业级Hadoop发行版,它不仅集成了Hadoop的核心组件,还...
大数据/Linux安装包-hadoop-2.6.0-cdh5.15.1.tar.gz 大数据/Linux安装包-hadoop-2.6.0-cdh5.15.1.tar.gz 大数据/Linux安装包-hadoop-2.6.0-cdh5.15.1.tar.gz
标题中的"hadoop-2.6.0-cdh5.14.2.tar.gz"是一个针对Apache Hadoop的软件包,具体来说是CDH(Cloudera Distribution Including Apache Hadoop)5.14.2版本,它基于Hadoop 2.6.0。CDH是由Cloudera公司提供的一个开源...
Flink jar包,官网下载很慢,有需要的自行下载 Apache Flink是由Apache软件基金会开发的开源流处理框架,其核心是用Java和Scala编写的分布式流数据流引擎。Flink以数据并行和流水线方式执行任意流数据程序,Flink...
# 解压命令 tar -zxvf flink-shaded-hadoop-2-uber-3.0.0-cdh6.2.0-7.0.jar.tar.gz # 介绍 用于CDH部署 Flink所依赖的jar包
kettle 9.1 连接hadoop clusters (CDH 6.2) 驱动
在sqoop-1.2.0版本下,若想在安装了Hadoop-0.20.2的环境中正常运行,我们需要确保sqoop的lib目录包含Hadoop的相关库。解压"Hadoop-0.20.2-CDH3B4.tar.gz"后,我们可以将其中的库文件复制到sqoop的lib目录,确保sqoop...
这个压缩包“hadoop-2.6.0-cdh5.14.0-with-centos6.9.tar.gz”是针对CDH(Cloudera Distribution Including Apache Hadoop)版本5.14.0的Hadoop 2.6.0安装包,特别优化以适应CentOS 6.9操作系统。在大数据领域,...
在这个“hadoop-2.6.0-cdh5.7.0.tar.gz”压缩包中,我们可以预期找到的是一个完整的Hadoop 2.6.0 CDH5.7.0安装包。这个安装包通常会包含以下几个关键部分: 1. **Hadoop Distributed File System (HDFS)**:HDFS是...
6. **Hadoop安装与配置**: 安装Hadoop-2.6.0-cdh5.7.0版本需要配置集群环境,包括设置环境变量、配置集群节点间通信、初始化HDFS和YARN等。同时,还需要考虑安全性、监控和性能优化等方面。 7. **Hadoop应用开发**:...
4. **编译Hadoop**: - 解压Hadoop源码,进入目录。 - 修改`build.xml`文件,确保配置了正确的Snappy路径,通常是在`<property name="snappy.home" value="/usr/local"/>`这一行中。 - 运行`ant clean`清理旧的...
hadoop-2.6.0-cdh5.14.2.tar.gz适用于Linux环境,centos7已测试
主要是因为hadoop的cdh5官网收费,项目下载不了了,上传我下载的到csdn方便各位下载
在Hadoop 2.0中,NameNode的High Availability(HA)和Federation是为了解决传统Hadoop架构中的两个关键问题:单点故障和集群扩展性。在Hadoop 2.0之前,NameNode作为HDFS的核心组件,它的单点故障可能导致整个...
hadoop-common-2.6.0-cdh5.8.4.jarhadoop-common-2.6.0-cdh5.8.4.jar
赠送原API文档:hadoop-yarn-common-2.6.5-javadoc.jar 赠送源代码:hadoop-yarn-common-2.6.5-sources.jar 包含翻译后的API文档:hadoop-yarn-common-2.6.5-javadoc-API文档-中文(简体)版.zip 对应Maven信息:...
CDH(Cloudera Distribution Including Apache Hadoop)是Cloudera公司提供的一个企业级Hadoop发行版,包含多个开源大数据组件,如HBase、Hive、Pig等,提供了一整套数据管理解决方案。 接着,我们来看看JDK。Java ...
带编译所需的maven库,hadoop-2.6.0-cdh5.15.2在CentOS Linux release 7.3.1611重新编译的版本
hadoop-2.6.0-cdh5.14.0 源码 。