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