在Ubuntu下配置Hadoop完全分布模式
2017-10-04 本文已影响0人
dravenxiaokai
修改登录提示
whoami // 查看当前用户名
cd /etc/
sudo gedit passwd
// 如果这里显示的不是 ubuntu,跟用户名不一致,可以在这里修改成 ubuntu
passwd
修改主机名称
hostname // 查看主机名
cd /etc/
sudo gedit hostname // 修改主机名
我这里第一个主机名设置为 s0
使用符号链接实现配置分离
将 hadoop 文件夹重命名为 hadoop_alone 独立模式,再拷一份 hadoop_pseudo 命名为 hadoop_cluster 集群模式
ubuntu@s0:/usr/soft/hadoop-2.8.1/etc$ ls
hadoop hadoop_pseudo
ubuntu@s0:/usr/soft/hadoop-2.8.1/etc$ mv hadoop hadoop_alone
ubuntu@s0:/usr/soft/hadoop-2.8.1/etc$ ls
hadoop_alone hadoop_pseudo
ubuntu@s0:/usr/soft/hadoop-2.8.1/etc$ cp -R hadoop_pseudo/ hadoop_cluster
ubuntu@s0:/usr/soft/hadoop-2.8.1/etc$ ls
hadoop_alone hadoop_cluster hadoop_pseudo
符号链接即软链接相当于 windows 的快捷方式,硬链接 hard link 是磁盘上两个完全一样的文件
ubuntu@s0:/usr/soft/hadoop-2.8.1/etc$ ln -s hadoop_cluster hadoop
ubuntu@s0:/usr/soft/hadoop-2.8.1/etc$ ls -al
total 20
drwxrwxr-x 5 ubuntu ubuntu 4096 Oct 3 16:48 .
drwxrwxr-x 10 ubuntu ubuntu 4096 Oct 2 17:26 ..
lrwxrwxrwx 1 ubuntu ubuntu 14 Oct 3 16:48 hadoop -> hadoop_cluster
drwxrwxr-x 2 ubuntu ubuntu 4096 Jun 2 14:24 hadoop_alone
drwxrwxr-x 2 ubuntu ubuntu 4096 Oct 3 16:47 hadoop_cluster
drwxrwxr-x 2 ubuntu ubuntu 4096 Oct 2 13:45 hadoop_pseudo
克隆几份配置好的客户机,重命名,建议有规律的按顺序的命名,启动时也按顺序启动,便于管理,第一个建议序号以 0 开始命名,ip 地址最小数字是 0 ,可以相对应。
右键 》 管理 》 克隆
hosts 文件修改
我们发现,在 s0 主机上不能访问 s1 主机
s0 => s1这时候需要对 s1,s2,s3... 解析,修改 hosts 文件
默认 hosts 文件我们需要删除 ipv6 的配置,添加需要的主机
hostsifconfig # 查看ip地址
这时候在 s0 上可以 ping 通这些主机
ping 主机
sudo scp /etc/hosts root@192.168.17.129:/etc/
PS:scp需要使用root用户时,无法正确认证
因为ubuntu默认下关闭了root用户的远程ssh登录,
需要在远程主机的 /etc/ssh/sshd_config文件中
将PermitRootLogin 改为yes(无论后面是no还是其他单词)
重启ssh服务sudo /etc/init.d/ssh restart
就可以使用scp 向远程主机的root权限下的目录下写入文件
scps1 上可以看到 s0 发送过来的 hosts 文件
在配置文件中指定具体的 ip 地址
网络拓扑图 core-site.xml yarn-site.xml主从模式
master / slaves # 名称节点 / 数据节点
slaves
添加 s1 和 s2
hadoop 是指向 hadoop_cluster 的
scp 将hadoop_cluster 发送到 s1,s2,s3
格式化启动集群
hadoop namenode -format # 格式化
jps # 查看 java 进程
start-all.sh # start-dfs.sh and start-yarn.sh 一键启动集群
stop-yarn.sh and stop-dfs.sh # 关闭集群
查看集群的jps
补充
配置文件
#以下配置文件亲测有效的,不光jps可以查到数据节点,通过web也可以查到数据节点
#http://master:50070
#hosts
127.0.0.1 localhost
192.168.40.128 master
192.168.40.129 slave1
#这里的ip地址根据你自己的实际情况而定,不要有多余的记录,除了子节点的IP,不然会遇到一些问题
#master
#core-site.xml
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://master:9000</value>
<final>true</final>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/soft/hadoop-2.8.1/tmp</value>
</property>
</configuration>
#hdfs-site.xml
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>dfs.name.dir</name>
<value>/usr/soft/hadoop-2.8.1/dfs/name</value>
<final>true</final>
</property>
<property>
<name>dfs.data.dir</name>
<value>/usr/soft/hadoop-2.8.1/dfs/data</value>
</property>
<property>
<name>dfs.replication</name>
<value>2</value>
<final>true</final>
</property>
</configuration>
#mapred-site.xml
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapred.job.tracker</name>
<value>master:9001</value>
</property>
</configuration>
#yarn-site.xml
<?xml version="1.0"?>
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>master</value>
</property>
<property>
<description>The address of the applications manager interface in the RM.</description>
<name>Yarn.resourcemanager.address</name>
<value>master:18040</value>
</property>
<property>
<description>The address of the scheduler interface.</description>
<name>Yarn.resourcemanager.scheduler.address</name>
<value>master:18030</value>
</property>
<property>
<description>The address of the RM web application.</description>
<name>Yarn.resourcemanager.webapp.address</name>
<value>master:18088</value>
</property>
<property>
<description>The address of the resource tracker interface.</description>
<name>Yarn.resourcemanager.resource-tracker.address</name>
<value>master:8025</value>
</property>
</configuration>
#slave1
#core-site.xml
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://master:9000</value>
<final>true</final>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/soft/hadoop-2.8.1/tmp</value>
</property>
</configuration>
#hdfs-site.xml
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>dfs.name.dir</name>
<value>/usr/soft/hadoop-2.8.1/dfs/name</value>
<final>true</final>
</property>
<property>
<name>dfs.data.dir</name>
<value>/usr/soft/hadoop-2.8.1/dfs/data/slave1</value>
</property>
<property>
<name>dfs.replication</name>
<value>2</value>
<final>true</final>
</property>
</configuration>
#mapred-site.xml
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapred.job.tracker</name>
<value>master:9001</value>
</property>
</configuration>
#yarn-site.xml
<?xml version="1.0"?>
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>master</value>
</property>
<property>
<description>The address of the applications manager interface in the RM.</description>
<name>Yarn.resourcemanager.address</name>
<value>master:18040</value>
</property>
<property>
<description>The address of the scheduler interface.</description>
<name>Yarn.resourcemanager.scheduler.address</name>
<value>master:18030</value>
</property>
<property>
<description>The address of the RM web application.</description>
<name>Yarn.resourcemanager.webapp.address</name>
<value>master:18088</value>
</property>
<property>
<description>The address of the resource tracker interface.</description>
<name>Yarn.resourcemanager.resource-tracker.address</name>
<value>master:8025</value>
</property>
</configuration>