== 上篇为1-到9 请点击这里进入 01HDFS准备 ==
10、配置namenode启动
10.1、 vi core-site.xml
在<configuration>和</configuration>中间补充:
<property>
<name>fs.defaultFS</name>
<value>hdfs://node01:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/root/hdpdata/full</value>
</property>
10.2、 vi hdfs-site.xml
核心参数1:namenode在哪台机器上运行
参数名:dfs.namenode.rpc-address
参数值: node01:9000
核心参数2:namenode存元数据的本地目录
参数名:dfs.namenode.name.dir
参数值:/root/hdpdata/name/
核心参数3:datnaode存文件块的本地目录
参数名:dfs.datanode.data.dir
参数值:/root/hdpdata/data/
辅助参数:指定secondarynamenode所在的机器
参数名:dfs.namenode.secondary.http-address
参数值:node02:50090
<configuration>
<property>
<name>dfs.namenode.rpc-address</name>
<value>node01:9000</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>/root/hdpdata/name/</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/root/hdpdata/data/</value>
</property>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>node02:50090</value>
</property>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
</configuration>
10.3、 vi hadoop-env.sh
export JAVA_HOME=/root/app/jdk1.8.0_60
10.4、 将以上配置拷贝至node02,node03,node04
scp hdfs-site.xml hadoop-env.sh node04:`pwd`
11.为启动hive配置两个文件
11.1 — hadoop/etc/hadoop/mapred-site.xml:
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
11.2 — hadoop/etc/hadoop/yarn-site.xml:
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>
11.3 — 分发文件给其余机器:
scp mapred-site.xml yarn-site.xml hadoop2:`pwd`
12、启动HDFS
在不同的机器起动不同的程序node01-->namenode,node02,03,04-->datanode
注意:
集群第一次启动的时候,namenode的元数据目录需要先初始化生成:
在node01上:
hadoop namenode -format
13、手动启动集群:
1. 在node01上启动namenode:
sbin/hadoop-daemon.sh start namenode
使用jps有namenode即启动成功
查看监听的端口:netstat -nltp
2. 在node02-04启动datanode:
sbin/hadoop-daemon.sh start datanode
3. 启动完后,可以用浏览器访问namenode提供的web服务,来查看HDFS的工作状态:
http://node01:50070
13、自动启动集群:
1. 在node01的hadoop目录中,修改slaves文件,指定datanode的机器
vi /root/app/hadoop-2.8.3/etc/hadoop/slaves
node01
node02
node03
node04
2. 在node01上,配好node01–>node01,02,03,04的免密登陆
① node01:
ssh-keygen -t dsa -P '' -f /root/.ssh/id_dsa
参数f指定生成密钥位置,同级目录下的id_dsa.pub为公钥
cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
③ node02、03、04:
先给其他三台添加.ssh目录,为它们输入:
ssh localhost 即可
④ 在node01中进入“~/.ssh”目录,将id_dsa.pub公钥拷贝给其他三个
scp id_dsa.pub node02:`pwd`/node01.pub # 并重命名为node01.pub以防止公钥冲突被覆盖
scp id_dsa.pub node03:`pwd`/node01.pub
scp id_dsa.pub node04:`pwd`/node01.pub
⑤ 在那三台机器中,
将~/.ssh/node01.pub追加到authorized_keys中,如果node08也要管理,则每台机器都会收到node08.pub,然后将node08.pub追加到authorized_keys中,如果node08也要管理,则每台机器都会收到node08
cd ~/.ssh
cat node01.pub >> authorized_keys
3. 在node01上:
start-dfs.sh 启动集群
stop-dfs.sh 关闭集群