美文网首页我爱编程
hadoop 完全分布式部署

hadoop 完全分布式部署

作者: Lisong | 来源:发表于2017-06-07 16:51 被阅读41次

Hdaoop 完全分布式部署

标签(空格分隔):Hdaoop


一、集群环境

系统版本

Centos6.8 baseServer

hdaoop 版本

hadoop-2.7.3

主机信息

master 192.168.100.11
slave1 192.168.100.12
slave2 192.168.100.13

Hosts 文件

192.168.100.11 master
192.168.100.12 slave1
192.168.100.13 slave2


二、更新yum源

vi /etc/yum.conf
##添加以下内容,不升级内核只升级安装包
exclude=kernel*
exclude=centos-release*

cat >> /etc/yum.conf <<EOF
exclude=kernel*
exclude=centos-release*
EOF
yum upgrade -y

三、hdaoop 集群时间同步

安装Ntp

yum install -y ntp

修改时区

cat > /etc/sysconfig/clock << EOF
ZONE="Asia/Shanghai"
UTC=true
ARC=false
EOF

覆盖系统时间文件

cp -a /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

备份配置文件

test -f /etc/ntp.conf.bak || cp /etc/ntp.conf /etc/ntp.conf.bak
sed -r -i -n -e '/(^[ \t]*#|^[ \t]*$)/d;p' /etc/ntp.conf
cat /etc/ntp.conf

修改配置文件

cat > /etc/ntp.conf <<EOF
driftfile /var/lib/ntp/drift
restrict default kod nomodify notrap nopeer noquery
restrict -6 default kod nomodify notrap nopeer noquery
restrict 127.0.0.1 
restrict -6 ::1
restrict 192.168.0.0 mask 255.255.255.0 nomodify notrap
server ntp.api.bz prefer    // prefer优先使用
server 1.cn.pool.ntp.org
server 2.cn.pool.ntp.org 
logfile /var/log/ntp.log
includefile /etc/ntp/crypto/pw
keys /etc/ntp/keys
EOF
cat /etc/ntp.conf

开启同步更新hwclock

cat > /etc/sysconfig/ntpd <<EOF
# Drop root to id 'ntp:ntp' by default.
OPTIONS="-u ntp:ntp -p /var/run/ntpd.pid -g"
SYNC_HWCLOCK=yes
EOF

启动ntp服务

service ntpd start

重启ntp服务

service ntpd restart

开机启动ntp服务

chkconfig ntpd on


四、实现ssh互信

各slave 节点也需要配置

cat > ~/hosts.txt<<EOF
root@master a123456!
root@slave1 a123456!
root@slave2 a123456!
EOF
rpm -qa | grep expect || yum install expect -y
cat ~/hosts.txt | while read var_host; do
var_host_name=`echo "${var_host}" | awk '{print $1}'` && echo "${var_host_name}"
var_host_password=`echo "${var_host}" | awk '{print $2}'` && echo "${var_host_password}"
/usr/bin/expect <<END
spawn ssh-copy-id ${var_host_name}
expect {
"*(yes/no)?" {send "yes\r";exp_continue}
"*password:" {send "${var_host_password}\r";exp_continue}
expect eof
}
END
ssh ${var_host_name} <<END
sed -r -i -e '/^[ \t]*#[ \t]* ForwardAgent /c ForwardAgent yes' /etc/ssh/ssh_config
service sshd reload
END
done

五、关闭防火墙和selinux


六、安装JDK

下载jdk

cd /usr/local/src/
下载页面 http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
官网下载链接有时效性,需要自己到官网获取新的下载地址
wget http://download.oracle.com/otn-pub/java/jdk/8u131-b11/d54c1d3a095b4ff2b6607d096fa80163/jdk-8u131-linux-x64.tar.gz

解压

tar zxvf jdk-8u131-linux-x64.tar.gz -C /usr/local/
cd /usr/local
mv jdk-8u131-linux-x64 java

配置环境变量

##添加如下内容:JAVA_HOME根据实际目录来
cat >> /etc/profile <<EOF
JAVA_HOME=/usr/local/java
CLASSPATH=${JAVA_HOME}/lib/
PATH=$PATH:${JAVA_HOME}/bin
export PATH JAVA_HOME CLASSPAT
EOF
source /etc/profile
java -version  ##查看安装情况

七、安装Hadoop

下载Hdaoop

