多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
## 概述 ![](https://img.kancloud.cn/c6/25/c6258d658fdd2f2e7ed0c8f49b7e9667_543x253.png) ![](https://img.kancloud.cn/4f/be/4fbeedf9aa3a2d96466eb1e3370c6458_1058x311.png) > 移动计算比移动数据更划算。 ## HDFS的架构 1. NameNode(master) and DataNodes(slave) 2. master/slave的架构 3. NN: > the file system namespace > /home/hadoop/software > /app > regulates access to files by clients 4. DN:storage 5. HDFS exposes a file system namespace and allows user data to be stored in files. 6. a file is split into one or more blocks > blocksize: 128M > 150M拆成2个block 7. blocks are stored in a set of DataNodes 为什么? 容错!!! 8. NameNode executes file system namespace operations:CRUD 9. determines the mapping of blocks to DataNodes > a.txt 150M blocksize=128M > a.txt 拆分成2个block 一个是block1:128M 另一个是block2:22M > block1存放在哪个DN?block2存放在哪个DN? > > a.txt > block1:128M, 192.168.199.1 > block2:22M, 192.168.199.2 > > get a.txt > > 这个过程对于用户来说是不感知的 10. 通常情况下:1个Node部署一个组件 ## 开发环境 linux > 先创建几个文件夹 ``` mkdir software app data lib shell maven_resp ``` ****非常重要!!!!!linux主机名改成没有下划线的!!!否则有问题!!!**** ### Hadoop环境搭建 * 使用的Hadoop相关版本:CDH * CDH相关软件包下载地址:http://archive.cloudera.com/cdh5/cdh/5/ * Hadoop使用版本:hadoop-2.6.0-cdh5.15.1 * Hadoop下载:wget http://archive.cloudera.com/cdh5/cdh/5/hadoop-2.6.0-cdh5.15.1.tar.gz * Hive使用版本:hive-1.1.0-cdh5.15.1 ### Hadoop安装前置要求 Java 1.8+ ssh ### 安装Java * 解压安装包。 ![](https://img.kancloud.cn/f3/e4/f3e44c5e2a3ea7103808f2c0d5402677_571x19.png) * 注册环境变量。 ![](https://img.kancloud.cn/bc/cb/bccb7517d646e7a1a26b14dd8b08b430_381x263.png) * 环境变量生效。 ### 配置无密码登录 > 如果🏠目录里没有.ssh 文件夹。`ssh localhost`先访问下本机,就会自动生成了。 ``` ssh-keygen -t rsa 一路回车 ``` ``` cd ~/.ssh [hadoop@hadoop000 .ssh]$ ll 总用量 12 -rw------- 1 hadoop hadoop 1679 10月 15 02:54 id_rsa 私钥 -rw-r--r-- 1 hadoop hadoop 398 10月 15 02:54 id_rsa.pub 公钥 -rw-r--r-- 1 hadoop hadoop 358 10月 15 02:54 known_hosts cat id_rsa.pub >> authorized_keys chmod 600 authorized_keys ``` * 这样登陆本机就不用输密码了。mac连还是要密码。 ``` ssh root@139.155.58.151 ``` ## 安装hadoop ![](https://img.kancloud.cn/08/01/080193a0e8d9a594d729f38bcdc83770_574x28.png) * 解压到:~/app ``` tar -zxvf hadoop-2.6.0-cdh5.15.1.tar.gz.1 -C ~/app/ ``` * 添加HADOOP_HOME/bin到系统环境变量 ``` vim ~/.bash_profile ``` ``` export HADOOP_HOME=/root/app/hadoop-2.6.0-cdh5.15.1 export PATH=$HADOOP_HOME/bin:$PATH ``` ``` source ~/.bash_profile ``` * 修改Hadoop配置文件,地址:`/root/app/hadoop-2.6.0-cdh5.15.1/etc/hadoop` ``` vim hadoop-env.sh ``` ![](https://img.kancloud.cn/4e/de/4ede68361fd4522ffa6a5c28ad0955f4_292x59.png) ``` #配置主机 core-site.xml <property> <name>fs.defaultFS</name> <value>hdfs://127.0.0.1:8020</value> </property> # 副本系数改为1 hdfs-site.xml <property> <name>dfs.replication</name> <value>1</value> </property> #修改默认临时目录位置,改为新建的文件夹 <property> <name>hadoop.tmp.dir</name> <value>/home/hadoop/app/tmp</value> </property> ``` slaves hadoop000 * 启动HDFS: * 第一次执行的时候一定要格式化文件系统,不要重复执行: hdfs namenode -format ![](https://img.kancloud.cn/e3/c0/e3c08baf021b792d7d214cb26457a63f_983x209.png) * 会在指定的tmp目录生成一些内容。 * 启动集群:$HADOOP_HOME/sbin/start-dfs.sh * 验证: ``` [hadoop@hadoop000 sbin]$ jps 60002 DataNode 60171 SecondaryNameNode 59870 NameNode ``` http://139.155.58.151:50070 如果发现jps ok,但是浏览器不OK? 十有八九是防火墙问题 查看防火墙状态:sudo firewall-cmd --state 关闭防火墙: sudo systemctl stop firewalld.service ![](https://img.kancloud.cn/86/a9/86a9bb7bdaa91725cf9b96e445bf4545_1158x458.png) ### hadoop软件包常见目录说明 ``` bin:hadoop客户端名单 etc/hadoop:hadoop相关的配置文件存放目录 sbin:启动hadoop相关进程的脚本 share:常用例子 ``` ### 停止hdfs * start/stop-dfs.sh与hadoop-daemons.sh的关系 ``` start-dfs.sh = hadoop-daemons.sh start namenode hadoop-daemons.sh start datanode hadoop-daemons.sh start secondarynamenode stop-dfs.sh = .... ``` > 视频课到3-10 [主机改名的问题](https://blog.csdn.net/snowlive/article/details/69662882#hadoop%E9%97%AE%E9%A2%98%E8%A7%A3%E5%86%B3%E4%B8%BB%E6%9C%BA%E5%90%8D%E6%9B%B4%E6%94%B9)