hadoop 安装 官方文档

 

目的

搭建一个单节点的服务,为了快速的体验hadoop hdfs和hadoop MapReduce

前提条件

支持的平台:linux,windows,这里以centos7 64位操作

需要软件:java,这里已经解压到 /usr/local/java/jdk1.8.0_231

ssh 一般系统都自带

静态ip,给大家看下我的网络配置文件

vim /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=800066b1-aea2-40f9-8c20-3c3dba0ff183
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.3.101
PREFIX=24
GATEWAY=192.168.3.1
DNS1=192.168.3.1
PEERDNS=no

 

设置域名

vim /etc/hosts
192.168.3.101 foo-1.example.com foo-1.example.com. foo-1  【注意中间末尾的点】
vim /etc/sysconfig/network
HOSTNAME=foo-1.example.com

准备hadoop环境

这里已经下载完成,并解压到下面目录

/usr/local/hadoop/hadoop-3.1.3

修改配置文件

vim /usr/local/hadoop/hadoop-3.1.3/etc/hadoop/hadoop-env.sh
##增加一行内容
export JAVA_HOME=/usr/local/java/jdk1.8.0_231

查看hadoop命令使用

[root@localhost ~]# cd /usr/local/hadoop/hadoop-3.1.3
[root@localhost hadoop-3.1.3]# bin/hadoop
sage: hadoop [OPTIONS] SUBCOMMAND [SUBCOMMAND OPTIONS]
 or    hadoop [OPTIONS] CLASSNAME [CLASSNAME OPTIONS]
。。。

单机操作

 

默认,hadoop就是配置的单机模式,启动单一的java进程,用于调试很方便,

下面的示例复制解压缩的conf目录以用作input,然后查找并显示给定正则表达式的每个匹配项。 输出到给定的output目录。

[root@localhost hadoop-3.1.3]# cd /usr/local/hadoop/hadoop-3.1.3
[root@localhost hadoop-3.1.3]# mkdir input
[root@localhost hadoop-3.1.3]# cp etc/hadoop/*.xml input
[root@localhost hadoop-3.1.3]# bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.3.jar grep input output 'dfs[a-z.]+'
[root@localhost hadoop-3.1.3]# cat output/*
1	dfsadmin

 

伪分布式操作

伪分布式也是在单机环境操作,hadoop的每个后台程序运行在各自的java进程

 

配置

 

hdfs的连接url

[root@localhost hadoop-3.1.3]# cd /usr/local/hadoop/hadoop-3.1.3
[root@localhost hadoop-3.1.3]# vim etc/hadoop/core-site.xml
<configuration>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://foo-1.example.com:9000</value>  【一定不要写localhost】
    </property>
</configuration>

hdfs的副本个数,单机版,只能是1

[root@localhost hadoop-3.1.3]# vim etc/hadoop/hdfs-site.xml
<configuration>
    <property>
        <name>dfs.replication</name>
        <value>1</value>
    </property>
</configuration>

 

设置ssh免密登录

[root@localhost hadoop-3.1.3]# ssh-keygen -t rsa   【自动生成公私密钥对,按提示一路回车就行】
[root@localhost hadoop-3.1.3]# cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys    【把公钥写到授权文件】
[root@localhost hadoop-3.1.3]# ssh foo-1.example.com【第一次录入密码,以后不用了】
###最终的效果如下
[root@foo-1 hadoop-3.1.3]# ssh foo-1.example.com
Last login: Thu Jan  2 16:15:41 2020 from 192.168.3.101
[root@foo-1 ~]# exit
登出
Connection to foo-1.example.com closed.
[root@foo-1 hadoop-3.1.3]# 

 

运行

下面演示本地执行MapReduce任务

1.格式化文件系统

如果之前在hdfs上有数据,会提示是否清空,最好先执行 rm -rf /tmp/hadoop*