cd /usr/local/src/
wget http://apache.fayea.com/hadoop/common/hadoop-2.7.3/hadoop-2.7.3.tar.gz

解压

tar -zxvf hadoop-2.7.3.tar.gz -C /usr/local/
cd /usr/local/
mv hadoop-2.7.3 hadoop273
groupadd hadoop
useradd -g hadoop hadoop -s /sbin/nologin
chown -R hadoop:hadoop /usr/local/hadoop273
mkdir -p /usr/local/hadoop273/hdfs/name
mkdir -p /usr/local/hadoop273/hdfs/data

添加环境变

HADOOP_HOME=/usr/local/hadoop273
cat >> /etc/profile <<EOF
export HADOOP_HOME=${HADOOP_HOME}
export PATH=${HADOOP_HOME}/bin:${HADOOP_HOME}/sbin:${PATH}
export HADOOP_MAPARED_HOME=${HADOOP_HOME}
export HADOOP_COMMON_HOME=${HADOOP_HOME}
export HADOOP_HDFS_HOME=${HADOOP_HOME}
export HADOOP_YARN_HOME=${HADOOP_HOME}
export YARN_HOME=${HADOOP_HOME}
export YARN_CONF_DIR=${HADOOP_HOME}/etc/hadoop
export HADOOP_CONF_DIR=${HADOOP_HOME}/etc/hadoop
export HDFS_CONF_DIR=${HADOOP_HOME}/etc/hadoop
export LD_LIBRARY_PATH=${HADOOP_HOME}/lib/native/:$LD_LIBRARY_PATH
export HADOOP_COMMON_LIB_NATIVE_DIR=${HADOOP_HOME}/lib/native
export HADOOP_OPTS="-Djava.library.path=${HADOOP_HOME}/lib/native"
EOF
source /etc/profile
cd $HADOOP_HOME/etc/hadoop
cat >> slaves <<EOF
##添加主机名
slave1
slave2
EOF

vim hadoop-env.sh
##修改JAVA环境变量

export JAVA_HOME=/usr/local/java
source /usr/local/hadoop273/etc/hadoop/hadoop-env.sh

备份配置文件

test -f core-site.xml.bak || cp core-site.xml core-site.xml.bak
test -f hdfs-site.xml.bak || cp hdfs-site.xml hdfs-site.xml.bak
test -f mapred-site.xml.bak || cp mapred-site.xml mapred-site.xml.bak

配置文件修改:
cd /usr/local/hadoop273/etc/hadoop

① core-site.xml

cat > core-site.xml <<EOF
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!--
  Licensed under the Apache License, Version 2.0 (the "License");
  you may not use this file except in compliance with the License.
  You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License. See accompanying LICENSE file.
-->

<!-- Put site-specific property overrides in this file. -->

<configuration>
<property>
  <name>fs.default.name</name>
  <value>hdfs://master:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/local/hadoop273/hadoop_tmp</value>
</property>
<property>
<name>hadoop.proxyuser.root.hosts</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.root.groups</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.sqoop2.hosts</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.sqoop2.groups</name>
<value>*</value>
</property>
</configuration>
EOF

② hdfs-site.xml

cat > hdfs-site.xml <<EOF
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!--
  Licensed under the Apache License, Version 2.0 (the "License");
  you may not use this file except in compliance with the License.
  You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License. See accompanying LICENSE file.
-->

<!-- Put site-specific property overrides in this file. -->

<configuration>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>master:9001</value>
</property>
<property>
   <name>dfs.replication</name>
   <value>1</value>
</property>
<property>
  <name>dfs.tmp.dir</name>
  <value>/usr/local/hadoop273/hadoop_tmp</value>
</property>
<property>
   <name>dfs.namenode.name.dir</name>
   <value>file:/usr/local/hadoop273/hdfs/name</value>
</property>
<property>
    <name>dfs.datanode.data.dir</name>
    <value>file:/usr/local/hadoop273/hdfs/data</value>
</property>
<property>
    <name>dfs.permissions</name>
    <value>false</value>
</property>
<property>
    <name>dfs.webhdfs.enabled</name>
    <value>true</value>
</property>
<property>
<name>dfs.datanode.max.xcievers</name>
<value>4096</value>
</property>
</configuration>
EOF

③ mapred-site.xml
(注:若没有mapred-site.xml,则需要将mapred-site.xml.template改为mapred-site.xml,并设置hadoop为属主属组)

