Hadoop的基本运用

您所在的位置:网站首页 hadoop大数据基础及应用 Hadoop的基本运用

Hadoop的基本运用

2023-08-19 00:40| 来源: 网络整理| 查看: 265

Hadoop的部署见前文《初识大数据之Hadoop部署》

https://blog.csdn.net/weixin_43800781/article/details/86589182

 HDFS的基本使用

这里的  "/"(根)是指 hfds://mynn01:9000/,见配置文件core-site.doc 默认为集群系统的"/"

[root@mynn01 hadoop]# ./bin/hadoop fs //查看可以支持那些那些命令,多数命令和shell一样 Usage: hadoop fs [generic options] [-appendToFile ... ] [-cat [-ignoreCrc] ...] [-checksum ...] [-chgrp [-R] GROUP PATH...] [-chmod [-R] PATH...] [-chown [-R] [OWNER][:[GROUP]] PATH...] [-copyFromLocal [-f] [-p] [-l] ... ] [-copyToLocal [-p] [-ignoreCrc] [-crc] ... ] ... 查看文件 ./bin/hadoop fs -ls /对应shell   ls   /创建目录./bin/hadoop fs -mkdir /abc对应shell  mkdir  /abc删除目录

 ./bin/hadoop fs -rmdir /abc

对应shell  rmdir   /abc创建文件./bin/hadoop fs -touchz  /file1对应shell  touch  /file1查看文件./bin/hadoop fs -cat  /file1对应shell  cat    /file1删除文件./bin/hadoop fs -rm  /file1对应shell  rm    /file1上传文件./bin/hadoop fs -put localfine  /remotefine 下载文件./bin/hadoop fs  -get  /remotefine  [root@mynn01 hadoop]# ./bin/hadoop fs -mkdir /abc [root@mynn01 hadoop]# ./bin/hadoop fs -ls / Found 1 items drwxr-xr-x - root supergroup 0 2019-01-23 10:38 /abc [root@mynn01 hadoop]# ./bin/hadoop fs -rmdir /abc [root@mynn01 hadoop]# ./bin/hadoop fs -ls /

在192.168.1.10:50070上点击Utilities---Browse the file system   可以看到创建的目录

[root@mynn01 hadoop]# ./bin/hadoop fs -touchz /file1 [root@mynn01 hadoop]# ./bin/hadoop fs -ls / Found 1 items -rw-r--r-- 2 root supergroup 0 2019-01-23 10:51 /file1 [root@mynn01 hadoop]# ./bin/hadoop fs -mkdir /aaa [root@mynn01 hadoop]# ./bin/hadoop fs -put *.txt /aaa [root@mynn01 hadoop]# ./bin/hadoop fs -ls /aaa Found 3 items -rw-r--r-- 2 root supergroup 86424 2019-01-23 11:29 /aaa/LICENSE.txt -rw-r--r-- 2 root supergroup 14978 2019-01-23 11:29 /aaa/NOTICE.txt -rw-r--r-- 2 root supergroup 1366 2019-01-23 11:29 /aaa/README.txt

节点管理

增加节点

环境同之前配置节点一样 192.168.1.14  node4,修改所有主机/etc/hosts,添加node4的解析

[root@node4 ~]# cat /etc/hosts 192.168.1.10 mynn01 192.168.1.11 node1 192.168.1.12 node2 192.168.1.13 node3 192.168.1.14 node4

设置ssh免密登录

[root@mynn01 .ssh]# ssh-copy-id node4

安装java运行环境

[root@node4 ~]# yum -y install java-1.8.0-openjdk-devel

修改NameNode的slaves文件,增加该节点

[root@mynn01 ~]# cat /usr/local/hadoop/etc/hadoop/slaves node1 node2 node3 node4

拷贝NameNode的/usr/local/hadoop到本机

