Hadoop-2-安装

Hadoop-2-安装

0、软件版本

本文基于 Apache Hadoop 2.9.2(2018 Nov 19)版本

JDK使用 jdk1.8.0_212 版本

Linxu选择 CentOS release 6.8 (Final)

1、配置Linux

1)配置静态IP

修改 /etc/sysconfig/network-scripts/ifcfg-eth0 文件

###首先修改这2项
#系统启动时激活网卡
ONBOOT=yes
#配置IP为静态类型,不要自动获取IP
BOOTPROTO=static

###再配置这3项
#手动指定IP
IPADDR=192.168.xxx.xxx
#指定网关
GATEWAY=192.168.xxx.xxx
#指定DNS域名解析,这个和上面的网关是一样的
DNS1=192.168.xxx.xxx

修改好后,使用service network restart命令,重启网络服务,并使用ping命令,查看是否配置正确

如果网络服务重启失败,则重新启动系统


如果使用的是克隆的虚拟机,则需要修改mac地址

/etc/udev/rules.d/70-persistent-net.rules 文件里的最下面的 NAME=“eth1”ATTR{address} 的值拷贝到 /etc/sysconfig/network-scripts/ifcfg-eth0 文件里的 HWADDR属性中,同时修改eth1为eth0,并删除上面的eth0

#/etc/udev/rules.d/70-persistent-net.rules
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{
    
    address}=="???", ATTR{
    
    type}=="1", KERNEL=="eth*", NAME="eth1"

#/etc/sysconfig/network-scripts/ifcfg-eth0
HWADDR=???

2)修改主机名称

修改 /etc/sysconfig/network 文件

HOSTNAME=???

修改完成后,重新启动系统

3)添加host

将上面配置的 静态IP主机名称 都添加到 /etc/hosts 文件中

扫描二维码关注公众号,回复: 12279656 查看本文章

2、本地(独立)模式

1)安装JDK

从Oracle官网下载JDK 8,并配置好环境变量

export JAVA_HOME=/???/jdk1.8.0_212
export PATH=$JAVA_HOME/bin:$PATH

2)安装Hadoop

从Hadoop官网下载,并解压缩

3)新建用户

使用 useradd命令,新建一个用户

4)分配Hadoop目录权限

使用chown -R 用户名:组名 Hadoop目录将刚才解压好的Hadoop目录赋予权限给新创建的用户

5)切换至新用户

使用su 用户名命令

6)测试

