在CentOS上配置Hadoop分布式文件系统(HDFS)是一个复杂但非常有用的过程。以下是一些关键步骤和技巧,可以帮助你顺利完成配置。
安装Java:
JAVA_HOME
环境变量。sudo yum install -y java-1.8.0-openjdk-devel
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk
export PATH=$JAVA_HOME/bin:$PATH
使用命令:source /etc/profile
使配置生效。安装Hadoop:
/usr/local/hadoop
)。设置环境变量:
/etc/profile
文件,添加以下内容:export HADOOP_HOME=/usr/local/hadoop
export PATH=$HADOOP_HOME/bin:$PATH
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
使用命令:source /etc/profile
使配置生效。SSH免密登录:
ssh-keygen -t rsa
生成密钥对,然后使用 ssh-copy-id user@nodeX
将公钥复制到每个节点。主机名和静态IP:
/etc/sysconfig/network-scripts/ifcfg-eth0
),设置静态IP、子网掩码和网关。时间同步:
sudo yum install ntp
sudo ntpdate ntp.aliyun.com
核心配置文件 (core-site.xml
):
$HADOOP_HOME/etc/hadoop/core-site.xml
文件,添加以下内容:<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://namenode_hostname:9000</value>
</property>
</configuration>
将 namenode_hostname
替换为NameNode节点的主机名。HDFS配置文件 (hdfs-site.xml
):
$HADOOP_HOME/etc/hadoop/hdfs-site.xml
文件,添加以下内容:<configuration>
<property>
<name>dfs.namenode.name.dir</name>
<value>/path/to/namenode/data</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/path/to/datanode/data</value>
</property>
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
</configuration>
将 /path/to/namenode/data
和 /path/to/datanode/data
替换为NameNode和DataNode的数据存储目录。在NameNode节点上执行以下命令格式化NameNode:
$HADOOP_HOME/bin/hdfs namenode -format
在NameNode节点上执行以下命令启动HDFS集群:
$HADOOP_HOME/sbin/start-dfs.sh
验证:
jps
命令检查HDFS守护进程是否已启动。http://namenode_hostname:50070
查看HDFS Web UI。停止:
$HADOOP_HOME/sbin/stop-dfs.sh
配置存储策略:
SSH免密登录:
高可用性配置:
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>namenode1:8020</value>
</property>
<property>
<name>dfs.namenode.rpc-address.mycluster.nn2</name>
<value>namenode2:8020</value>
</property>
<property>
<name>dfs.namenode.http-address.mycluster.nn1</name>
<value>namenode1:50070</value>
</property>
<property>
<name>dfs.namenode.http-address.mycluster.nn2</name>
<value>namenode2:50070</value>
</property>
<property>
<name>dfs.namenode.shared.edits.dir</name>
<value>qjournal://namenode1:8485;namenode2:8485;namenode3:8485/mycluster</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>
通过以上步骤和技巧,你可以在CentOS上成功配置HDFS,并为后续的大数据处理和分析打下坚实的基础。