CentOS中Hadoop单机伪分布式配置

5 Hadoop单机配置

首先我们需要为我们的主机名增加IP映射,那么我们需要知道我们的主机名是什么,执行下面命令查看主机名

vi /etc/sysconfig/network

查看一下HOSTNAME的值,你可以修改这个值,也可以直接将这个值拷贝出来

执行下面命令,增加IP映射

sudo vi /etc/hosts

在最后一行增加一行,输入主机的ip,以及上面的HOSTNAME的值

接下来运行一个实例来验证hadoop配置成功

cd /home/hadoop/hadoop-2.9.0
mkdir ./input
cp ./etc/hadoop/*.xml ./input
./bin/hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-2.9.0.jar grep ./input ./output 'dfs[a-z.]+'
cat ./output/*

最后运行结果如下

如果出现错误INFO metrics.MetricsUtil: Unable to obtain hostName,说明你ip映射没有成功,需要重新验证你的ip跟主机名是否正确

重复运行上面的实例需注意,hadoop不会覆盖结果文件,重复运行需先删除原先的结果文件

rm -r ./output

6 Hadoop伪分布式配置

我们首先需要设置Hadoop环境变量

vi ~/.bashrc

在最后增加如下内容

export HADOOP_HOME=/home/hadoop/hadoop-2.9.0
export HADOOP_INSTALL=$HADOOP_HOME
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export YARN_HOME=$HADOOP_HOME
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin

保存退出后,source一下配置

source ~/.bashrc

我们还需要修改两个配置文件core-site.xmlhdfs-site.xml
先修改core-site.xml

vi ./etc/hadoop/core-site.xml

之间增加如下内容

<configuration>
    <property>
        <name>hadoop.tmp.dirname>
        <value>file:/home/hadoop/hadoop-2.9.0/tmpvalue>
        <description>Abase for other temporary directories.description>
    property>
    <property>
        <name>fs.defaultFSname>
        <value>hdfs://localhost:9000value>
    property>
configuration>

然后修改hdfs-site.xml,

vi ./etc/hadoop/hdfs-site.xml

之间增加如下内容

<configuration>
    <property>
        <name>dfs.replicationname>
        <value>1value>
    property>
    <property>
        <name>dfs.namenode.name.dirname>
        <value>file:/home/hadoop/hadoop-2.9.0/tmp/dfs/namevalue>
    property>
    <property>
        <name>dfs.datanode.data.dirname>
        <value>file:/home/hadoop/hadoop-2.9.0/tmp/dfs/datavalue>
    property>
configuration>

修改完成后,执行NameNode的格式化

./bin/hdfs namenode -format

成功的话,可以看到successfully formatted

接下来开启NameNode和DataNode守护进程

./sbin/start-dfs.sh

如果出现Are you sure you want to continue connecting,输入yes

启动完成后,可以通过命令jps来判断是否成功,如果出现了NameNodeDataNodeSecondaryNameNode,则说明成功启动,如果SecondaryNameNode没有启动,运行sbin/stop-dfs.sh关闭进程,然后重新尝试启动,如果没有NameNodeDataNode,那就是配置不成功,需要仔细检查之间的步骤,或者查看启动日志/home/hadoop/hadoop-2.9.0/logs/hadoop-hadoop-namenode-dblab.log排查原因。

成功启动后,可以访问web界面ip:50070查看 NameNode 和 Datanode 信息,还可以在线查看 HDFS 中的文件。

7 运行Hadoop伪分布式实例

hadoop单机模式中的实例读取的本地数据,伪分布式读取的是HDFS上的数据,为了使用HDFS,我们需要先在HDFS中创建用户目录,然后再创建input文件夹,并将本地的文件上传至HDFS的`/user/hadoop/input文件夹中

./bin/hdfs dfs -mkdir -p /user/hadoop
./bin/hdfs dfs -mkdir input
./bin/hdfs dfs -put ./etc/hadoop/*.xml input

中间如果报错,可忽略

查看一下HDFS中input的文件列表

./bin/hdfs dfs -ls input

文件列表如下

接下来运行实例

./bin/hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-2.9.0.jar grep input output 'dfs[a-z.]+'

查看一下HDFS上的结果

./bin/hdfs dfs -cat output/*

这里我们的input文件更多一些,所以结果也不一样

最后,如果想关闭Hadoop,运行下面命令

./sbin/stop-dfs.sh

8 启动YARN

YARN是从MapReduce中分离出来的,负责资源管理与任务调度,我们在这里启动YARN,首先修改配置文件mapred-site.xml,先进行重命名

mv ./etc/hadoop/mapred-site.xml.template ./etc/hadoop/mapred-site.xml

然后修改mapred-site.xml

vi ./etc/hadoop/mapred-site.xml

增加如下内容

<configuration>
    <property>
        <name>mapreduce.framework.namename>
        <value>yarnvalue>
    property>
configuration>

接着修改yarn-site.xml

vi ./etc/hadoop/yarn-site.xml

增加如下内容

<configuration>

    <property>
        <name>yarn.nodemanager.aux-servicesname>
        <value>mapreduce_shufflevalue>
    property>
configuration>

最后启动YARN

./sbin/start-dfs.sh
./sbin/start-yarn.sh


开启历史服务器,方便在web中查看任务运行情况

./sbin/mr-jobhistory-daemon.sh start historyserver

在浏览器中打开ip:8088/cluster

运行命令jps,额可以查看到多了NodeManager和ResourceManager两个后台进程

如果需要关闭,可以执行下面的命令

./sbin/stop-yarn.sh
./sbin/mr-jobhistory-daemon.sh stop historyserver

你可能感兴趣的:(大数据,大数据之旅)