大数据云计算

在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 的配置,添加需要的主机

hosts
ifconfig  # 查看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权限下的目录下写入文件
scp
s1 上可以看到 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>

想要查看更多文章,敬请关注 dravenxiaokai 的简书

上一篇 下一篇

猜你喜欢

热点阅读