Linux环境下安装hadoop伪分布式集群

linux下安装hadoop伪分布式集群参考博客:https://blog.csdn.net/huiweizuotiandeni/article/details/59632613

上述博客内容其实和官网上讲的差不多,跟着做理论上是不会出现问题的,但是实际中自己操作总会出现一些不应该出现的bug。

而我在配置该环境的时候便出现了很多本不应该出现的问题,在此做一个总结,以防再犯。

我的系统是Ubuntu18.0,和Ubuntu16.0基本一致。

JAVA安装只需要下载安装包,解压之后配置环境变量,执行source 命令使环境变量生效即可。

export PATH=$GOROOT/bin:$GOPATH/bin:$PATH export JAVA_HOME=/home/meng/app/jdk1.8.0 export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$CLASSPATH export PATH=$JAVA_HOME/bin:$PATH export HADOOP_HOME=$HOME/app/hadoop-2.6.0-cdh5.7.0 export PATH=$HADOOP_HOME/bin:$PATH

而Hadoop安装不仅需要这些工作(解压加配置环境变量),而且还需要修改一部分配置文件,才可以使其正常运行。

而所需要配置的文件基本都在解压缩后的hadoop目录下的/etc/hadoop文件夹

这些文件分别是:hadoop-env.sh、core-site.xml、hdfs-site.xml、mapred-site.xml、yarn-site.xml、slaves、master

hadoop-env.sh是hadoop环境配置的文件,需要添加JAVA_HOME变量

# The java implementation to use. export JAVA_HOME=/home/meng/app/jdk1.8.0

core-site.xml文件的作用:定义hadfs中namenode的地址,还有tmp文件的地址

<configuration>
<!-- 指定HADOOP所使用的文件系统schema(URI),HDFS的老大(NAMENODE)的地址  -->
<property>
        <name>fs.defaultFS</name>
        <value>hdfs://192.168.72.128:9000</value>
</property>
<property>
        <name>hadoop.tmp.dir</name>
        <value>file:/home/meng/app/tmp</value>
</property>
<property>
        <name>io.file.buffer.size</name>
        <value>131702</value>
</property>
</configuration>

hdfs-site.xml文件

<configuration>
<!-- 指定namenode路径  -->
<property>
        <name>dfs.namenode.name.dir</name>
        <value>/home/meng/app/hadoop/namenode</value>
</property>
<!-- 指定datanode路径 -->
<property>
        <name>dfs.datanode.name.dir</name>
        <value>/home/meng/app/hadoop/datanode</value>
</property>
<!-- 指定hdfs副本的数量 -->
<property>
        <name>dfs.replication</name>
        <value>1</value>
</property>
<property>
        <name>dfs.namenode.secondary.http-address</name>
        <value>hadoop:9001</value>
</property>
<property>
        <name>dfs.webhdfs.enabled</name>
        <value>true</value>
</property>
</configuration>

mapred-site.xml文件(若文件夹下没有该文件,可将mapred-site.xml.template重命名为mapred-site.xml)

<configuration>
<!-- 指定mapreduce 运行在yarn上  -->
<property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
        <final>true</final>
</property>
</configuration>

yarn-site.xml:这里的localhost只是在本机测试而使用的,实际中最好使用自己的本机IP地址替换。

<configuration>
<!-- Site specific YARN configuration properties -->
<!-- 设置yarn的主机地址 -->
<property>
    <name>yarn.resourcemanager.hostname</name>
    <value>localhost</value>
</property>
<property>
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</value>
</property
</configuration>

更改master文件,加入自己的IP地址或者主机名。

更改slaves文件,slaves加入自己的ip地址,这是由于伪分布式master和slaves都是本机。

所有配置文件修改完后,还有一个关键步骤:配置SSH免密钥登录

该配置可参考博客:https://blog.csdn.net/u011414200/article/details/47681675

之后便是启动hadoop

首次启动,需要格式化namenode

hdfs namenode -format

在hadoop安装目录下有一个sbin文件夹

derby.log           hdfs-config.sh  metastore_db        start-all.sh         start-yarn.sh     stop-secure-dns.sh
distribute-exclude.sh  httpfs.sh       mr-jobhistory-daemon.sh    start-balancer.sh    stop-all.sh       stop-yarn.sh
hadoop-daemon.sh       kms.sh           refresh-namenodes.sh    start-dfs.sh         stop-balancer.sh  yarn-daemon.sh
hadoop-daemons.sh      Linux           slaves.sh        start-secure-dns.sh  stop-dfs.sh       yarn-daemons.sh

 执行start-all.sh文件即可