Hadoop基础 2
- hadoop整体架构(主从架构)
- NameNode 名称节点 老大
- DataNode 数据节点
- Secondary NameNode 名称节点 老二
Hadoop最好使用hostname进行节点配置
对于虚拟机,配置规则: 内网 ip hostname
对于云主机,配置规则: 内网ip hostname
但是云主机需要添加公网访问权限,设置安全组
CloudManager,需要把NameNode Default Group的通配符匹配勾选了
安装hostname配置,主要是为了当ip发生变化的时候,只需要改动hosts文件就行了,组件不需要重新配置
-
Hadoop 相关配置
- NameNode(nn)
# core-site.xml cd /hadoop/etc/hadoop/ vi core-site.xml <property> <name>fs.defaultFS</name> <value>hdfs://hadoop001:9000</value> </property>
-
DataNode(dn)
# slave文件 vi /hadoop/etc/hadoop/slaves hadoop001
-
SecondaryNameNode
vi hdfs-site.xml <property> <name>dfs.namenode.secondary.http-address</name> <value>hadoop001:50090</value> </property> <property> <name>dfs.namenode.secondary.https-address</name> <value>hadoop001:50090</value> </property>
-
运行
# 开放端口 firewall-cmd --zone=public --add-port=50090/tcp --permanent systemctl restart firewalld.service # 如果不行,需要配置一下环境变量 start-dfs.sh #查看运行情况 jps # 可以试试访问50090端口
-
关于jps
-
位置 $JAVA_HOME/bin/jps
-
查看进程
-
存储位置 /tmp/hsperfdata_$username,存储了进程pid
# 查看位置 which jps # 查看进程 进程号 进程名称简写 jps # 详细 jps -l # 查看指定的hostid jps -m localhost # jps在杀死进程之后,可能会存在存留一会
-
-
关于linux /tmp
linux 30天周期,会删除/tmp下非规则之外的文件和文件夹,生产商要把重要的的配置路径存放到另外的目录下
-
map reduce 配置
cp /hadoop/etc/hadoop/mapred-site.xml.template /hadoop/etc/hadoop/mapred-site.xml
# 配置map reduce采用yarn资源调度
vi /hadoop/etc/hadoop/mapred-site.xml
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
# 配置资源调度中心
vi yarn-site.xml
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
# 启动yarn
start-yarn.sh
# 查看yarn启动情况,看到ResourceManager和NodeManager说明启动成功了
jps
#查看ResourceManager监听端口
netstat -nlp|grep 10543
# 开放端口
firewall-cmd --zone=public --add-port=8088/tcp --permanent
systemctl restart firewalld.service
# 访问8088
ResourceManager 资源管理者(管理者)
NodeManager 节点管理者(真正干活的)
- 运行mapreduce任务word count
# 先给一个input
echo 'It is important to ensure that each resource for a MapReduce job has a unique file name. This prevents symlink clobbering when YARN containers running MapReduce tasks are localized during container launch. A user can specify their own resource name by using the fragment portion of a URI.' > /hadoop/etc/hadoop/input
# 创建hdfsinput文件夹
hadoop fs -mkdir -p /example/wordcount/input
# 将输入传到hdfs上
hdfs dfs -put /hadoop/etc/hadoop/input /example/wordcount/input
# 运行
hadoop jar /hadoop/share/hadoop/mapreduce2/hadoop-mapreduce-examples-2.6.0-cdh5.7.0.jar wordcount /example/wordcount/input /example/wordcount/output
# 运行过程可以在8088端口查看,如果history服务server开启的话,可以看到history
#查看结果
hadoop dfs -cat /example/wordcount/output/part-r-00000