全局时钟NTP的配置
一般情况下,Centos7.6 已经自带NTP,其配置文件路径为/ect/ntp.conf,只需要修改配置文件即可。
NTP服务器的配置,在westgisb001上打开配置文件 vim /etc/ntp.conf 并增加如下内容:
#授权10.103.105.0网段上所有机器可以从这台机器上查询和时间同步
restrict 10.103.105.0 mask 255.255.255.0 nomodify notrap
#当外部NTP服务器无法连接时,使用本机为NTP服务器
server 127.0.0.1
fudge 127.0.0.1 stratum 10
此处10代表计算机在网络top中的层级数,一般在15以内。
NTP客户端的配置,在westgisb002~westgis~所有节点上执行。打开配置文件
vim /etc/ntp.conf 增加如下内容:
#只需在配置文件的server下在加一条代码,允许同步10.0.0.31这台主机时间
server 10.101.103.101 iburst
重启NTP服务,在每个节点上执行命令: systemctl restart ntpd
每个节点创建相同的账号
使用root账户执行命令创建账号,例如账号名为xiao。执行以下命令
useradd -m xiao(useradd命令的详细使用方法可以通过man useradd的方式获得。)
主机名和IP地址的映射
打开文件/etc/hosts,增加HDFS集群涉及的所有节点的IP地址和节点名称
10.103.105.01 westgisb001
........
主节点b001到从节点的免密码登录
在westgisb001上产生公钥和私钥文件
私钥/home/xiao/.ssh/id_rsa
公钥/home/xiao/.ssh/id_rsa.pub
将公钥文件id_rsa.pub远程拷贝到slave节点任意位置,例如/tmp
scpid_rsa.pub xiao@westgisb002:/tmp
将公钥文件追加到/home/xiao/.ssh/
远程登录到westgis102节点
cat /tmp/id_rsa.pub>> /home/xiao/.ssh/authorized_keys
单节点配置(以主节点为例)
纵向配置主要涉及各节点操作系统的环境变量配置,横向配置主要用于不同节点间组件的相互协调。
环境变量配置
如果使用root账户配置全部用户的环境变量,修改配置文件/ect/profile。
如果使用xiao配置环境变量,则修改配置文件/home/xiao/.bashrc
增加如下内容:
#Hadoop
export HADOOP_HOME=/home/xiao/hadoop
export PATH={HADOOP_HOME}/bin:$PATH
#Java
export JAVA_HOME=/home/xiao/jdk
export PATH={JAVA_HOME}/bin:$PATH
/*此处需要说明的是:/home/xiao/hadoop和/home/xiao/jdk分别为hadoop和jdk安装包所在路径*/
文件配置
横向配置涉及$/HADOOP_HOME/etc/hadoop目录下的四个配置文件,分别是:core-site.xml, hdfs-site.xml. hadoop-env.sh和slaves
配置core-site.xml
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://westgisb001:8020</value> /*此处wetgis101为NameNode的机器名*/
</property>
</configuration>
配置hdfs-site.xml
<configuration>
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>/opt/hdfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/opt/hdfs/data</value>
</property>
</configuration>
/*此处dfs.replation为数据的备份个数,一般情况为3*/
/*此处/opt/hdfs/name为元数据在NameNode本地存储路径*/
/*此处/opt/hdfs/data为实际数据在DataNode本地存储路径*/
配置hadoop-env.sh
在文件最后增加 export JAVA_HOME=/opt/bigdata/jdk
/*在配置文件中增加jdk的路径*/
配置slaves
打开该文件,将HDFS集群所有的DataNode机器名加入到文件中,每行一个DataNode,形式如:
westgisb001
westgisb002
......
复制主节点配置到所有从节点
首先,将NameNode上环境变量配置文件拷贝到每个DataNode,接着将NameNode上$/HADOOP_HOME/etc/hadoop下的四个配置文件拷贝到所有DataNode节点。
此处可以写全自动化的脚本在主节点上执行,脚本内容如下:
scp $/HADOOP_HOME/etc/hadoop/core-site.xml xiao@westgisb001: $/HADOOP_HOME/etc/hadoop/
可在主节点配置好后把Hadoop文件夹全部拷贝
scp -r hadoop xiao@westgisb002:/home/xiao/
scp -r hadoop xiao@westgisb003:/home/xiao/
........
拷贝环境变量
scp .bashrc xiao@westgisb002:/home/xiao /
......
四、集群的初始化与启动
a.格式化HDFS
hadoop namenode -format
b.启动HDFS
主节点执行 $HADOOP_HOME/sbin/start-dfs.sh
c.Web监控界面
URL http://westgisb001:50070
/*监控界面显示了集群的相关信息如NN节点个数、节点存储空间等信息*/
d.命令行状态查看集群状态
hadoop dfsadmin –report /*显示节点个数、节点存储空间等信息*/
e.停止HDFS
主节点执行 $HADOOP_HOME/sbin/stop-dfs.sh
五、常见的错误排查方法
a. 查看java进程(一)
jps /*显示当前账户java进程*/
b.查看java进程(二)
ps aux|grep java /*显示当前节点java进程,功能比(一)强大*/
c.查看端口是否开启
netstat –tunlp|grep 50070
d.占用某个端口的进程
lsof–i:50070
e.异常处理查看日志
$HADOOP_HOME/logs/*-DataNode-.log
$HADOOP_HOME/logs/*-DataNode-.out