多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
克隆一个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/