[root@node4 ~]# yum -y install rsync [root@mynn01 hadoop]# rsync -aSH --delete /usr/local/hadoop/ 192.168.1.14:/usr/local/hadoop/ [root@node4 ~]# cd /usr/local/hadoop/ [root@node4 hadoop]# ls bin in lib LICENSE.txt NOTICE.txt README.txt share etc include libexec logs out sbin [root@node4 hadoop]# rm -rf logs [root@node4 hadoop]# mkdir /var/hadoop [root@mynn01 hadoop]# for i in 192.168.1.{11,12,13} > do > scp etc/hadoop/slaves $i:/usr/local/hadoop/etc/hadoop/slaves > done slaves 100% 24 1.2KB/s 00:00 slaves 100% 24 2.5KB/s 00:00 slaves 100% 24 37.6KB/s 00:00

在本节点启动DataNode

[root@node4 hadoop]# ./sbin/hadoop-daemon.sh start datanode [root@node4 hadoop]# jps 10480 Jps 10406 DataNode

设置同步带宽

[root@node4 hadoop]# ./bin/hdfs dfsadmin -setBalancerBandwidth 60000000 Balancer bandwidth is set to 60000000 [root@node4 hadoop]# ./sbin/start-balancer.sh starting balancer, logging to /usr/local/hadoop/logs/hadoop-root-balancer-node4.out Time Stamp Iteration# Bytes Already Moved Bytes Left To Move Bytes Being Moved

查看集群状态

[root@mynn01 hadoop]# ./bin/hdfs dfsadmin -report ... ------------------------------------------------- Live datanodes (4):

上传数据

[root@mynn01 hadoop]# ./bin/hadoop fs -put /root/rhel-server-7.4-x86_64-dvd.iso /aaa [root@mynn01 hadoop]# ./bin/hadoop fs -ls /aaa Found 4 items -rw-r--r-- 2 root supergroup 86424 2019-01-23 11:29 /aaa/LICENSE.txt -rw-r--r-- 2 root supergroup 14978 2019-01-23 11:29 /aaa/NOTICE.txt -rw-r--r-- 2 root supergroup 1366 2019-01-23 11:29 /aaa/README.txt -rw-r--r-- 2 root supergroup 4059037696 2019-01-23 14:40 /aaa/rhel-server-7.4-x86_64-dvd.iso [root@mynn01 hadoop]# ./bin/hdfs dfsadmin -report Hostname: node1 DFS Used: 1520803924 (1.42 GB) Hostname: node2 DFS Used: 1893822464 (1.76 GB) Hostname: node4 DFS Used: 2434879488 (2.27 GB) Hostname: node3 DFS Used: 2332422270 (2.17 GB)

修复节点

与增加节点基本一致(注:新节点的ip和主机名要和损坏节点的一致)

启动节点  ./sbin/hadoop-daemon.sh start datanode

数据可以自动恢复

删除节点

从slaves中删除node4

[root@mynn01 hadoop]# cat etc/hadoop/slaves node1 node2 node3

修改配置文件hdfs-site.xml

[root@mynn01 hadoop]# vim etc/hadoop/hdfs-site.xml ... dfs.hosts.exclude /usr/local/hadoop/etc/hadoop/exclude ...

添加文件,写入删除的节点名

[root@mynn01 hadoop]# cat etc/hadoop/exclude node4

数据迁移(仅有当状态变成Decommissioned才能down机下线)

[root@mynn01 hadoop]# ./bin/hdfs dfsadmin -refreshNodes Refresh nodes successful [root@mynn01 hadoop]# ./bin/hdfs dfsadmin -report //查看状态 状态有三种 Normal 正常状态; Decommissioned in Program 数据在迁移; Decommissioned 数据迁移完成 ... Decommissioning datanodes (1): Name: 192.168.1.14:50010 (node4) Hostname: node4 Decommission Status : Decommission in progress //目前正在迁移中 Configured Capacity: 107362627584 (99.99 GB) DFS Used: 2434879488 (2.27 GB) [root@mynn01 hadoop]# ./bin/hdfs dfsadmin -report //需要等一会才会完成 Name: 192.168.1.14:50010 (node4) Hostname: node4 Decommission Status : Decommissioned Hostname: node3 DFS Used: 3279392768 (3.05 GB) Hostname: node2 DFS Used: 2434904064 (2.27 GB) Hostname: node1 DFS Used: 2467749888 (2.30 GB) 注:目前3个节点的数据和等于之前四个节点的数据和

停止datanode

[root@node4 hadoop]# ./sbin/hadoop-daemon.sh stop datanode stopping datanode

yarn节点管理

增加节点

[root@node4 hadoop]# ./sbin/yarn-daemon.sh start nodemanager

删除节点

[root@node4 hadoop]# ./sbin/yarn-daemon.sh stop nodemanager //停止nodemanager

查看节点(ResourceManager)

[root@node4 hadoop]# ./bin/yarn node -list //yarn 查看节点状态,还是有node4节点,要过一段时间才会消失

恢复初始状态

/usr/local/hadoop/sbin/stop-all.sh

所有节点 rm -rf  /var/hadoop/*

同步配置文件 mynn01 给 node1,2,3

格式化  ./bin/hdfs/  namenode  -format(如果程序没问题,不用格式化)

启动   ./sbin/start-dfs.sh

[root@mynn01 hadoop]# ./sbin/stop-all.sh [root@mynn01 hadoop]# for i in 192.168.1.{11,12,13} > do > rsync -aSH --delete etc/hadoop/slaves $i:/usr/local/hadoop/etc/hadoop/slaves > done [root@mynn01 hadoop]# ./sbin/start-dfs.sh ... ------------------------------------------------- Live datanodes (3):

NFS网关

数据同步   一般小型网络  流量在10G以下,  解决方案 rsync+inotify  keepalived

                   中型网络          流量在100G左右,解决方案 DRBD+heartbeat+NFS 

                   大型网络         解决档案为HDFS+NFS

用途:用户可以通过操作系统兼容的本地NFSv3客户端来浏览HDFS文件系统

            用户可以从HDFS文件系统下载文档到本地文件系统

            用户可以通过挂载点直接流化数据,支持文件附加,但是不支持随机写

            NFS网关支持NFSv3和允许HDFS作为客户端文件系统的一部分被挂载

特性:HDFS超级用户是与NameNode进程本身具有相同标识的用户,超级用户可执行任何操作,因权限检查永远不会认为超级用户失败

注意事项:在非安全模式下,运行网关进程的用户是代理用户

                    在安全模式下,Kerberos keytab中的用户是代理用户

调试:在配置NFS网关过程中,如果出现错误,可以查看相关日志

日志排错:log4j.logger.org.apache.hadoop.hdfs.nfs=DEBUG

                    log4j.logger.org.apache.hadoop.oncrpc=DEBUG

部署NFS网关

环境准备:前面的Hadoop集群

                  192.168.1.14  nfsgw                      192.168.1.20 localhost

配置nfsgw mynn01 /etc/hosts

[root@nfsgw ~]# cat /etc/hosts 192.168.1.10 mynn01 192.168.1.11 node1 192.168.1.12 node2 192.168.1.13 node3 192.168.1.14 nfsgw

创建代理用户(在nfsgw和mynn01上) 注:代理用户的UID,GID,用户名必须完全相同

[root@mynn01 hadoop]# groupadd -g 888 nfsuser[root@mynn01 hadoop]# useradd -u 888 -g 888 -r nfsuser [root@mynn01 hadoop]# id nfsuser uid=888(nfsuser) gid=888(nfsuser) 组=888(nfsuser)

HDFS集群授权,配置core-site.xml

[root@mynn01 hadoop]# ./sbin/stop-all.sh [root@mynn01 hadoop]# vim etc/hadoop/core-site.xml ... hadoop.proxyuser.nfsuser.groups //在主机真实运行的用户,groups挂载点使用的组 * hadoop.proxyuser.nfsuser.hosts //hots挂载点主机地址 *

同步配置到所有主机

root@mynn01 hadoop]# for i in 192.168.1.{11,12,13}; do rsync -aSH --delete /usr/local/hadoop/etc/hadoop/core-site.xml $i:/usr/local/hadoop/etc/hadoop/core-site.xml; done root@mynn01 hadoop]# for i in 192.168.1.{11,12,13}; do scp /etc/hosts $i:/etc/hosts; done

启动服务

[root@mynn01 hadoop]# ./sbin/start-dfs.sh [root@mynn01 hadoop]# jps 7524 SecondaryNameNode 7639 Jps 7327 NameNode [root@mynn01 hadoop]# ./bin/hdfs dfsadmin -report ... ------------------------------------------------- Live datanodes (3):

NFSGW配置

安装 java-1.8.0-openjdk-devel

[root@nfsgw ~]# yum -y install java-1.8.0-openjdk-devel

拷贝 mynn01:/usr/local/hadoop 到本机

[root@mynn01 hadoop]# scp -r /usr/local/hadoop [email protected]:/usr/local/hadoop

修改配置文件hdfs-site.xml 并创建nfstmp

[root@nfsgw hadoop]# vim etc/hadoop/hdfs-site.xml ... nfs.exports.allowed.hosts * rw nfs.dump.dir //更新文件转储目录参数。这个目录常用于临时存储无序的写操作。 /var/nfstmp [root@nfsgw hadoop]# mkdir /var/nfstmp

赋权

[root@nfsgw hadoop]# chown nfsuser:nfsuser /var/nfstmp/ [root@nfsgw hadoop]# setfacl -m user:nfsuser:rwx /usr/local/hadoop/logs //为代理用户赋予读写执行的权限

启动服务

[root@nfsgw hadoop]# rpm -qa |grep -P "rpcbind|nfs" //检查是否有这两个软件,如有,需卸载 [root@nfsgw hadoop]# ./sbin/hadoop-daemon.sh --script ./bin/hdfs start portmap //先启动portmap 用户必须是root [root@nfsgw ~]# su - nfsuser //启动nfs3需使用core-site设置的代理用户(如果portmap重启,则nfs3也需要重启) -bash-4.2$ cd /usr/local/hadoop/ [root@nfsgw hadoop]# ./sbin/hadoop-daemon.sh --script ./bin/hdfs start nfs3 //再用代理用户启动nfs3 (如果之前误操作了用root启动的 根据提示 删除/tmp/.hdfs-nfs/) starting nfs3, logging to /usr/local/hadoop/logs/hadoop-nfsuser-nfs3-nfsgw.out -bash-4.2$ jps 11620 Nfs3 11673 Jps -bash-4.2$ exit logout [root@nfsgw tmp]# jps 11344 Portmap 11620 Nfs3 11685 Jps

验证服务(在客户端192.168.1.20上验证)

挂载:目前nfs支持v3版本,仅使用TCP协议,不支持NLM(nolock),禁用access time时间更新(noatime)

            建议使用选项sync,它可以最小化避免重排序写入造成不可预测的吞吐量,未指定同步可能会导致上传大文件时出现不可靠行为

[root@localhost ~]# yum -y install nfs-utils //客户端需要安装nfs-utils [root@localhost ~]# mount -t nfs -o vers=3,proto=tcp,nolock,noatime,sync,noacl 192.168.1.14:/ /mnt/ [root@localhost ~]# cd /mnt/ [root@localhost mnt]# ls aaa system [root@localhost mnt]# touch a [root@localhost mnt]# ls a aaa system [root@localhost mnt]# rm -rf a [root@localhost mnt]# ls

可以设置自动挂载

[root@localhost ~]# umount /mnt [root@localhost mnt]# vim /etc/fstab 192.168.1.14:/ /mnt/ nfs vers=3,proto=tcp,nolock,noatime,sync,noacl,_netdev 0 0 [root@localhost ~]# mount -a [root@localhost ~]# df -H 文件系统 容量 已用 可用 已用% 挂载点 ... 192.168.1.14:/ 323G 14G 309G 5% /mnt [root@localhost ~]# rpcinfo -p 192.168.1.14 program vers proto port service 100005 3 udp 4242 mountd 100005 1 tcp 4242 mountd 100000 2 udp 111 portmapper 100000 2 tcp 111 portmapper 100005 3 tcp 4242 mountd 100005 2 tcp 4242 mountd 100003 3 tcp 2049 nfs 100005 2 udp 4242 mountd 100005 1 udp 4242 mountd

 



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3