cat > mapred-site.xml <<EOF
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!--
  Licensed under the Apache License, Version 2.0 (the "License");
  you may not use this file except in compliance with the License.
  You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License. See accompanying LICENSE file.
-->

<!-- Put site-specific property overrides in this file. -->

<configuration>
<property> 
<name>mapreduce.framework.name</name> 
<value>yarn</value> 
</property>
<property>
<name>mapreduce.application.classpath</name>
<value>/usr/local/hadoop273/etc/hadoop,/usr/local/hadoop273/share/hadoop/common/*,/usr/local/hadoop273/share/hadoop/common/lib/*,/usr/local/hadoop273/share/hadoop/hdfs/*,/usr/local/hadoop273/share/hadoop/hdfs/lib/*,/usr/local/hadoop273/share/hadoop/mapreduce/*,/usr/local/hadoop273/share/hadoop/mapreduce/lib/*,/usr/local/hadoop273/share/hadoop/yarn/*,/usr/local/hadoop273/share/hadoop/yarn/lib/*</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>
<property>
<name>mapreduce.map.memory.mb</name>
<value>1536</value>
</property>
<property>
<name>mapreduce.map.java.opts</name>
<value>-Xmx3072M</value>
</property>
<property>
<name>mapreduce.reduce.memory.mb</name>
<value>3072</value>
</property>
<property>
<name>mapreduce.reduce.java.opts</name>
<value>-Xmx6144M</value>
</property>
<property>
<name>mapreduce.cluster.map.memory.mb</name>
<value>-1</value>
</property>
<property>
<name>mapreduce.cluster.reduce.memory.mb</name>
<value>-1</value>
</property>
</configuration>
EOF

④ yarn-site.xml

cat > yarn-site.xml <<EOF
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!--
  Licensed under the Apache License, Version 2.0 (the "License");
  you may not use this file except in compliance with the License.
  You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License. See accompanying LICENSE file.
-->

<!-- Put site-specific property overrides in this file. -->

<configuration>

<!-- Site specific YARN configuration properties -->
<property>
<name>yarn.resourcemanager.address</name>
<value>master:8032</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>master:8030</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>master:8031</value>
</property>   
<property>
<name>yarn.resourcemanager.admin.address</name>
<value>master:8033</value>
</property>   
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>master:8088</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>
<property>
<name>mapreduce.application.classpath</name>
<value>/usr/local/hadoop273/etc/hadoop,/usr/local/hadoop273/share/hadoop/common/*,/usr/local/hadoop273/share/hadoop/common/lib/*,/usr/local/hadoop273/share/hadoop/hdfs/*,/usr/local/hadoop273/share/hadoop/hdfs/lib/*,/usr/local/hadoop273/share/hadoop/mapreduce/*,/usr/local/hadoop273/share/hadoop/mapreduce/lib/*,/usr/local/hadoop273/share/hadoop/yarn/*,/usr/local/hadoop273/share/hadoop/yarn/lib/*</value>
</property> 
<property>
<name>yarn.nodemanager.vmem-pmem-ratio</name>
<value>3</value>
</property>
</configuration>
EOF

八、slave主机配置

将java文件夹、环境变量文件、hadoop文件夹传到slave节点上,保证slave节点上的hadoop用户拥有hadoop文件夹权限:

scp -r /usr/local/hadoop273 root@slave1:/usr/local/
scp /etc/profile root@slave1:/etc/
scp /etc/hosts root@slave1:/etc/
scp -r /usr/local/java root@slave1:/usr/local/

格式化namenode
cd /usr/local/hadoop273
bin/hdfs namenode -format

启动dfs和yarn
sbin/start-dfs.sh

sbin/start-yarn.sh
或 直接sbin/start-all.sh都启动

启动history服务,不然在面板中不能打开history链接
sbin/mr-jobhistory-daemon.sh start historyserver

停止集群
sbin/stop-all.sh

使用jps命令查看启动进程:
4504 ResourceManager
4066 DataNode
4761 NodeManager
5068 JobHistoryServer
4357 SecondaryNameNode
3833 NameNode
5127 Jps

http://192.168.100.11:8088/cluster 访问Hadoop

http://192.168.100.11:50070/

相关文章

网友评论

    本文标题:hadoop 完全分布式部署

    本文链接:https://www.haomeiwen.com/subject/likafxtx.html