欢迎投稿

今日深度:

Linux centos7 安装Hadoop单结点,centos7hadoop

Linux centos7 安装Hadoop单结点,centos7hadoop


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。

www.htsjk.Com true http://www.htsjk.com/Hadoop/33703.html NewsArticle Linux centos7 安装Hadoop单结点,centos7hadoop Hadoop实现了一个分布式文件系统(Hadoop Distributed File System),简称HDFS。HDFS有高容错性的特点,并且设计用来部署在低廉的(low-cost)硬件上;而...
相关文章
    暂无相关文章
评论暂时关闭