VMware上CentOS7.0+Hadoop3.1伪分布式搭建(2)

#set java environment
JAVA_HOME=/home/java/jdk1.8.0_172
JRE_HOME=/home/java/jdk1.8.0_172/jre
CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
export JAVA_HOME JRE_HOME CLASS_PATH PATH
 
hadoop追加配置:

export HADOOP_HOME="/opt/modules/hadoop-3.1.0"
export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH

执行:source /etc/profile 使得配置生效

验证HADOOP_HOME参数:

echo $HADOOP_HOME
/opt/modules/hadoop-3.1.0
或者使用env检查一下所有的配置情况。

2、 配置 hadoop-env.sh文件的JAVA_HOME参数
 sudo vi  ${HADOOP_HOME}/etc/hadoop/hadoop-env.sh

修改JAVA_HOME参数为:
export JAVA_HOME="/opt/modules/jdk1.8.0_172" #这里一定要使用绝对路径

3、 配置core-site.xml
vi ${HADOOP_HOME}/etc/hadoop/core-site.xml

(1) fs.defaultFS参数配置的是HDFS的地址。

<property>
<name>fs.defaultFS</name>
<value>hdfs://bigdata-senior01.home.com:9000</value>
</property>

(2) hadoop.tmp.dir配置的是Hadoop临时目录,比如HDFS的NameNode数据默认都存放这个目录下,查看core-default.xml等默认配置文件,就可以看到很多依赖${hadoop.tmp.dir}的配置。

    创建临时目录:

sudo mkdir -p /opt/data/tmp

    将临时目录的所有者修改为hadoop:

sudo chown –R hadoop:hadoop /opt/data/tmp

    修改hadoop.tmp.dir

 <property>
  <name>hadoop.tmp.dir</name>
    <value>/opt/data/tmp</value>
  </property>

最后core-site.xml
<configuration>
 <property>
      <name>fs.defaultFS</name>
      <value>hdfs://bigdata-senior01.home.com:9000</value>
      <description>HDFS的URI,文件系统://namenode标识:端口号</description>
  </property>
  <property>
  <name>hadoop.tmp.dir</name>
    <value>/opt/data/tmp</value>
    <description>namenode上本地的hadoop临时文件夹</description>
  </property>
</configuration>

八、配置HDFS,启动HDFS

1、 配置hdfs-site.xml
vi ${HADOOP_HOME}/etc/hadoop/hdfs-site.xml

    <property>
      <name>dfs.replication</name>
      <value>1</value>
        <description>副本个数,配置默认是3,应小于datanode机器数量</description>
 </property>
    </property>

dfs.replication配置的是HDFS存储时的备份数量,因为这里是伪分布式环境只有一个节点,所以这里设置为1。

其他配置,如果不配置以下属性,hadoop将会在之前配置的临时文件下面创建name和data目录
<property>
    <name>dfs.name.dir</name>
    <value>/opt/hadoop/hdfs/name</value>
    <description>namenode上存储hdfs名字空间元数据 </description>
 </property>

 <property>
    <name>dfs.data.dir</name>
    <value>/opt/hadoop/hdfs/data</value>
    <description>datanode上数据块的物理存储位置</description>
 </property>

2、 格式化HDFS

 hdfs namenode –format #只需要在第一次的时候执行

格式化是对HDFS这个分布式文件系统中的DataNode进行分块,统计所有分块后的初始元数据的存储在NameNode中。

格式化后,查看core-site.xml里hadoop.tmp.dir(/opt/data目录)指定的目录下是否有了dfs目录,如果有,说明格式化成功。

注意权限设置,最好把Hadoop设置成/opt/data目录的所有者
sudo chown -R hadoop:hadoop /opt/data

    查看NameNode格式化后的目录。

 ll /opt/data/tmp/dfs/name/current


3、 启动NameNode
${HADOOP_HOME}/sbin/hadoop-daemon.sh start namenode
系统会告警,建议采用:hdfs --daemon start namenode

4、 启动DataNode
${HADOOP_HOME}/sbin/hadoop-daemon.sh start datanode
系统会告警,建议采用:hdfs --daemon start datanode

5、 启动SecondaryNameNode
 ${HADOOP_HOME}/sbin/hadoop-daemon.sh start secondarynamenode
系统会告警,建议采用:hdfs --daemon start secondarynamenode

6、 JPS命令查看是否已经启动成功,有结果就是启动成功了。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/387e0b236ec03defa182a2270f5cf93f.html