toothlou

本文所使用的Linux发行版本为:CentOS Linux release 7.4.1708 (Core)

hadoop单机版安装

准备工作

创建用户

useradd -m hadoop
passwd hadoop

下载安装包

1.jdk
到官方下载页面http://www.oracle.com/technetwork/java/javase/downloads/index.html,下载jdk,我下载的版本为jdk-8u151-linux-x64.tar.gz。

2.hadoop安装包
到hadoop官网下载hadoop的二进制包,我使用的版本为:hadoop-2.7.5.tar.gz。

将jdk和hadoop的包上传到linux上,路径为:/home/hadoop。

hadoop安装及配置

安装

以hadoop用户登录,分别解压jdk和hadoop的包。

tar -zxvf jdk-8u151-linux-x64.tar.gz
tar -zxvf hadoop-2.7.5.tar.gz

重命名hadoop的目录

mv hadoop-2.7.5/ hadoop/

hadoop运行环境配置

进入到hadoop的目录/home/hadoop/hadoop
vi etc/hadoop/hadoop-env.sh

设置jdk的路径

# The java implementation to use.
export JAVA_HOME=/home/hadoop/jdk1.8.0_151

使用hadoop进行单词统计

创建输入文件目录及测试文件

mkdir input4test

vi input4test/1.txt
hadoop is an open-source software

vi input4test/2.txt
I want to learn hadoop

执行单词统计操作

bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.5.jar wordcount ./input4test ./output4test

查看统计结果

cat output4test/part-r-00000
I   1
an  1
hadoop  2
is  1
learn   1
open-source 1
software    1
to  1
want    1

hdfs相关配置及操作

配置hdfs

进入到hadoop的目录/home/hadoop/hadoop
修改配置文件etc/hadoop/core-site.xml

<configuration>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://localhost:9000</value>
    </property>
</configuration>

修改配置文件etc/hadoop/hdfs-site.xml

<configuration>
    <property>
        <name>dfs.replication</name>
        <value>1</value>
    </property>
</configuration>

设置免密码登录

$ ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
$ chmod 0600 ~/.ssh/authorized_keys

hdfs格式化及启动

  1. hdfs格式化

    bin/hdfs namenode -format
  2. hdfs启动

    sbin/start-dfs.sh
  3. 查看hdfs状态
    在浏览器中输入http://IP:50070,可以查看hdfs的状态。如果50070端口没有打开,输入下面命令打开50070端口。

    iptables -I INPUT -p tcp --dport 50070 -j ACCEPT

hdfs基本操作

查看文件和文件夹

bin/hadoop dfs -ls -R /

该命令表示以递归方式查看根目录下的所有文件和文件夹。

创建目录

bin/hadoop dfs -mkdir /input

该命令表示在根目录下创建input目录。

上传文件到hdfs

bin/hadoop hdfs -put input4test/1.txt /input/
bin/hadoop hdfs -put input4test/2.txt /input/

该命令表示将本地input4test/1.txt和2.txt文件上传到hdfs中的/input目录下。

查看文件内容

bin/hadoop dfs -cat  /input/1.txt

通过YARN调度

配置YARN

修改配置文件etc/hadoop/mapred-site.xml

<configuration>
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
</configuration>

修改配置文件etc/hadoop/yarn-site.xml

<configuration>
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
    <property>
        <name>yarn.nodemanager.env-whitelist</name>
        <value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME</value>
    </property>
</configuration>

启动YARN

sbin/start-yarn.sh

查看YARN状态

在浏览器中输入http://IP:8088,可以查看YARN的状态。如果8088端口没有打开,输入下面命令打开8088端口。

iptables -I INPUT -p tcp --dport 8088 -j ACCEPT

再次执行单词统计操作

bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.5.jar wordcount /input /output

本次执行的输入和输出目录,都是hdfs的目录。

查看统计结果

bin/hadoop dfs -cat /output/part-r-00000

和之前的结果一样。

I   1
an  1
hadoop  2
is  1
learn   1
open-source 1
software    1
to  1
want    1

相关文章: