文章目录
Hadoop
Hadoop是什么
Hadoop是一个分布式系统基础架构。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力高速运算和存储
Hadoop核心构成
- 分布式文件系统HDFS
- 资源管理系统YARN
- 分布式计算框架MapReduce
Hadoop生态系统图
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fRAt1WAV-1599788863018)(C:\Users\mi\AppData\Roaming\Typora\typora-user-images\image-20200907121119637.png)]
下载hadoop
- 下载cdh 网址:http://archive.cloudera.com/cdh5/cdh/5/
- [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FtR5hyQ3-1599788863020)(D:\文件\typora-user-images\image-20200907121920814.png)]
- hadoop依赖于jdk1.7
- 所以需要下载jdk1.7
HDFS架构图
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JkhjaNhR-1599788863021)(D:\文件\typora-user-images\image-20200907164655935.png)]
HDFS 核心组件
HDFS环境搭建
SSH配置
1、创建haoop用户
#创建用户
[root@localhost ~]# useradd hadoop183
#修改密码
[root@localhost ~]# passwd hadoop183
2、给刚创建的用户进行授权 或者使用visudo
/etc/sudoers
[root@192 ~]# chmod 777 /etc/sudoers
[root@192 ~]# vim /etc/sudoers
修改/etc/sudoers 文件,找到root一行,在root下面添加一行,如下所示:
root ALL=(ALL) ALL
# hadoop ALL=(ALL) ALL
hadoop ALL=(ALL) NOPASSWD:ALL
修改完毕后,hadoop,然后用sudo su - ,即可获得root权限。
记得撤销授权,否则会报错。
[root@192 ~]# chmod 640 /etc/sudoers
修改完后重启 reboot
3、ssh免密登录
-
切换到hadoop183用户生成密钥
-
-
把hadoop183用户的公钥发送给root用户
注意:哪个用户希望免密登录别的用户,就需要把自己的公钥通过ssh发送给对方
- ssh-copy-id -i ./.ssh/id_rsa.pub root@hadoop000
-
- 这样的话hadoop183用户就可以免密登录root用户了
- [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zzuKgQLq-1599788863023)(D:\文件\typora-user-images\image-20200907221617605.png)]
-
Linux机器参数配置
-
Linux网卡配置 vim /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE=Ethernet #网络类型 PROXY_METHOD=none BROWSER_ONLY=no BOOTPROTO=static #IP获取方式 dhcp自动获取 static静态IP 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=434b9ae0-3870-4f91-98b3-bf8102b38b7c DEVICE=ens33 #驱动名称 ONBOOT=yes #设置开机启动 DNS1=114.114.114.114 #域名解析器 IPADDR=192.168.1.112 #设置静态IP地址 NETMASK=255.255.255.0 #子网掩码 GATEWAY=192.168.1.10 #网关
-
设置IP和hostname的映射关系 vim /etc/hosts
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Xv9WeINj-1599788863025)(D:\文件\typora-user-images\image-20200907221054118.png)]
HDFS配置文件参数配置
-
解压hadoop
[hadoop@hadoop000 software]$ tar zxvf hadoop-2.6.0-cdh5.7.0.tar.gz -C ../app
- 进入解压后的hadoop目录
- cd …/app/hadoop-2.6.0-cdh5.7.0
- 删除etc/hadoop的以.cmd结尾的文件
- cd etc/hadoop
- rm -rf *.cmd
- 进入解压后的hadoop目录
-
配置文件etc/hadoop/hadoop-env.sh
-
vim hadoop-env.sh
-
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zucnnW9a-1599788863026)(D:\文件\typora-user-images\image-20200907231228724.png)]
-
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xk3fvHnr-1599788863026)(D:\文件\typora-user-images\image-20200907230915793.png)]
-
配置文件etc/hadoop/core-site.xml
-
vim core-site.xml
-
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pyEGjpIs-1599788863027)(D:\文件\typora-user-images\image-20200907231810195.png)]
-
<configuration> <property> <name>fs.defaultFS</name> <value>hdfs://localhost:9000</value> </property> <property> <name>hadoop.tmp.dir</name> <value>/home/hadoop/app/tmp</value> </property> </configuration>
-
-
-
配置文件etc/hadoop/hdfs-site.xml
-
vim hdfs-site.xml
-
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Y2Sx0OJd-1599788863028)(D:\文件\typora-user-images\image-20200907231920757.png)]
-
<configuration> <property> <name>dfs.replication</name> <value>1</value> </property> </configuration>
-
-
-
将hadoop的目录配置到环境变量中
-
vim ~/.bash_profile
-
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zE6PZddY-1599788863029)(D:\文件\typora-user-images\image-20200907232533249.png)]
-
source ~/.bash_profile
-
-
测试
- echo $HAOOP_HOME
HDFS格式化及启停
HDFS简单测试
安装JDK
#切换到root用户
su root
#先卸载之前的jdk
rpm -e --nodeps $(rpm -qa| grep jdk)
#切换到hadoop183用户
ssh hadoop183@hadoop000
#创建文件夹
mkdir software app data source
#切换到software文件夹
cd software
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KOoy3aBt-1599788863029)(D:\文件\typora-user-images\image-20200907223449824.png)]
-
使用xftp进行文件上传<传入JDK与hadoop包>
-
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7CRuZO4K-1599788863029)(D:\文件\typora-user-images\image-20200907223902204.png)]
-
解压jdk
-
sudo tar -zxvf jdk-7u80-linux-x64.tar.gz -C /usr/local
-
配置jdk环境变量
-
vim ~/.bash_profile
-
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tJL1LpUT-1599788863030)(D:\文件\typora-user-images\image-20200907225006197.png)]
-
PATH= P A T H : PATH: PATH:HOME/.local/bin: H O M E / b i n J A V A H O M E = / u s r / l o c a l / j d k 1.7. 0 8 0 e x p o r t P A T H = HOME/bin JAVA_HOME=/usr/local/jdk1.7.0_80 export PATH= HOME/binJAVAHOME=/usr/local/jdk1.7.080exportPATH=PATH:$JAVA_HOME/bin
-
-
-
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0l0E4yzh-1599788863030)(D:\文件\typora-user-images\image-20200907225059302.png)]
-
至此jdk安装成功
启动
cp mapred-site.xml.template mapred-site.xml
vim mapred-site.xml
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NJfA4Ird-1599788863032)(C:\Users\13493\AppData\Roaming\Typora\typora-user-images\image-20200908111944843.png)]
bin/hdfs namenode -format 格式化
[hadoop183@hadoop001 sbin]$ start-dfs.sh 启动 stop-dfs.sh停止
创建目录:hadoop fs -mkdir /data
上传本地文件到hdfs:hadoop fs -put /home/hadoop183/data/hello_dfs.txt /data
下载 hadoop fs -get /data/hello_defs.txt /home/hadoop/data/hello_defs_get.txt
查看hdfs的文件列表:hadoop fs -ls /data
下载tree:sudo yum install -y tree
读取hdfs文本信息:
(1) hadoop fs -cat /data/hello_dfs.txt
(2) hadoop fs -text /data/hello_dfs.txt
命令
[hadoop183@hadoop001 bin]$ hadoop fs
Usage: hadoop fs [generic options]
[-appendToFile … ]
[-cat [-ignoreCrc] …]
[-checksum …]
[-chgrp [-R] GROUP PATH…]
[-chmod [-R] <MODE[,MODE]… | OCTALMODE> PATH…]
[-chown [-R] [OWNER][:[GROUP]] PATH…]
[-copyFromLocal [-f] [-p] [-l] … ]
[-copyToLocal [-p] [-ignoreCrc] [-crc] … ]
[-count [-q] [-h] [-v]
[-cp [-f] [-p | -p[topax]] … ]
[-createSnapshot []]
[-deleteSnapshot ]
[-df [-h] [
[-du [-s] [-h]
[-expunge]
[-find
[-get [-p] [-ignoreCrc] [-crc] … ]
[-getfacl [-R]
[-getfattr [-R] {-n name | -d} [-e en]
[-getmerge [-nl] ]
[-help [cmd …]]
[-ls [-d] [-h] [-R] [
[-mkdir [-p]
[-moveFromLocal … ]
[-moveToLocal ]
[-mv … ]
[-put [-f] [-p] [-l] … ]
[-renameSnapshot ]
[-rm [-f] [-r|-R] [-skipTrash] …]
[-rmdir [–ignore-fail-on-non-empty]
[-setfacl [-R] [{-b|-k} {-m|-x <acl_spec>}
[-setfattr {-n name [-v value] | -x name}
[-setrep [-R] [-w]
[-stat [format]
[-tail [-f] ]
[-test -[defsz]
[-text [-ignoreCrc] …]
[-touchz
–set <acl_spec>
[-setfattr {-n name [-v value] | -x name}
[-setrep [-R] [-w]
[-stat [format]
[-tail [-f] ]
[-test -[defsz]
[-text [-ignoreCrc] …]
[-touchz
[-usage [cmd …]]