Centos6.5/7 搭建hadoop3.1

一、Centos6.5 配置网卡参数: vi /etc/sysconfig/network-scripts/ifcfg-eth0

ONBOOT=yes

BOOTPROTO=static

IPADDR=

GATEWAY=

NETMASK=255.255.255.0 

DNS1=

Centos6.5/7 搭建hadoop3.1

Centos7 配置网卡vi /etc/sysconfig/network-scripts/ifcfg-ens33

Centos6.5/7 搭建hadoop3.1

Centos6.5/7 搭建hadoop3.1

二、ssh免密:把几台主机的密码放进一个密码本,然后每台机子一份。

1.关闭防火墙:service iptables stop 

查看防火墙是否关闭:service iptables status    (显示is not  running 表示已关闭,未运行)

想要开机自动关闭防火墙,把service iptables stop 放入 /etc/profile 中。

Centos6.5/7 搭建hadoop3.1

Centos6.5/7 搭建hadoop3.1

2.禁用selinux安全策略

Centos6.5/7 搭建hadoop3.1

3. 修改本地DNS解析vi /etc/hosts

Centos6.5/7 搭建hadoop3.1

4.  选择加密方式一种1024 一种2048 

ssh-****** -t  dsa  

ssh-****** -t  rsa

Centos6.5/7 搭建hadoop3.1

然后:cd ~/.ssh

          cat id_dsa.pub >> authorized_keys

Centos6.5/7 搭建hadoop3.1

每台pc的authorized_keys 要有所有pc的** 能够实现免密。

三、下载JDK、hadoop 并配置好环境变量。

tar -xvf 包名

tar -zxvf 包名

Centos6.5/7 搭建hadoop3.1

环境变量:

export JAVA_HOME=

export HADOOP_HOME=

export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin


Centos6.5/7 搭建hadoop3.1

四、hadoop文件配置

需要修改的文件在/hadoop/etc/hadoop目录下

第一个core-site.xml 里添加如下 红色的部分为主机的ip或者主机名之前设置过hosts解析

<configuration>
 <property>
  <name>fs.defaultFS</name>
  <value>hdfs://NameNode:9000</value>
 </property>
 <property>
  <name>hadoop.tmp.dir</name>
  <value>/hadoop/tmp</value>
 </property>
</configuration>

第二个hadoop-env.sh在里面加入如下代码

export JAVA_HOME=/jdk
export HADOOP_HOME=/hadoop

第三个hdfs-site.xml 第一个红色和第二个红色部分为主机名和备份主机名或者ip都行第三个红色部分为默认备份几份


<configuration>
 
 <property>
  <name>dfs.namenode.http-address</name>
  <value>NameNode:50070</value>
 </property>
 <property>
  <name>dfs.namenode.secondary.http-address</name>
  <value>StandbyNameNode:50090</value>
 </property>
 <property>
  <name>dfs.namenode.name.dir</name>
  <value>/hadoop/name</value>
 </property>
 <property>
  <name>dfs.replication</name>
  <value>2</value>
 </property>
 <property>
  <name>dfs.datanode.data.dir</name>
  <value>/hadoop/data</value>
 </property>
</configuration>


第四个mapred-site.xml通知hadoop使用yarn框架
<configuration>
 <property>
  <name>mapreduce.framework.name</name>
  <value>yarn</value>
 </property>
<property>
     <name>mapreduce.application.classpath</name>
     <value>
   /hadoop/etc/hadoop,
   /hadoop/share/hadoop/common/*,
   /hadoop/share/hadoop/common/lib/*,
   /hadoop/share/hadoop/hdfs/*,
   /hadoop/share/hadoop/hdfs/lib/*,
   /hadoop/share/hadoop/mapreduce/*,
   /hadoop/share/hadoop/mapreduce/lib/*,
   /hadoop/share/hadoop/yarn/*,
   /hadoop/share/hadoop/yarn/lib/*
   </value>
 </property>
</configuration>


第五个workers 里面加入DataNode1,DataNode2,DataNode3的ip地址或者主机名
 
第六个yarn-env.sh里加入如下
export JAVA_HOME= 路径


第七个yarn-site.xml加入如下
<configuration>
<!-- Site specific YARN configuration properties -->
 <property>
  <name>yarn.resourcemanager.hostname</name>
  <value>NameNode</value>
 </property>
 <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>
</configuration>

第八个打开主机的/hadoop/sbin/目录下 
start-all.sh 和 stop-all.sh 头部加入下面七句代码
HDFS_DATANODE_USER=root 
HDFS_DATANODE_SECURE_USER=hdfs
HDFS_NAMENODE_USER=root 
HDFS_SECONDARYNAMENODE_USER=root
YARN_RESOURCEMANAGER_USER=root 
HADOOP_SECURE_DN_USER=yarn 
YARN_NODEMANAGER_USER=root
 
start-dfs.sh和stop-dfs.sh 头部加入下面四句代码
HDFS_DATANODE_USER=root 
HDFS_DATANODE_SECURE_USER=hdfs
HDFS_NAMENODE_USER=root 
HDFS_SECONDARYNAMENODE_USER=root
 
stop-yarn.sh和start-yarn.sh头部加入下面三句代码
YARN_RESOURCEMANAGER_USER=root 
HADOOP_SECURE_DN_USER=yarn 
YARN_NODEMANAGER_USER=root


保存

主机和子机的环境 及hadoop文档配置要一样,可选择ftp工具覆盖,也可以用下面命令传送到目标ip

scp -r /hadoop/ 192.168.199.101:/
scp -r /hadoop/ 192.168.199.111:/
scp -r /hadoop/ 192.168.199.112:/
scp -r /hadoop/ 192.168.199.113:/
scp -r /etc/profile 192.168.199.101:/etc/
scp -r /etc/profile 192.168.199.111:/etc/
scp -r /etc/profile 192.168.199.112:/etc/
scp -r /etc/profile 192.168.199.113:/etc/
配置完成格式化hadoop:
hdfs namenode -format

启动hadoop:start-all.sh