大数据小项目之电视收视率企业项目04--完全分布式搭建 完全分布式搭建
前边已经修改完ip了,那么现在就开始搭建完全分布式了
1、修改主机名
hostname(查看主机名)
sudo nano /etc/hostname(修改主机名)
2、修改hosts文件
sudo nano /etc/hosts
添加格式为 IP + 主机名
之后重启所有虚拟机,然后hostname查看主机名,发现主机名已经改变。
3、克隆虚拟机
克隆3台client(centos7)
步骤:右键centos-7-->管理->克隆-> ... -> 完整克隆
4、启动客户端并且修改hostname和ip地址
编辑sudo nano /etc/sysconfig/network-scripts/ifcfg-eno33文件(只修改ip就行)
编辑sudo nano /etc/hostname
编辑sudo nano /etc/resolv.conf
nameserver 192.168.17.2(网关地址)
重启网络服务
$>sudo service network restart
这里简要介绍一下namonode和DataNode的作用:
NameNode只负责元数据信息,没有数据流,他只负责维护名字空间,任何对文件系统名字空间的改动都记录在NameNode。系统的文件组织结构和linux非常类似。你可以创建,删除,移动,重命名文件或者目录。
DataNode负责为文件系统的客户提供读/写操作服务。DataNode同时还为NameNode提供block创建,删除,备份机制。
5、ssh免密登录(在你所在用户的根目录下)
[wang@wang201 ~]$ ssh-keygen -t rsa Generating public/private rsa key pair. Enter file in which to save the key (/home/wang/.ssh/id_rsa): Created directory '/home/wang/.ssh'. Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/wang/.ssh/id_rsa. Your public key has been saved in /home/wang/.ssh/id_rsa.pub. The key fingerprint is: 39:f2:fc:70:ef:e9:bd:05:40:6e:64:b0:99:56:6e:01 usera@serverA The key's randomart image is: +--[ RSA 2048]----+ | Eo* | | @ . | | = * | | o o . | | . S . | | + . . | | + . .| | + . o . | | .o= o. | +-----------------+
此时会在/home/wang/.ssh目录下生成密钥对
[wang@wang201~]$ ls -la .ssh 总用量 16 drwx------ 2 wang wang 4096 8月 24 09:22 . drwxrwx--- 12 wang wang 4096 8月 24 09:22 .. -rw------- 1 wang wang 1675 8月 24 09:22 id_rsa -rw-r--r-- 1 wang wang 399 8月 24 09:22 id_rsa.pub
然后将公钥id_rsa.pub上传到wang202服务器的,并以wang用户登录
[wang@wang201~]$ ssh-copy-id wang@wang202 The authenticity of host '10.124.84.20 (10.124.84.20)' can't be established. RSA key fingerprint is f0:1c:05:40:d3:71:31:61:b6:ad:7c:c2:f0:85:3c:cf. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added '10.124.84.20' (RSA) to the list of known hosts. wang@wang202's password: Now try logging into the machine, with "ssh 'userb@10.124.84.20'", and check in: .ssh/authorized_keys to make sure we haven't added extra keys that you weren't expecting.
这个时候wang的公钥文件内容会追加写入到wang的 .ssh/authorized_keys 文件中,这样做完之后我们就可以免密码登录了
6、验证一下ssh操作其他机器
使用ssh wang202 就能登录成功了
如果登录不成功或者还需要密码验证,那就把/home/wang/.ssh 下的文件删除,重新做一次ssh的免密。
一般权限修改成700(只要没有w权限就可以了) 里面文件建议644或者600。
7、安装hadoop
a.在根目录新建文件夹 :sudo mkdir /soft
b.修改soft权限:chown -R wang:wang /soft/
c.上传hadoop安装包到给目录下(我用的是hadoop-2.7.3版本的,版本可自选)
d.解压:tar -zxvf hadoop-2.7.3.tar.gz
e.解压后名字太长可以改个名字: mv hadoop-2.7.3 hadoop
f.解压后在hadoop里创建:mkdir -p /data/tmp(用来保存fsimage和edits文件,非常重要)
g.配置 hadoop/etc/hadoop/下的文件:
core-site.xml:
<property> <name>fs.defaultFS</name> <value>hdfs://wang201/</value> </property> <property> <name>hadoop.tmp.dir</name> <value>/soft/hadoop-2.7.3/data/tmp</value> </property> <property> <name>hadoop.http.staticuser.user</name> <value>wang</value> </property>
hdfs-site.xml:
<property> <name>dfs.replication</name> <value>3</value> </property> <property> <name>dfs.permissions.enabled</name> <value>false</value> </property> <property> <name>dfs.namenode.secondary.http-address</name> <value>wang203:50090</value> </property>
yarn-site.xml:
<property> <name>yarn.resourcemanager.hostname</name> <value>wang201</value> </property> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> <property> <name>yarn.log-aggregation-enable</name> <value>true</value> </property> <property> <name>yarn.log-aggregation.retain-seconds</name> <value>106800</value> </property>
mapred-site.xml:
<property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> <property> <name>mapreduce.jobhistory.address</name> <value>wang201:10020</value> </property> <property> <name>mapreduce.jobhistory.webapp.address</name> <value>wang201:19888</value> </property>
slaves:
wang202 wang203 wang204
hadoop-env.sh:
export JAVA_HOME=/soft/jdk
h.分发配置
$>cd /soft/hadoop/etc/
$>scp -r hadoop-2.7.3 wang@wang202:/soft/
$>scp -r hadoop-2.7.3 wang@wang203:/soft/
$>scp -r hadoop-2.7.3 wang@wang204:/soft/
格式化文件系统
hadoop namenode -format
显示这样即表示成功了
启动hadoop进程
$>start-all.sh
然后用jps就能看到有哪些进程了