Linux centos7 安装Hadoop单结点

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
# add
192.168.89.130 master
4、修改/etc/sysconfig/network
# Created by anaconda
NETWORKING=yes
HOSTNAME=master

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

source /etc/sysconfig/network
service network restart
5.创建hadoop用户
adduser hadoop '123456'
6.创建hdfs目录
su hadoop
cd ~

创建如下目录的文件夹

  • home
    • hadoop
      • hdfs
        • data
        • name
mkdir -p hdfs/data
mkdir -p hdfs/name
7.生成ssh公私钥对

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

这里写图片描述

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

cd .ssh/
cat id_rsa.pub >> authorized_keys
chmod 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/local
chown -R hadoop:hadoop /usr/local/hadoop-2.8.0
2、配置hadoop环境变量

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

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

3、修改hadoop配置文件

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

hadoop-env.sh
yarn-env.sh
core-site.xml
hdfs-site.xml
mapred-site.xml
yarn-site.xml
slaves

在目录中我们可以看到并没有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_111
export 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.sh
start-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。

这里写图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值