173.实战大数据一

发表于 linux 分类,标签:
1.建用户
[root@192 ~]# groupadd hadoop
[root@192 ~]# useradd -g hadoop hadoop
配置sudo权限
[root@192 ~]# visudo
增加
hadoop        ALL=(ALL)       NOPASSWD: ALL

2.修改主机名
临时
sudo hostname hadoop01
永久
hostnamectl set-hostname hadoop01

3.关闭防火墙
[root@hadoop01 ~]# systemctl stop firewalld
[root@hadoop01 ~]# systemctl disable firewalld

4.安装openssh服务
[root@hadoop01 ~]# yum -y install openssh-clients

5.配置hosts
192.168.2.30 hadoop01
192.168.2.31 hadoop02
192.168.2.32 hadoop03

6.免密登录
su - hadoop
[hadoop@hadoop01 .ssh]$ ssh-keygen -t rsa
[hadoop@hadoop01 .ssh]$ cp id_rsa.pub authorized_keys

[hadoop@hadoop01 .ssh]$ chmod 700 /home/hadoop/.ssh/
[hadoop@hadoop01 .ssh]$ chmod 600 /home/hadoop/.ssh/*
[hadoop@hadoop01 .ssh]$ ssh-copy-id  -i  /home/hadoop/.ssh/id_rsa.pub hadoop@192.168.2.32

7.统一时区
[root@hadoop01 ~]# cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
[root@hadoop01 ~]# yum -y install ntp
[root@hadoop02 ~]# ntpdate pool.ntp.org

9.编写配置文件
[hadoop@hadoop01 ~]$ mkdir tools

deploy.conf 
#规划集群角色
hadoop01,master,all,zookeeper,namenode,datanode,
hadoop02,slave,all,zookeeper,namenode,datanode,
hadoop03,slave,all,zookeeper,datanode,

vim deploy.sh
#!/bin/bash
if [ $# -lt 3 ]
then
  echo "Usage: ./deploy.sh srcFile(or Dir) descFile(or Dir) MachineTag"
  echo "Usage: ./deploy.sh srcFile(or Dir) descFile(or Dir) MachineTag confFile"
fi
src=$1
dest=$2
tag=$3
if [ 'a'$4'a' == 'aa' ]
then
  confFile=/home/hadoop/tools/deploy.conf
else
  confFile=$4
fi
if [ -f $confFile ]
then
  if [ -f $src ]
  then
    for server in `cat $confFile | grep -v '^#' | grep ','$tag','|awk -F',' '{print $1}'`
    do
      scp $src $server":"${dest}
    done
  elif [ -d $src ]
  then
    for server in `cat $confFile | grep -v '^#' | grep ','$tag','|awk -F',' '{print $1}'`
    do
      scp -r $src $server":"${dest}
    done
  else
    echo "Error: No source file exist"
  fi
else
  echo "Error: Please assign config file or run deploy.sh command with deploy.conf in same directory"
fi

vim runRemoteCmd.sh
#!/bin/bash
if [ $# -lt 2 ]
then
  echo "Usage: ./runRemoteCmd.sh Command MachineTag"
  echo "Usage: ./runRemoteCmd.sh Command MachineTag confFile"
  exit
fi
cmd=$1
tag=$2
if [ 'a'$3'a' == 'aa' ]
then
  confFile=/home/hadoop/tools/deploy.conf
else
  confFile=$3
fi
if [ -f $confFile ]
then
  for server in `cat $confFile | grep -v '^#' | grep ','$tag','|awk -F',' '{print $1}'`
  do
    echo "***********$server*************"
    ssh $server "source ~/.bashrc;$cmd"
  done
else
  echo "Error: Please assign config file or run deploy.sh command with deploy.conf in same directory"
fi

10.建目录
[hadoop@hadoop01 tools]$ ./runRemoteCmd.sh "mkdir /home/hadoop/data" all
[hadoop@hadoop01 app]$ tar -zxvf jdk-8u51-linux-x64.tar.gz
ln -s jdk1.8.0_51  jdk

vim /etc/profile    全部用户
vim ~/.bashrc    本用户
JAVA_HOME=/home/hadoop/app/jdk
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
PATH=$JAVA_HOME/bin:/home/hadoop/tools:$PATH
export JAVA_HOME CLASSPATH  PATH

source ~/.bashrc

11.配置zookeeeper
[hadoop@hadoop01 ]$ tar -zxvf zookeeper-3.4.5-cdh5.10.0.tar.gz
[hadoop@hadoop01 ]$ ln -s zookeeper-3.4.5-cdh5.10.0 zookeeper
修改配置文件添加到/home/hadoop/app/zookeeper/conf
zoo.cfg

[hadoop@hadoop01 ]$ cd zookeeper/conf
[hadoop@hadoop01 ]$ mkdir -p /home/hadoop/data/zookeeper/zkdata
[hadoop@hadoop01 ]$ cd /home/hadoop/data/zookeeper/zkdata/
[hadoop@hadoop01 ]$ vim myid
1,2,3

12.启动zookeeper
[hadoop@hadoop01 conf]$ mkdir  -p /home/hadoop/data/zookeeper/zkdata
[hadoop@hadoop01 conf]$ mkdir  -p /home/hadoop/data/zookeeper/zkdatalog
/home/hadoop/tools/runRemoteCmd.sh "/home/hadoop/app/zookeeper/bin/zkServer.sh start" all
/home/hadoop/tools/runRemoteCmd.sh "jps" all
/home/hadoop/tools/runRemoteCmd.sh "/home/hadoop/app/zookeeper/bin/zkServer.sh status" all

13.配置hadoop
[hadoop@hadoop01 app]$ tar -zxvf hadoop-2.6.0-cdh5.10.0.tar.gz
[hadoop@hadoop01 app]$ ln -s hadoop-2.6.0-cdh5.10.0 hadoop
修改配置文件复制到/home/hadoop/app/hadoop/etc/hadoop
core-site.xml
hadoop-env.sh
hdfs-site.xml
slaves
同步至其他两台服务器
[hadoop@hadoop01 tools]$ deploy.sh ../app/hadoop-2.6.0-cdh5.10.0 /home/hadoop/app/ slave

14.启动
./runRemoteCmd.sh "/home/hadoop/app/hadoop-2.6.0-cdh5.10.0/sbin/hadoop-daemon.sh start journalnode" all
nn1节点格式化namenode
[hadoop@hadoop01 hadoop]$ bin/hdfs namenode -format
nn1节点格式化zkfc
bin/hdfs zkfc -formatZK
nn1节点启动namenode
bin/hdfs namenode

nn2节点nn1节点元数据信息
bin/hdfs namenode-bootstarpStandby
关闭所有节点的journalnode
./runRemoteCmd.sh "/home/hadoop/app/hadoop-2.6.0-cdh5.10.0/sbin/hadoop-daemon.sh stop journalnode" all

15.启动hdfs
[hadoop@hadoop02 dfs]$ mkdir /home/hadoop/data/tmp/dfs/name
[hadoop@hadoop01 hadoop]$ sbin/start-dfs.sh
[hadoop@hadoop01 hadoop]$ sbin/stop-dfs.sh
查看状态
bin/hdfs haadmin -getServiceState nn1
bin/hdfs haadmin -getServiceState nn2

192.168.2.30:50070

16.测试
创建文件夹
[hadoop@hadoop01 hadoop]$ bin/hdfs dfs -mkdir /test
查看文件夹
[hadoop@hadoop01 hadoop]$ bin/hdfs dfs -ls /
导入,要写入东西
[hadoop@hadoop01 hadoop]$ bin/hdfs dfs -put wd.txt /test
查看
[hadoop@hadoop01 hadoop]$ bin/hdfs dfs -cat /test/wd.txt

测试停止namenode
sbin/hadoop-daemon.sh stop namenode
启动namenode
sbin/hadoop-daemon.sh start namenode


0 篇评论

发表我的评论