hadoop搭建集群

**hadoop搭建集群**

一、关闭防火墙
1)查看防火墙状态
firewall-cmd --state
2)中止firewall
systemctl stop firewalld.service
3)禁止firewall开机启动
systemctl disable firewalld.service
二、时间同步
命令行输入:yum install ntp 下载ntp插件 ,
下载完成后 命令行输入:ntpdate -u ntp1.aliyun.com
而后命令行输入:date
若是出现以下状况表示配置成功:
hadoop搭建集群
三、配置服务器(我这里是以4台为例)
1个主节点:doop1(192.168.0.103),2个(从)子节点,doop2(192.168.0.104),doop3(192.168.0.105),doop4(192.168.0.106)
二、配置主节点名(192.168.0.103)
在命令行输入: vi /etc/sysconfig/network
添加内容:
NETWORKING=yes
HOSTNAME=doop1
配置三台子节点名(192.168.0.104),(192.168.0.105),(192.168.0.106):
vi /etc/sysconfig/network
添加内容:
NETWORKING=yes
HOSTNAME=doop2
vi /etc/sysconfig/network
添加内容:
NETWORKING=yes
HOSTNAME=doop3
vi /etc/sysconfig/network
添加内容:
NETWORKING=yes
HOSTNAME=doop4
四、配置hosts
打开主节点的hosts文件,将文件的前两行注释掉 (注释当前主机的信息)并在文件中添加全部hadoop集群的主机息。
在命令行输入: vi /etc/hosts
添加3台服务器的节点名信息
192.168.0.103 doop1
192.168.0.104 doop2
192.168.0.105 doop3
192.168.0.106 doop4
保存以后,将主节点的hosts分别拷贝到其余两个子节点
命令行分别输入:
scp /etc/hosts root@192.168.0.104:/etc/
scp /etc/hosts root@192.168.0.105:/etc/
scp /etc/hosts root@192.168.0.106:/etc/
而后分别执行(重启服务器也能够不执行下面的语句): /bin/hostname hostsname
五、配置ssh无密码访问
生成公钥密钥对
在每一个节点上分别执行:
命令行输入:ssh-keygen -t rsa
一直按回车直到生成结束
执行结束以后每一个节点上的/root/.ssh/目录下生成了两个文件 id_rsa 和 id_rsa.pub
其中前者为私钥,后者为公钥
在主节点上执行:
scp /root/.ssh/id_rsa.pub root@doop2:/root/.ssh/
scp /root/.ssh/id_rsa.pub root@doop3:/root/.ssh/
scp /root/.ssh/id_rsa.pub root@doop4:/root/.ssh/
在xshell窗口的所有会话输入下面命令:
hadoop搭建集群
cd /root/.ssh/
cp id_rsa.pub authorized_keys
最后测试是否配置成功
在doop1上分别执行
ssh doop2
ssh doop3
能正确跳转到两台子节点的操做界面便可,一样在每一个子节点经过相同的方式登陆主节点和其余子节点也能无密码正常登陆就表示配置成功。
六、安装jdk(四台机器都要安装)
安装在同一位置/usl/local/jdk1.8.0_191
下载JDK : https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
解压JDK : tar -zxvf /usr/local/jdk-8u73-linux-x64.gz
配置环境变量, 编辑profile文件:
vi /etc/profile
在profile文件末尾添加如下代码:
export JAVA_HOME=/usr/local/jdk1.8.0_191
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=$JAVA_HOME/lib:$JAVA_HOME/jre/lib
保存后,使刚才编辑的文件生效:source /etc/profile
测试是否安装成功:java -version
七、安装hadoop
安装位置自定,例如安装在/usr/local目录下面
下载hadoop包:
https://www.apache.org/dyn/closer.cgi/hadoop/common/hadoop-2.7.7/hadoop-2.7.7.tar.gz
放在/usr/local目录下,解压hadoop
tar -zxvf hadoop-2.7.7.tar.gz
在usr下面生成hadoop-2.7.7目录
配置环境变量:
vi /etc/profile
在末尾添加:
export HADOOP_HOME=/usr/local/hadoop-2.7.7
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
保存后使新编辑的profile生效:
source /etc/profile
八、配置hadoop
配置hadoop配置文件
须要配置的文件的位置为/usr/local/hadoop-2.7.7/etc/hadoop,须要修改的有如下几个文件:
hadoop-env.sh
yarn-env.sh
core-site.xml
hdfs-site.xml
mapred-site.xml
yarn-site.xml
slaves
masters
其中hadoop-env.sh和yarn-env.sh里面都要添加jdk的环境变量
hadoop-env.sh中
添加以下代码:
export JAVA_HOME=/usr/local/jdk1.8.0_191 到以下位置:
hadoop搭建集群
yarn-env.sh中
添加以下代码:
export JAVA_HOME=/usr/local/jdk1.8.0_191 到以下位置:
hadoop搭建集群
core-site.xml中
添加以下代码:
<configuration>
<!--数据传输端口-->
<property>
<name>fs.defaultFS</name>
<value>hdfs://doop1:9000</value>
</property>
<property>
<name>io.file.buffer.size</name>
<value>131072</value>
</property>
<!--hadoop临时目录,fsimage临时文件也会存在这个目录,数据不能丢-->
<property>
<name>hadoop.tmp.dir</name>
<value>file:/usr/temp</value>
</property>
<property>
<name>hadoop.proxyuser.root.hosts</name>
<value></value>
</property>
<property>
<name>hadoop.proxyuser.root.groups</name>
<value>
</value>
</property>
</configuration>
注:上面代码中file后的路径下的temp文件夹须要本身建立
hdfs-site.xml中
添加以下代码:
<configuration>
<!--secondary namenode配置-->
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>doop4:50090</value>
</property>
<property>
<name>dfs.namenode.secondary.https-address</name>
<value>doop4:50091</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/usr/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/usr/dfs/data</value>
</property>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
<property>
<name>dfs.webhdfs.enabled</name>
<value>true</value>
</property>
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>
<property>
<name>dfs.web.ugi</name>
<value>supergroup</value>
</property>
</configuration>
slaves中配置DataNode主机名
修改为:
doop2
doop3
doop4
masters中配置SecondaryNameNode主机名
修改为:
doop4
mapred-site.xml中
(注意要将mapred-site.xml.template重命名为 .xml的文件 mv mapred-site.xml.template mapred-site.xml)
添加以下代码:
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.jobhistory.address</name>
<value>doop1:10020</value>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>doop1: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.address</name>
<value>doop1:8032</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>doop1:8030</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>doop1:8031</value>
</property>
<property>
<name>yarn.resourcemanager.admin.address</name>
<value>doop1:8033</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>doop1:8088</value>
</property>
</configuration>
拷贝hadoop安装文件到子节点
主节点上执行:
rm -rf /usr/local/hadoop-2.7.7/share/doc/
scp -r /usr/local/hadoop-2.7.7 root@doop2:/usr/local/
scp -r /usr/local/hadoop-2.7.7 root@doop3:/usr/local/
scp -r /usr/local/hadoop-2.7.7 root@doop4:/usr/local/
拷贝profile到子节点
主节点上执行:
scp /etc/profile root@doop2:/etc/
scp /etc/profile root@doop3:/etc/
scp /etc/profile root@doop4:/etc/
在三个子节点上分别使新的profile生效:
source /etc/profilehtml

配置Hadoop环境变量
vi ~/.bash_profile
在末尾添加:
export HADOOP_HOME=/usr/local/hadoop-2.7.7
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbinjava

scp ~/.bash_profile root@doop2:/root/
scp ~/.bash_profile root@doop3:/root/
scp ~/.bash_profile root@doop4:/root/
加载配置
source ~/.bash_profilenode

格式化主节点的namenode
主节点上进入hadoop目录而后执行:
hdfs namenode -format
提示:successfully formatted表示格式化成功linux

启动hadoop
主节点上在hadoop目录下执行:
start-all.sh
中止hadoop
stop-all.shweb

主节点上jps进程以下:
NameNode
ResourceManager
每一个子节点上的jps进程以下:
DataNode
NodeManager
doop会多个进程
SecondaryNameNode
若是这样表示hadoop集群配置成功shell

访问地址http://192.168.0.103:50070/
若是想经过主机名访问,需配置windows的host文件
而后看下页面
hadoop搭建集群apache