文章目录
Hadoop
Hadoop是什么
Hadoop是一个分布式系统基础架构。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力高速运算和存储
Hadoop核心构成
- 分布式文件系统HDFS
- 资源管理系统YARN
- 分布式计算框架MapReduce
Hadoop生态系统图
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-RMotBzh1-1599788912535)(C:\Users\mi\AppData\Roaming\Typora\typora-user-images\image-20200907121119637.png)]
下载hadoop
- 下载cdh 网址:http://archive.cloudera.com/cdh5/cdh/5/
- [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OfQpNF98-1599788912536)(C:\Users\mi\AppData\Roaming\Typora\typora-user-images\image-20200907121920814.png)]
- hadoop依赖于jdk1.7
- 所以需要下载jdk1.7
HDFS架构图
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vDdBvIo6-1599788912537)(C:\Users\mi\AppData\Roaming\Typora\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-7l7prOY4-1599788912539)(C:\Users\mi\AppData\Roaming\Typora\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-tJSNoqAY-1599788912541)(C:\Users\mi\AppData\Roaming\Typora\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-dRa8jo56-1599788912543)(C:\Users\mi\AppData\Roaming\Typora\typora-user-images\image-20200907231228724.png)]
-
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-l3ZmW4KO-1599788912543)(C:\Users\mi\AppData\Roaming\Typora\typora-user-images\image-20200907230915793.png)]
-
配置文件etc/hadoop/core-site.xml
-
vim core-site.xml
-
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7BKZ8Z8y-1599788912544)(C:\Users\mi\AppData\Roaming\Typora\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-0oA9Wwab-1599788912545)(C:\Users\mi\AppData\Roaming\Typora\typora-user-images\image-20200907231920757.png)]
-
<configuration> <property> <name>dfs.replication</name> <value>1</value> </property> </configuration>
-
-
-
将hadoop的目录配置到环境变量中
-
vim ~/.bash_profile
-
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jKPAwP7U-1599788912545)(C:\Users\mi\AppData\Roaming\Typora\typora-user-images\image-20200907232533249.png)]
-
source ~/.bash_profile
-
-
测试
- echo $HADOOP_HOME
配置YARN Map Reduce
-
mapred-site.xml配置文件
-
进入目录 cd home/hadoop183/app/hadoop-2.6.0-cdh5.7.0/etc/hadoop
-
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-j18vkfR3-1599788912546)(C:\Users\mi\AppData\Roaming\Typora\typora-user-images\image-20200908182354799.png)]
-
将mapred-site.xml.template复制为mapred-site.xml
- cp mapred-site.xml.template mapred-site.xml
-
修改
-
vim mapred-site.xml
-
-
<configuration> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> </configuration>
-
-
-
yarn-site.xml配置文件
-
修改
-
vim yarn-site.xml
-
-
<configuration> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> </configuration>
-
-
HDFS格式化及启停
格式化文件系统
- 查看hadoop版本
-
- 修改core-site.xml文件
- vim core-site.xml
-
- vim core-site.xml
- 进行格式化
- 切换到hadoop安装目录
- cd /home/hadoop183/app/hadoop-2.6.0-cdh5.7.0
- 运行格式化命令
- bin/hdfs namenode -format
- [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9Abqgvnu-1599788912546)(C:\Users\mi\AppData\Roaming\Typora\typora-user-images\image-20200908204243012.png)]
- app目录中显示出tmp目录代表格式化成功
- 切换到hadoop安装目录
- 安装tree软件
- yum install -y tree
- 使用tree查看tmp的目录结构 tree …/tmp
-
- yum install -y tree
启动
- [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UfL1SaCk-1599788912546)(C:\Users\mi\AppData\Roaming\Typora\typora-user-images\image-20200908210133933.png)]
- 启动成功
- [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wagiANOk-1599788912547)(C:\Users\mi\AppData\Roaming\Typora\typora-user-images\image-20200908210225601.png)]
- 访问http://192.168.1.112:50070出现如下页面代表启动成功
-
- 启动成功
HDFS简单测试
shell指令
#创建一个data目录
[hadoop183@hadoop000 bin]$ hadoop fs -mkdir /data
#创建迭代目录
[hadoop183@hadoop000 bin]$ hadoop fs -mkdir -p /data/a/b/c
#上传本地文件到hdfs
[hadoop183@hadoop000 bin]$ hadoop fs -put /home/hadoop183/data/hello_dfs.txt /data
#上传本地文件到hdfs
[hadoop183@hadoop000 bin]$ hadoop fs -copyFromLocal /home/hadoop183/data/hello_dfs_get.txt /data
#查看目录
[hadoop183@hadoop000 bin]$ hadoop fs -ls /data
#查看文本内容
[hadoop183@hadoop000 bin]$ hadoop fs -cat /data/hello_dfs.txt
#或
[hadoop183@hadoop000 bin]$ hadoop fs -text /data/hello_dfs.txt
#查看hadoop fs的帮助信息
hadoop fs
#从hdfs下载文件到本地
[hadoop183@hadoop000 bin]$ hadoop fs -get /data/hello_dfs.txt /home/hadoop183/data/hello_dfs_get.txt
#从hdfs下载文件到本地
[hadoop183@hadoop000 bin]$ hadoop fs -copyToLocal /data/hello_dfs_get.txt /home/hadoop183/data/copyToLocal_hello.txt
#删除
[hadoop183@hadoop000 bin]$ hadoop fs -rm -r /data
#启动文件系统
[hadoop183@hadoop000 hadoop-2.6.0-cdh5.7.0]$ start-dfs.sh
#停止文件系统
[hadoop183@hadoop000 hadoop-2.6.0-cdh5.7.0]$ stop-dfs.sh
#启动全部服务 包括dfs文件系统和yarn 相当于执行了start-dfs.sh和start-yarn.sh
[hadoop183@hadoop000 ~]$ start-all.sh
start-dfs.sh:
62073 NameNode
62393 SecondaryNameNode
62184 DataNode
start-yarn.sh:
62639 NodeManager
62542 ResourceManager
Java API操作
MapReduce
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MMlc451A-1599788912548)(C:\Users\mi\AppData\Roaming\Typora\typora-user-images\image-20200909174659192.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-luItypIx-1599788912548)(C:\Users\mi\AppData\Roaming\Typora\typora-user-images\image-20200910110231483.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7YNguLBw-1599788912548)(C:\Users\mi\AppData\Roaming\Typora\typora-user-images\image-20200910111256005.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-57kYUIft-1599788912550)(C:\Users\mi\AppData\Roaming\Typora\typora-user-images\image-20200910114618714.png)]
http://hadoop000:8088/ 可以查看集群运行时的详细信息
[hadoop183@hadoop000 ~]$ hadoop jar data/lib/wc.jar cn.kgc.hadoop.WordCount /data/wordcount.txt /output
分布式列式数据库HBase
HBase概述
安装Hbase
-
上传压缩包并解压
- [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2tjBfzYH-1599788912550)(C:\Users\mi\AppData\Roaming\Typora\typora-user-images\image-20200910212632671.png)]
- 解压
- tar -zxvf hbase-1.2.0-cdh5.7.0.tar.gz -C …/app/
- [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BBoD5l9J-1599788912550)(C:\Users\mi\AppData\Roaming\Typora\typora-user-images\image-20200910212934526.png)]
-
修改配置文件 hbase-env.sh
- [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HXqxG9aa-1599788912551)(C:\Users\mi\AppData\Roaming\Typora\typora-user-images\image-20200910213252937.png)]
- [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-eJTvm0AX-1599788912551)(C:\Users\mi\AppData\Roaming\Typora\typora-user-images\image-20200910213323145.png)]
- [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-uVMuK4ig-1599788912552)(C:\Users\mi\AppData\Roaming\Typora\typora-user-images\image-20200910213346158.png)]
-
修改配置文件hbase-site.xml
-
-
配置regionservers
- vim regionservers
-
-
配置环境变量
-
vim ~/.bash_profile
-
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Z1iZjBq8-1599788912552)(C:\Users\mi\AppData\Roaming\Typora\typora-user-images\image-20200910214026513.png)]
-
-
启动HBase
-
启动hadoop
start-all.sh
-
启动zookeeper
zkServer.sh start
-
启动Hbase
start-hbase.sh
-
-
测试
- 访问http://192.168.1.112:60030/
- 显示以下页面代表启动成功
-
- 或访问hadoop000:50070[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-V05VN2HE-1599788912552)(C:\Users\mi\AppData\Roaming\Typora\typora-user-images\image-20200910220454432.png)]
- [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-93lkg1K2-1599788912553)(C:\Users\mi\AppData\Roaming\Typora\typora-user-images\image-20200910220503499.png)]
安装Zookeeper
-
上传并解压
-
- 将zookeeper压缩包解压到app目录下 tar -zxvf zookeeper-3.4.5-cdh5.7.0.tar.gz -C …/app/
- [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FW288Ugh-1599788912553)(C:\Users\mi\AppData\Roaming\Typora\typora-user-images\image-20200910210844759.png)]
- 为了方便起见我们可以将zookeeper下面bin目录下面以cmd结尾的文件删除
-
-
进行配置
- 创建目录
-
mkdir /home/hadoop/app/tmp/zookeeper
-
在conf目录下创建配置文件zoo.cfg
-
cp zoo_sample.cfg zoo.cfg
-
进行修改 vim zoo.cfg
-
将配置文件修改为以下信息
#zoo.cfg配置文件解释 #Zookeeper使用的基本时间单位(毫秒)。它用于做心跳,并且最小会话超时是tickTime的两倍 tickTime=2000 #初始化连接数 initLimit=10 #同时连接数 syncLimit=5 # 存储内存数据库快照的位置 dataDir=/home/hadoop/app/tmp/zookeeper # 用于监听客户端连接的端口 clientPort=2181
-
-
配置环境变量
[hadoop@hadoop000 conf]$ vim ~/.bash_profile
-
启动ZK
- [hadoop@hadoop000 conf]$ zkServer.sh start
-
停止ZK
- [hadoop@hadoop000 conf]$ zkServer.sh stop
安装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-3NsjZyzD-1599788912554)(C:\Users\mi\AppData\Roaming\Typora\typora-user-images\image-20200907223449824.png)]
-
使用xftp进行文件上传<传入JDK与hadoop包>
-
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-foACRaXW-1599788912554)(C:\Users\mi\AppData\Roaming\Typora\typora-user-images\image-20200907223902204.png)]
-
解压jdk
-
sudo tar -zxvf jdk-7u80-linux-x64.tar.gz -C /usr/local
-
配置jdk环境变量
-
vim ~/.bash_profile
-
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-RsCLVoPs-1599788912555)(C:\Users\mi\AppData\Roaming\Typora\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-GdSOtYXB-1599788912556)(C:\Users\mi\AppData\Roaming\Typora\typora-user-images\image-20200907225059302.png)]
-
至此jdk安装成功
zD-1599788912554)]
-
使用xftp进行文件上传<传入JDK与hadoop包>
-
[外链图片转存中…(img-foACRaXW-1599788912554)]
-
解压jdk
-
sudo tar -zxvf jdk-7u80-linux-x64.tar.gz -C /usr/local
-
配置jdk环境变量
-
vim ~/.bash_profile
-
[外链图片转存中…(img-RsCLVoPs-1599788912555)]
-
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-GdSOtYXB-1599788912556)]
-
至此jdk安装成功