Linux centos7 安装Hadoop单结点

来源:互联网 发布:最好看的网络言情小说 编辑:程序博客网 时间:2024/06/16 06:12

Hadoop实现了一个分布式文件系统(Hadoop Distributed File System),简称HDFS。HDFS有高容错性的特点,并且设计用来部署在低廉的(low-cost)硬件上;而且它提供高吞吐量(high throughput)来访问应用程序的数据,适合那些有着超大数据集(large data set)的应用程序。HDFS放宽了(relax)POSIX的要求,可以以流的形式访问(streaming access)文件系统中的数据。

下面我们就来在虚拟机上在安装一下单结点的hadoop吧。

一、ssh免密码登录

Hadoop的进程之间同信使用ssh方式,需要每次都要输入密码。为了实现自动化操作,需要配置ssh免密码登陆方式。

1.停止并禁用防火墙

systemctl stop firewalld && systemctl disable firewalld

2.打开sshd服务

需要编辑/etc/ssh/sshd_config打开sshd服务.

vi /etc/ssh/sshd_config

放开标注的文档(去掉#):

这里写图片描述

重启服务,使刚才的修改生效(centos7上命令)

systemctl restart sshd.service

3.修改/etc/hosts

127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4::1         localhost localhost.localdomain localhost6 localhost6.localdomain6# add192.168.89.130 master

4、修改/etc/sysconfig/network

# Created by anacondaNETWORKING=yesHOSTNAME=master

使用如下命令使刚才的修改/etc/sysconfig/network生效

source /etc/sysconfig/networkservice network restart

5.创建hadoop用户

adduser hadoop '123456'

6.创建hdfs目录

su hadoopcd ~

创建如下目录的文件夹

  • home
    • hadoop
      • hdfs
        • data
        • name
mkdir -p hdfs/datamkdir -p hdfs/name

7.生成ssh公私钥对

生成ssh公私钥对,输入如下命令然后一路回车.

这里写图片描述

这时候会在/home/hadoop/下生成.ssh目录,目录中有文件id_rsa和id_rsa.pub。下面我们实现免密登陆过程

cd .ssh/cat id_rsa.pub >> authorized_keyschmod 644 authorized_keys

这时候在.ssh目录下会多出一个authorized_keys文件。下面我们测试下是否能免密登陆

这里写图片描述

如有提示输入“yes”回车即可。之后可以看到免密登陆成功.

二、安装hadoop

1.官网下载hadoop

可以到官网下载 hadoop-2.8.0,然后通过rz上传到虚拟机当中。

解压hadoop到/usr/local目录

tar -zxvf hadoop-2.8.0 -C /usr/localchown -R hadoop:hadoop /usr/local/hadoop-2.8.0

2、配置hadoop环境变量

修改/etc/profile,配置环境变量。

export JAVA_HOME=/usr/local/jdk1.8.0_111export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jarexport HADOOP_HOME=/usr/local/hadoop-2.8.0export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

3、修改hadoop配置文件

修改hadoop配置文件 hadoop安装目录/etc/hadoop 修改的文件,需要修改的文件如下:

hadoop-env.shyarn-env.shcore-site.xmlhdfs-site.xmlmapred-site.xmlyarn-site.xmlslaves

在目录中我们可以看到并没有mapred-site.xml,但是有mapred-site.xml.template,所以我们可以做如下操作。

cp mapred-site.xml.template mapred-site.xml

3.1 hadoop-env.sh
在文件中增加如下配置:

export JAVA_HOME=/usr/local/jdk1.8.0_111export HADOOP_PREFIX=/usr/local/hadoop-2.8.0

修改后如下:

这里写图片描述

3.2 yarn-env.sh
yarn-env.sh在文件中增加如下配置:

export JAVA_HOME=/usr/local/jdk1.8.0_111

修改后如下:

这里写图片描述

3.3 core-site.xml

<configuration>    <property>        <name>fs.defaultFS</name>        <value>hdfs://master:9000</value>    </property>    <property>        <name>hadoop.home.dir</name>        <value>file:/home/hadoop/hdfs</value>        <description>Abase for other temporary directories.</description>    </property>    <property>        <name>hadoop.tmp.dir</name>        <value>file:/home/hadoop/hdfs</value>    </property></configuration>

3.4 hdfs-site.xml

<configuration>    <property>        <name>dfs.namenode.secondary.http-address</name>        <value>master:50090</value>    </property>    <property>        <name>dfs.replication</name>        <value>1</value>    </property>    <property>        <name>dfs.namenode.name.dir</name>        <value>file:/home/hadoop/hdfs/name</value>    </property>    <property>        <name>dfs.datanode.data.dir</name>        <value>file:/home/hadoop/hdfs/data</value>    </property></configuration>

3.5 mapred-site.xml

<configuration>    <property>        <name>mapreduce.framework.name</name>        <value>yarn</value>    </property>    <property>        <name>mapreduce.jobhistory.address</name>        <value>master:10020</value>    </property>    <property>        <name>mapreduce.jobhistory.webapp.address</name>        <value>master:19888</value>    </property></configuration>

3.6 yarn-site.xml

<configuration>    <property>        <name>yarn.resourcemanager.hostname</name>        <value>master</value>    </property>    <property>        <name>yarn.nodemanager.aux-services</name>        <value>mapreduce_shuffle</value>    </property>    <property>        <name>yarn.resourcemanager.address</name>        <value>master:8032</value>    </property>    <property>        <name>yarn.resourcemanager.scheduler.address</name>        <value>master:8030</value>    </property>    <property>        <name>yarn.resourcemanager.resource-tracker.address</name>        <value>master:8031</value>    </property>    <property>        <name>yarn.resourcemanager.admin.address</name>        <value>master:8033</value>    </property>    <property>        <name>yarn.resourcemanager.webapp.address</name>        <value>master:8088</value>    </property></configuration>

3.7 slaves

修改slaves,加入节点主机名称,保存并退出:

master

4.格式化namenode命令

hdfs namenode -format

5. 启动hadoop

# 启动hadoop方法一start-all.sh# 启动hadoop方法二start-dfs.shstart-yarn.sh

6、启动成功

访问http://192.168.89.130:8088/,显示如下页面:

这里写图片描述

访问http://192.168.89.130:50070/,显示如下页面:
这里写图片描述

三、遇到的问题

访问但是http://192.168.89.130:8088/成功,但是访问”http://192.168.89.130:50070/”不成功。发现data下面没有文件。
把name下面的文件copy到data文件夹下面。

cp -r name/* data/

其实当你真正启动成功使用jps命令可以看到如下显示当前所有java进程pid。

这里写图片描述