Maven: 构建工具(build):打包,导包,版本控制

mvn clean: 删除target文件夹
compile: 编译
package: 打包
mvn archetype:generate //生成项目骨架

maven的三级定位:
groupId //org.apache.hadoop
artifactId //hadoop-client(包名后缀) project名称
version //2.7.3

settings.xml //maven的conf文件

maven的仓库:jar包汇总
1、中央仓库 //apache官方仓库 repo.maven.apache.org
2、镜像仓库 //同步官方仓库的仓库 maven.aliyun.com
3、私服 //私人仓库服务器 localhost:8080/nexus
4、本地仓库 // 通过磁盘进行传输

仓库的优缺点: 1、中央仓库 //jar最全 访问下载速度慢 (默认) 2、镜像仓库 //jar比中央仓库少 访问下载速度快 3、私服 //jar最少 访问下载速度极快(局域网) 可以自定义jar

配置settings.xml,手动设置本地仓库位置
第53行: localRepository从注释中拷贝出来,并配置成用户自定义路径,并将其放在C:/users/.m2文件夹里

<localRepository>E:/Program/apache-maven-3.3.9/repository</localRepository>

配置maven私服:
  1、配置tomcat:解压并配置环境变量
  CATALINA_HOME=
  PATH=
  2、cmd下输入startup.bat

  3、关闭tomcat:shutdown.bat/ctrl+c

  4、将nexus.war放置在tomcat家目录的webapps下

  5、启动tomcat令其部署,直到输入localhost:8080/nexus成功即可关闭tomcat

  6、删除nexus.war文件,避免开启tomcat自动部署

7、修改nexus配置文件
  tomcat家目录的webapps
exusWEB-INFclasses
exus.properties

修改:
  nexus-work=E:/Program/apache-tomcat-8.5.15/nexus/

8、移动${user.home}/sonatype-works/nexus到上一部修改的目录下

9、在central仓库中添加文件
  E:Programapache-tomcat-8.5.15
exusstoragecentral
  将本地仓库所有文件剪切到此目录

10、启动tomcat,并输入网址,查看仓库文件是否存在

11、将tomcat安装为windows服务
  service.bat install

12、在服务中设置开机启动即可

配置maven使用私服:

节点的退役和服役: slaves文件起到通过ssh命令启动某进程的作用

所以通过黑白名单的方式可以指定datanode节点属于哪个集群

dfs.hosts //白名单:指定某主机可以连接namenode
dfs.hosts.exclude //黑名单:指定某主机不可以连接namenode

//修改hdfs-site.xml
<property>
<name>dfs.hosts</name>
<value>/soft/hadoop/etc/hadoop/hosts_allow</value>
</property>

<property>
<name>dfs.hosts.exclude</name>
<value>/soft/hadoop/etc/hadoop/hosts_deny</value>
</property>

//创建配置文件制定的两个文件,并自定义主机名配置

//修改完成后在s101刷新节点配置
hdfs dfsadmin -refreshNodes

include exclude
102 yes yes //处于退役状态(和其他节点同步数据)
103 yes no //正常
104 no yes //进程会关闭
105 no no //若slave文件指定主机名,则能正常启动

hdfs的机架感知:

网络拓扑距离:ip被转发的距离

distance(/d1/r1/n1, /d1/r1/n1)=0 //同一节点进程
distance(/d1/r1/n1, /d1/r1/n2)=2 //同一机架不同节点
distance(/d1/r1/n1, /d1/r2/n3)=4 //不同机架不同节点
distance(/d1/r1/n1, /d2/r3/n4)=6 //不同数据中心的节点

datanode的副本放置策略:
  客户端在本地机架存放第一个副本
  第二个机架一个节点存放第二个副本
  第二个机架另一个节点存放第三个副本

s101-s103: /rack1/s101,/rack1/s102,/rack1/s103
s104-s105: /rack2/s104,/rack2/s105

//修改core-site.xml
<property>
<name>net.topology.node.switch.mapping.impl</name>
<value>com.oldboy.hdfs.RackAware</value>
</property>

验证方式:
  0、使用四个datanode
  1、使用jar或者将代码打成jar,放在s101的/soft/hadoop/share/hadoop/common/lib
  2、使用脚本同步文件到其他节点
    xsync.sh /soft/hadoop/share/hadoop/common/lib/myhadoop-1.0-SNAPSHOT.jar
  3、配置core-site.xml
    <property>
    <name>net.topology.node.switch.mapping.impl</name>
    <value>com.oldboy.hdfs.RackAware</value>
    </property>
4、启动hdfs