克隆一个master, 一个slave1, 一个slave2(创建完整克隆)
修改机器名
vi /etc/hostname
修改ip为静态ip(查看ip ip a, ifconfig)
vi /etc/network/interfaces
master配置
~~~
iface ens33 inet static
address 192.168.231.4
netmask 255.255.255.0
gateway 192.168.231.2
#dns -nameservers 8.8.8.8(google dns解析服务器,可以使用东软的)
~~~
slave1配置
~~~
iface ens33 inet static
address 192.168.231.3
netmask 255.255.255.0
gateway 192.168.231.2
#dns -nameservers 8.8.8.8(google dns解析服务器,可以使用东软的)
~~~
slave2配置
~~~
iface ens33 inet static
address 192.168.231.5
netmask 255.255.255.0
gateway 192.168.231.2
#dns -nameservers 8.8.8.8(google dns解析服务器,可以使用东软的)
~~~
重新启动网络服务
service networking restart
修改/etc/hosts文件(DNS解析,主机和IP绑定)
~~~
192.168.231.4 master
192.168.231.3 slave1
192.168.231.5 slave2
~~~
测试ping 主机名 ping master
# 配置ssh免密码登录
安装ssh包
sudo apt-get install ssh
配置ssh的实现思路:
1. 在每个节点上都使用ssh-keygen生成public key, private key
2. 所有节点的public key都拷贝到master节点上,
3. 在master节点上生成一个授权key文件authorized_keys
4. 最后把authorized_keys拷贝到集群中的其他节点,
切换到hadoop用户su - hadoop
1. 生成公钥,私钥对(在master节点上执行)
~~~
ssh-keygen -t rsa
~~~
一直回车,
生成隐藏目录.ssh (ls -a查看隐藏目录)
2. 导入公钥
~~~
cat .ssh/id_rsa.pub >> .ssh/authorized_keys
~~~
3. 在slave节点上生成y公钥,私钥对
请生成的公钥拷贝到master上
~~~
scp id_rsa.pub hadoop@master:/home/hadoop/.ssh/id_rsa.pub2
~~~
4. 在master上,讲其他节点的公钥导入到authorized_key文件
~~~
cat .ssh/id_rsa.pub2 >> .ssh/authorized_keys
cat .ssh/id_rsa.pub3 >> .ssh/authorized_keys
~~~
5. 讲master上的“最全”公钥,复制到其他机器、
~~~
scp .ssh/authorized_keys hadoop@slave1:/home/hadoop/.ssh/authorized_key
scp .ssh/authorized_keys hadoop@slave2:/home/hadoop/.ssh/authorized_key
~~~
6. 测试ssh免密码登录
ssh slave1
使用exit退出slave1
# 配置hadoop集群
在各个节点上,创建3个目录
~~~
mkdir -p /home/hadoop/data/namenode
mkdir -p /home/hadoop/data/datanode
mkdir -p /home/hadoop/tmp
~~~
修改 /home/hadoop/hadoop-2.7.2/etc/hadoop/hadoop-env.sh
~~~
export HADOOP_PREFIX=/home/hadoop/hadoop-2.7.2
export JAVA_HOME=/home/hadoop/jdk1.8
~~~
修改yarn-env.sh
~~~
export JAVA_HOME=/home/hadoop/jdk1.8
~~~
修改core-site.xml文件,参考下面的内容修改:
~~~
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>file:/home/Hadoop/tmp</value>
</property>
</configuration>
~~~
修改hdfs-site.xml
~~~
<configuration>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/home/hadoop/data/namenode</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/home/hadoop/data/datanode</value>
</property>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>slave1:9001</value>
</property>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
</configuration>
~~~
根据模板生成mapred-site.xml
cp mapred-site.xml.template mapred-site.xml
修改mapred-site.xml
~~~
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.jobhistory.address</name>
<value>master:10020</value>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>master:19888</value>
</property>
</configuration>
~~~
修改yarn-site.xml
~~~
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>master:8030</value>
</property>
<property>
<name>yarn.resourcemanager.admin.address</name>
<value>master:8033</value>
</property>
<property>
<name>yarn.resourcemanager.address</name>
<value>master:8032</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>master:8031</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>master:8088</value>
</property>
<!--虚拟机默认8G内容,超过时会内存溢出,需要修改成2G-->
<property>
<name>yarn.nodemanager.resource.memory-mb</name>
<value>2048</value>
</property>
<property>
<name>yarn.scheduler.minimum-allocation-mb</name>
<value>128</value>
</property>
<property>
<name>yarn.nodemanager.resource.cpu-vcores</name>
<value>1</value>
</property>
</configuration>
~~~
修改slaves
~~~
slave1
slave2
~~~
配置slave
把hadoop-2.7.2文件夹连同修改后的配置文件,通过scp拷贝到其他2台机器上
~~~
scp -r hadoop-2.7.2 hadoop@slave1:/home/hadoop/hadoop-2.7.2
scp -r hadoop-2.7.2 hadoop@slave:/home/hadoop/hadoop-2.7.2
~~~
可能需要先删除slave1和slave2上的hadoop-2.7.2目录
在master上格式化HDFS文件系统:
$ hdfs namenode -format
启动hadoop集群:
$ start-dfs.sh
启动yarn:
$start-yarn.sh
停止hadoop集群
$ stop-dfs.sh
$ stop-yarn.sh
查看进程:
$ jps
测试Hadoop服务
hdfs管理界面: http://192.168.231.4:50070/
yarn的管理界面:http://192.168.231.4:8088/
- 空白目录
- 第一章 Linux虚拟机安装
- 第二章 SSH配置
- 第三章 jdk配置
- 第四章 Hadoop配置-单机
- 第五章 Hadoop配置-集群
- 第六章 HDFS
- 第七章 MapReduce
- 7.1 MapReduce(上)
- 7.2 MapReduce(下)
- 7.3 MapReduce实验1 去重
- 7.4 MapReduce实验2 单例排序
- 7.5 MapReduce实验3 TopK
- 7.6 MapReduce实验4 倒排索引
- 第八章 Hive
- Hive安装
- 数据定义
- 数据操作
- 第九章 HBase
- 第十章 SaCa RealRec数据科学平台
- 第十一章 Spark Core
- 第十二章 Spark Streaming
- 第十章 Spark测试题