Ntpd启动的时候通常需要一段时间大概5分钟进行时间同步,所以在ntpd刚刚启动的时候还不能正常提供时钟服务,报错”no server suitable for synchronization found”。启动时候需要等待5分钟。
如果想定时进行时间校准,可以使用crond服务来定时执行。
# 每天 1:00 Linux 系统就会自动的进行网络时间校准 00 1 * * * root /usr/sbin/ntpdate 192.168.56.121 >> /root/ntpdate.log 2>&1
1.4 安装jdkCDH5.4要求使用JDK1.7,JDK的安装过程请参考网上文章。
1.5 设置本地yum源CDH官方的yum源地址在 RedHat/6/x86_64/cdh/cloudera-cdh4.repo 或 ,请根据你安装的cdh版本修改该文件中baseurl的路径。
你可以从这里下载 cdh4 的仓库压缩包,或者从这里 下载 cdh5 的仓库压缩包。
因为我是使用的centos操作系统,故我这里下载的是cdh5的centos6压缩包,将其下载之后解压到ftp服务的路径下,然后配置cdh的本地yum源:
[hadoop] name=hadoop baseurl=ftp://cdh1/cdh/5/ enabled=1 gpgcheck=0
操作系统的yum源,建议你通过下载 centos 的 dvd 然后配置一个本地的 yum 源。
2. 安装和配置HDFS根据文章开头的节点规划,cdh1 为NameNode节点,cdh2为SecondaryNameNode节点,cdh2 和 cdh3 为DataNode节点
在 cdh1 节点安装 hadoop-hdfs-namenode:
$ yum install hadoop hadoop-hdfs hadoop-client hadoop-doc hadoop-debuginfo hadoop-hdfs-namenode
在 cdh2 节点安装 hadoop-hdfs-secondarynamenode
$ yum install hadoop-hdfs-secondarynamenode -y
在 cdh2、cdh3节点安装 hadoop-hdfs-datanode
$ yum install hadoop hadoop-hdfs hadoop-client hadoop-doc hadoop-debuginfo hadoop-hdfs-datanode -y
NameNode HA 的配置过程请参考CDH中配置HDFS HA,建议暂时不用配置。
2.1 修改hadoop配置文件在/etc/hadoop/conf/core-site.xml中设置fs.defaultFS属性值,该属性指定NameNode是哪一个节点以及使用的文件系统是file还是hdfs,格式:hdfs://<namenode host>:<namenode port>/,默认的文件系统是file:///:
<property> <name>fs.defaultFS</name> <value>hdfs://cdh1:8020</value> </property>
在/etc/hadoop/conf/hdfs-site.xml中设置dfs.permissions.superusergroup属性,该属性指定hdfs的超级用户,默认为hdfs,你可以修改为hadoop:
<property> <name>dfs.permissions.superusergroup</name> <value>hadoop</value> </property>
更多的配置信息说明,请参考 Apache Cluster Setup
2.2 指定本地文件目录在hadoop中默认的文件路径以及权限要求如下:
目录 所有者 权限 默认路径 hadoop.tmp.dir hdfs:hdfs drwx------ /var/hadoop dfs.namenode.name.dir hdfs:hdfs drwx------ file://${hadoop.tmp.dir}/dfs/name dfs.datanode.data.dir hdfs:hdfs drwx------ file://${hadoop.tmp.dir}/dfs/data dfs.namenode.checkpoint.dir hdfs:hdfs drwx------ file://${hadoop.tmp.dir}/dfs/namesecondary
说明你可以在 hdfs-site.xm l中只配置hadoop.tmp.dir,也可以分别配置上面的路径。这里使用分别配置的方式,hdfs-site.xml中配置如下:
<property> <name>dfs.namenode.name.dir</name> <value>file:///data/dfs/nn</value> </property> <property> <name>dfs.datanode.data.dir</name> <value>file:///data/dfs/dn</value> </property>
在NameNode上手动创建 dfs.name.dir 或 dfs.namenode.name.dir 的本地目录:
$ mkdir -p /data/dfs/nn
在DataNode上手动创建 dfs.data.dir 或 dfs.datanode.data.dir 的本地目录:
$ mkdir -p /data/dfs/dn
修改上面目录所有者:
$ chown -R hdfs:hdfs /data/dfs/nn /data/dfs/dn
hadoop的进程会自动设置 dfs.data.dir 或 dfs.datanode.data.dir,但是 dfs.name.dir 或 dfs.namenode.name.dir 的权限默认为755,需要手动设置为700:
$ chmod 700 /data/dfs/nn # 或者 $ chmod go-rx /data/dfs/nn