[root@localhost hadoop-3.1.3]# bin/hdfs namenode -format
WARNING: /usr/local/hadoop/hadoop-3.1.3/logs does not exist. Creating.
2020-01-02 16:17:04,278 INFO namenode.NameNode: STARTUP_MSG: 
/************************************************************
STARTUP_MSG: Starting NameNode
STARTUP_MSG:   host = foo-1.example.com/192.168.3.101
STARTUP_MSG:   args = [-format]
STARTUP_MSG:   version = 3.1.3

2.启动NameNode和DataNode后台进程

###需要先指定一下root用户,其他用户不需要
[root@localhost hadoop-3.1.3]# vim sbin/start-dfs.sh 
HDFS_NAMENODE_USER=root
HDFS_DATANODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root
### 启动
[root@localhost hadoop-3.1.3]# sbin/start-dfs.sh 
Starting namenodes on [foo-1.example.com]

3.通过浏览器观察NameNode和DataNode

访问之前先关闭防火墙

[root@localhost bin]# systemctl stop firewalld 
[root@localhost bin]# systemctl disabled firewalld

 

http://192.168.3.101:9870/

 

 

 

 

4.在hdfs上创建目录,用于执行MapReduce任务

[root@localhost hadoop-3.1.3]# bin/hdfs dfs -mkdir -p  /user/root/input 

我是root用户,其他用户可以/user/xxxx/input ,用户是放在user目录下的

5.本地文件上传到hdfs

[root@localhost hadoop-3.1.3]# bin/hdfs dfs -put etc/hadoop/*.xml input

文件默认是上传到用户目录下了,/user/root/input

6.运行示例

是在hdfs上执行的,output也是在hdfs的用户目录下

[root@localhost hadoop-3.1.3]# bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.3.jar grep input output 'dfs[a-z.]+'

7.检查运行结果

可以把文件从hdfs上复制出来

[root@localhost hadoop-3.1.3]# bin/hdfs dfs -get output output
[root@localhost hadoop-3.1.3]# cat output/*
1	dfsadmin
1	dfs.replication

也可以直接在hdfs上查看

[root@localhost hadoop-3.1.3]# bin/hdfs dfs -cat output/*
2020-01-02 20:14:40,495 INFO sasl.SaslDataTransferClient: SASL encryption trust check: localHostTrusted = false, remoteHostTrusted = false
1	dfsadmin
1	dfs.replication

 

8.结束后台进程

###需要先指定一下root用户,其他用户不用
[root@localhost hadoop-3.1.3]# vim sbin/stop-dfs.sh 
HDFS_NAMENODE_USER=root
HDFS_DATANODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root

[root@localhost hadoop-3.1.3]# sbin/stop-dfs.sh
Stopping namenodes on [localhost]

单机版使用yarn

伪分布式运行yarn,在单机增加ResourceManager和NodeManager守护进程

 

1.修改配置文件

[root@localhost hadoop-3.1.3]# vim etc/hadoop/mapred-site.xml
<configuration>
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
    <property>
        <name>mapreduce.application.classpath</name>
        <value>$HADOOP_MAPRED_HOME/share/hadoop/mapreduce/*:$HADOOP_MAPRED_HOME/share/hadoop/mapreduce/lib/*</value>
    </property>
</configuration>
[root@localhost hadoop-3.1.3]# vim 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,</value>
    </property>
</configuration>

2.启动ResourceManager和NodeManager守护进程

##如果是root用户,仍然需要先配置一下
[root@localhost hadoop-3.1.3]# vim sbin/start-yarn.sh
YARN_RESOURCEMANAGER_USER=root
YARN_NODEMANAGER_USER=root

## 启动 ,保证NameNode和DataNode先启动了
[root@localhost hadoop-3.1.3]# sbin/start-dfs.sh 
[root@localhost hadoop-3.1.3]# sbin/start-yarn.sh

3.浏览器访问web界面

resourceManager统计 http://192.168.3.101:8088/

 

4.执行MapReduce任务

 

注意输出的output2 是为了避免冲突,

[root@localhost hadoop-3.1.3]# bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.3.jar grep input output2 'dfs[a-z.]+'

 

5.结束进程

##结束之前先配置root用户
[root@localhost hadoop-3.1.3]# vim sbin/stop-yarn.sh
YARN_RESOURCEMANAGER_USER=root
YARN_NODEMANAGER_USER=root

## 结束
[root@localhost hadoop-3.1.3]# sbin/stop-yarn.sh
[root@localhost hadoop-3.1.3]# sbin/stop-dfs.sh 

 

 

总结


### 后台进程操作,启动,关闭节点
sbin/start-dfs.sh 
sbin/start-yarn.sh
sbin/stop-dfs.sh 
sbin/stop-yarn.sh
### hdfs文件操作,格式化,上传下载
bin/hdfs namenode -format
bin/hdfs dfs
### 执行任务 jar文件
bin/hadoop jar

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值