【1】grep

  1. 首先进入Hadoop目录当中,新建一个目录,例如input

  2. 复制Hadoop目录下的 etc/hadoop 里的所有XML文件到 input 目录中,cp -v etc/hadoop/*.xml input

  3. 执行Hadoop命令 bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.9.2.jar grep input output 'dfs[a-z.]+'

    这个命令表示的是,执行官方提供的样例jar里的grep程序,输入目录是input,输出目录是output,引号里的内容是过滤规则(正则表达式)

  4. 查看Hadoop目录,可以看到多了一个名为output的目录,里面有2个文件,一个名为 part-r-00000,是输出结果;另外一个名为 _SUCCESS,它的大小为0,仅仅表示执行成功

  5. 使用 cat命令查看 part-r-00000 文件的内容,结果显示 1 dfsadmin

注意事项:

  1. 输出目录不能存在,否则会报错 org.apache.hadoop.mapred.FileAlreadyExistsException: Output directory file:/??? already exists
  2. 一定要将主机名称配置到host中,否则会报错 java.net.UnknownHostException: ???: ???: 未知的名称或服务

【2】wordcount

  1. 首先进入Hadoop目录当中,新建一个目录,例如 wcinput

  2. 进入新创建的目录,新建一个文件,名称随意,例如 wc.input,并在文件中输入一些字符,每个字符之间使用空格或Tab隔开

  3. 执行Hadoop命令 bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.9.2.jar wordcount wcinput wcoutput

    这个命令表示的是,执行官方提供的样例jar里的wordcount程序,输入目录是wcinput,输出目录是wcoutput

  4. 查看Hadoop目录,可以看到多了一个名为wcoutput的目录,里面有2个文件,一个名为 part-r-00000,是输出结果;另外一个名为 _SUCCESS,它的大小为0,仅仅表示程序执行成功

  5. 使用 cat命令查看 part-r-00000 文件的内容,它是以每个字符为一行,每行以字符开头,并以字符出现的次数结尾

3、伪分布式模式【在单节点上运行Hadoop】

1) 在HDFS上运行Hadoop

【1】修改配置文件

 ① etc/hadoop/core-site.xml 默认配置参数

<configuration>
    <!-- 修改NameNode的服务器的IP和端口号,默认端口号为9000 -->
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://本机IP:端口号</value>
    </property>
    <!-- 修改临时文件目录 -->
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/指定路径</value>
    </property>
</configuration>

 ② etc/hadoop/hdfs-site.xml 默认配置参数

<configuration>
    <!-- 修改副本数 -->
    <property>
        <name>dfs.replication</name>
        <value>1</value>
    </property>
</configuration>

【2】格式化文件系统,并启动HDFS

 ① 执行格式化命令(仅初次启动时需要格式化) bin/hdfs namenode -format

 ② 启动HDFS(以后台运行的方式)

  NameNode sbin/hadoop-daemon.sh start namenode

  DataNode sbin/hadoop-daemon.sh start datanode

 启动完成后,可以使用 jps来验证是否启动成功,出现进程号即可

【3】使用管理页面查看NameNode状态

 链接是 http://文件系统主机IP:50070/

【4】在HDFS上创建目录,并上传文件

 ① 创建目录 bin/hdfs dfs -mkdir -p /父路径/子路径

 ② 上传文件 bin/hdfs dfs -put /文件系统主机目标文件 /HDFS目标路径

 ③ 查看目录 bin/hdfs dfs -ls /HDFS路径

 ④ 查看文件 bin/hdfs dfs -cat /HDFS目标文件

【5】执行MapReduce程序,并查看结果

 ① 执行程序 bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.9.2.jar MapReduce程序 /HDFS输入路径 /HDFS输出路径

 ② 查看结果 bin/hdfs dfs -cat /HDFS输出路径/**代表路径下的所有文件

【6】下载文件

 ① 使用NameNode的管理页面下载,Utilities --> Browse the file system,再找到对应的文件,点击Download,注意端口号是50075,另外浏览器客户端还需要配置文件系统主机IP到host文件中

 ② 使用Hadoop命令 bin/hadoop fs -get /HDFS目标文件 /文件系统主机目标路径

【7】查看和删除目录

 ① 查看 bin/hadoop fs -ls -R /HDFS目录

 ② 删除 bin/hadoop fs -rm -r /HDFS目录

【8】关闭HDFS

 执行命令sbin/hadoop-daemon.sh stop namenodesbin/hadoop-daemon.sh stop datanode

2)在YARN上运行Hadoop

【1】修改配置文件

 ① 复制etc/hadoop/mapred-site.xml.template到etc/hadoop/mapred-site.xml,再修改其内容 默认配置参数

<configuration>
    <!-- 修改执行MapReduce作业时的框架名称 -->
    <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>
    <!-- 修改ResourceManager的主机地址 -->
    <property>
        <name>yarn.resourcemanager.hostname</name>
        <value>YARN的ResourceManager的主机IP</value>
    </property>
</configuration>

【2】启动YARN

注意在启动YARN之前,需要确保HDFS已经启动

 ① 启动ResourceManager sbin/yarn-daemon.sh start resourcemanager

 ② 启动NodeManager sbin/yarn-daemon.sh start nodemanager

 注意使用jps查看相应的启动进程

【3】使用管理页面查看ResourceManager状态

  链接是 http://文件系统主机IP:8088/

【4】运行一个MapReduce job

 使用命令 bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.9.2.jar MapReduce程序 /HDFS输入路径 /HDFS输出路径

 任务执行后,可以看到如下日志

19/08/11 19:20:20 INFO mapreduce.Job: Running job: job_1565522114534_0001
19/08/11 19:20:29 INFO mapreduce.Job: Job job_1565522114534_0001 running in uber mode : false
19/08/11 19:20:29 INFO mapreduce.Job:  map 0% reduce 0%
19/08/11 19:20:36 INFO mapreduce.Job:  map 100% reduce 0%
19/08/11 19:20:42 INFO mapreduce.Job:  map 100% reduce 100%
19/08/11 19:20:43 INFO mapreduce.Job: Job job_1565522114534_0001 completed successfully

【5】关闭YARN

 ① 关闭ResourceManager sbin/yarn-daemon.sh stop resourcemanager

 ② 关闭NodeManager sbin/yarn-daemon.sh stop nodemanager

猜你喜欢

转载自blog.csdn.net/adsl624153/article/details/94416480