配置文件:
${hadoop_install}etc/hadoop/*-site.xml
<!-- core-site.xml -->
<configuration>
<property>
<name>fs.defaultFS</name>
<!--url:protocal(协议如hdfs或file )+host+port+path-->
<value>hdfs://localhost/</value>
</property>
</configuration>
<?xml version="1.0"?>
<!-- hdfs-site.xml -->
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
<?xml version="1.0"?>
<!-- mapred-site.xml -->
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
<?xml version="1.0"?>
<!-- yarn-site.xml -->
<configuration>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>localhost</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>
NameNode 存放所有资源的目录及其他相关信息,有辅助的SecondaryNameNode,NameNode挂掉后靠他恢复重启NameNode
DataNode存放数据块有备份
每个都是一个进程
hadoop三个层面
hdfs:文件存储 NameNode+2nn(SecondaryNameNode)+DataNode
yarn:资源调度管理 resourceManager+nodeManager
整个hadoop启动后会有上述5个进程
一般在NameNode节点上跑resourceManager进程,也可以不放一起
nodeManager一般放在DataNode节点上,也可以不放一起
每个datanode节点一般有nodemanager,如果nodemanager不在datanode节点上就需要不同节点之间的通信,性能差,优化性能就要本地化,减少网络抓取
配置SSH(安全套接字连接)
NameNode要启动DataNode节点上的相关进程,远程登陆nameNode节点,需要权限登陆
在nameNode节点上编写脚本实现,用到SSH指令,通过安全套接字连接到指定的机器即SSH
ssh s200 //远程登陆s200,什么身份不加,即以ubuntu的身份
123456 //输入密码
shell //进入到s200的shell,即已经连接到s200
如果集群有大量的节点,进入每个节点都要输入密码很麻烦,需配置无密码登陆,方法就是生成密钥对
public key:公钥,发给别人的
private key:私钥,自己留着的
nameNode要登陆各节点,需要把nameNode的公钥信息发给各节点,在各节点的秘钥认证库中要存放此秘钥
datanode要想启动namenode节点,也要把他的公钥发给namenode的秘钥认证库中
公钥信息不止包含密码,还包括用户身份、ip等,是一串加密之后的有益数据
sudo apt-cache search ssh | grep ssh //可以找到“ssh - secure shell client and server (metapackage)”
sudo apt-get install ssh //安装了sshd (server)和ssh(client)
ssh localhost //测试连接
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa //在.ssh目录下生产了两个秘钥文件id_rsa.pub(公钥)和id_rsa(私钥),这两个秘钥的内容不一样,可以cat查看,包含了自己的身份密码等信息,是用来发送给别人,登陆别人的
公钥要发送给对方并追加到对方的秘钥库中
追加秘钥到对方的秘钥库中
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys //“authorized_keys”必须用这个名字
测试:
ssh localhost
配置上述*-site.xml文件
cd ${HADOOP_INSTALL}/etc/hadoop
gedit core-site.xml
gedit hdfs-site.xml
cp mapred-site.xml.template mapred-site.xml
gedit mapred-site.xml
gedit yarn-site.xml