当前位置:   article > 正文

Linux大数据平台搭建master、slave1、slave2_linux配置ip为master

linux配置ip为master

实验采用的刚装好的三台虚拟机,名字分别为master、slave1、slave2.

用到的软件如下:

一、前期操作

1、启动网卡:(三台机器)

修改配置文件:

vi /etc/sysconfig/network-scripts/ifcfg-ens33

将ONBOOT=no改为ONBOOT=yes,esc、:wq 保存退出

重启网卡:

sudo service network restart

ipaddr 或 ifconfig查看ip地址

使用xshell软件远程连接电脑

2、上传相关软件(master)

创建安装包目录 mkdir /opt/soft

使用ftp工具上传软件,这里使用的是Xftp

3、修改主机名(三台机器)

以master为例

hostnamectl set-hostname master

永久修改主机名 修改network相关参数

vi /etc/sysconfig/network
  1. NETWORKING=yes
  2. HOSTNAME=master

下载相关工具

yum install -y net-tool

重启计算机:reboot

查看是否生效:hostname

4、配置hosts文件(三台机器)

vi /etc/hosts

内容如下:(ip地址视具体电脑的ip而定,使用ipaddr或ifconfig命令查看)

  1. 192.168.72.131 master
  2. 192.168.72.132 slave1
  3. 192.168.72.132 slave2

其余两台机器相同操作

5、关闭防火墙(三台机器)

关闭防火墙:

systemctl stop firewalld

禁止开机启动:

systemctl disable firewalld

查看状态:

  1. systemctl status firewalld
  2. #或
  3. firewall-cmd --state

6、时间同步

使用date命令查看机器当前时间

选择时区:tzselect  依次选择 亚洲 中国 北京时间 是否覆盖

5Asia->9China->1Beijing Time->1Yes

下载ntp(三台机器)

yum install -y ntp

修改ntp配置文件(master)

vi /etc/ntp.conf

末尾添加内容如下 

  1. service 127.127.1.0 #local clock
  2. fudge 127.127.1.0 stratum 10 #stratum设置为其他值也可以,范围0~15

重启ntp服务:

/bin/systemctl restart ntpd.service

其他两台机器使用命令ntpdate master同步该master服务器时间

ntpdate master

7、配置ssh免密

产生公钥秘钥(三台机器)

ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa

进入目录查看:id_dsa为私钥,id_dsa.pub为公钥

cd .ssh/

在.ssh/路径下操作,将公钥文件复制成authorized_keys文件(master)

cat id_dsa.pub >> authorized_keys

使用ssh master命令连接自己,也叫做ssh内回环

使用exit退出

让主节点能够通过ssh免密登录子节点

复制mater公钥文件到.ssh/目录且重命名为master_dsa.pub(slave1)

scp master:~/.ssh/id_dsa.pub ./master_dsa.pub

.ssh/路径下将mater节点的公钥文件追加到authorized_keys中(slave1)

cat master_dsa.pub >> authorized_keys

这是master就可以免密登录slave1了。

在slave2中按照在slave1操作执行即可。

二、软件安装

1、JDK的安装(三台机器)

建立工作路径并解压JDK

mkdir -p /usr/java
tar -zxvf /opt/soft/jdk-8u171-linux-x64.tar.gz -C /usr/java/

修改环境变量:

vi /etc/profile

添加内容如下: 

  1. #jdk
  2. export JAVA_HOME=/usr/java/jdk1.8.0_171
  3. export CLASSPATH=$JAVA_HOME/lib
  4. export PATH=$PATH:$JAVA_HOME/bin
  5. export PATH JAVA_HOME CLASSPATH

生效环境变量:

source /etc/profile

查看java版本:

java -version

将master中的JDK复制到slave1、slave2中(保证slave1、slave2中已有相应目录)

scp -r /usr/java/jdk1.8.0_171/ slave1:/usr/java/
scp -r /usr/java/jdk1.8.0_171/ slave2:/usr/java/

2、zookeeper的安装(三台机器)

修改hosts文件(三台机器)可以在之前就设置好

  1. 192.168.72.131 master master.root
  2. 192.168.72.132 slave1 slave1.root
  3. 192.168.72.133 slave2 slave2.root

创建zookeeper工作目录并解压软件包(master):

 mkdir -p /usr/zookeeper
tar -zxvf /opt/soft/zookeeper-3.4.10.tar.gz -C /usr/zookeeper/

配置文件conf/zoo.cfg:进入zookeeper-3.4.10/conf目录,将zoo_sample.cfg拷贝一份并命名为zoo.cfg

scp zoo_sample.cfg zoo.cfg

修改zoo.cfg:

  1. tickTime=2000
  2. initLimit=10
  3. syncLimit=5
  4. dataDir=/usr/zookeeper/zookeeper-3.4.10/zkdata #需要修改
  5. clientPort=2181
  6. #以下信息需要添加
  7. dataLogDir=/usr/zookeeper/zookeeper-3.4.10/zkdatalog
  8. server.1=master:2888:3888
  9. server.2=slave1:2888:3888
  10. server.3=slave2:2888:3888

创建配置文件中的两个目录,zookeeper-3.4.10目录下

mkdir zkdata
mkdir zkdatalog

进入zkdata文件夹,创建文件myid 输入zoo.cfg文件中server后面的数字,比如master中就填入1

cd zkdata
vi myid

远程分发安装文件到子节点:

scp -r /usr/zookeeper root@slave1:/usr/
scp -r /usr/zookeeper root@slave2:/usr/

修改myid文件,slave1中为2,slave2中为3(slave1和slave2中)

vi /usr/zookeeper/zookeeper-3.4.10/zkdata/myid

配置环境变量:(三台机器)

  1. #zookeeper
  2. export ZOOKEEPER_HOME=/usr/zookeeper/zookeeper-3.4.10
  3. PATH=$PATH:$ZOOKEEPER_HOME/bin

source /etc/profile生效

启动zookeeper集群(三台机器)

启动:

/usr/zookeeper/zookeeper-3.4.10/bin/zkServer.sh start

查看状态:

/usr/zookeeper/zookeeper-3.4.10/bin/zkServer.sh status

jps查看进程:进程名:QuorumPeerMain

3、Hadoop的安装

创建工作目录并解压软件包到相应目录:(master)

mkdir /usr/hadoop
tar -zxvf /opt/soft/hadoop-2.7.3.tar.gz -C /usr/hadoop/

配置环境变量:

  1. #hadoop
  2. export HADOOP_HOME=/usr/hadoop/hadoop-2.7.3
  3. export CLASSPATH=$CLASSPATH:$HADOOP_HOME/lib
  4. export PATH=$PATH:$HADOOP_HOME/bin

source /etc/profile生效文件

编辑hadoop环境配置文件hadoop-env.sh

修改export JAVA_HOME=

 vi /usr/hadoop/hadoop-2.7.3/etc/hadoop/hadoop-env.sh
export JAVA_HOME=/usr/java/jdk1.8.0_171

编辑core-site.xml文件

vi /usr/hadoop/hadoop-2.7.3/etc/hadoop/core-site.xml
  1. <configuration>
  2. <property>
  3. <name>fs.default.name</name>
  4. <value>hdfs://master:9000</value>
  5. </property>
  6. <property>
  7. <name>hadoop.tmp.dir</name>
  8. <value>/usr/hadoop/hadoop-2.7.3/hdfs/tmp</value>
  9. <description></description>
  10. </property>
  11. <property>
  12. <name>io.file.buff.size</name>
  13. <value>131072</value>
  14. </property>
  15. <property>
  16. <name>fs.checkpoint.period</name>
  17. <value>60</value>
  18. </property>
  19. <property>
  20. <name>fs.checkpoint.size</name>
  21. <value>67108864</value>
  22. </property>
  23. </configuration>

编辑yarn-site.xml文件

vi /usr/hadoop/hadoop-2.7.3/etc/hadoop/yarn-site.xml
  1. <configuration>
  2. <property>
  3. <name>yarn.resourcemanager.address</name>
  4. <value>master:18040</value>
  5. </property>
  6. <property>
  7. <name>yarn.resourcemanager.scheduler.address</name>
  8. <value>master:18030</value>
  9. </property>
  10. <property>
  11. <name>yarn.resourcemanager.webapp.address</name>
  12. <value>master:18088</value>
  13. </property>
  14. <property>
  15. <name>yarn.resourcemanager.resource-tracker.address</name>
  16. <value>master:18025</value>
  17. </property>
  18. <property>
  19. <name>yarn.resourcemanager.admin.address</name>
  20. <value>master:18141</value>
  21. </property>
  22. <property>
  23. <name>yarn.nodename.aux-services</name>
  24. <value>mapreduce_shuffle</value>
  25. </property>
  26. <property>
  27. <name>yarn.nodename.auxservices.mapreduce.shuffle.class</name>
  28. <value>org.apache.hadoop.mapred.ShuffleHandler</value>
  29. </property>
  30. </configuration>

编辑hdfs-site.xml文件

vi /usr/hadoop/hadoop-2.7.3/etc/hadoop/hdfs-site.xml 
  1. <configuration>
  2. <property>
  3. <name>dfs.replication</name>
  4. <value>2</value>
  5. </property>
  6. <property>
  7. <name>dfs.namenode.name.dir</name>
  8. <value>file:/usr/hadoop/hadoop-2.7.3/hdfs/name</value>
  9. <final>true</final>
  10. </property>
  11. <property>
  12. <name>dfs.datanode.name.dir</name>
  13. <value>file:/usr/hadoop/hadoop-2.7.3/hdfs/data</value>
  14. <final>true</final>
  15. </property>
  16. <property>
  17. <name>dfs.namenode.secondary.http-address</name>
  18. <value>master:9001</value>
  19. </property>
  20. <property>
  21. <name>dfs.webhdfs.enabled</name>
  22. <value>true</value>
  23. </property>
  24. <property>
  25. <name>dfs.permissions</name>
  26. <value>false</value>
  27. </property>
  28. </configuration>

编辑mapred-site.xml(没有这个文件,需要将mapred-site.xml.template复制成mapred-site.xml)

cp /usr/hadoop/hadoop-2.7.3/etc/hadoop/mapred-site.xml.template /usr/hadoop/hadoop-2.7.3/etc/hadoop/mapred-site.xml
vi /usr/hadoop/hadoop-2.7.3/etc/hadoop/mapred-site.xml
  1. <configuration>
  2. <property>
  3. <!-- 指定MapReduce运行在yarn上 -->
  4. <name>mapreduce.framework.name</name>
  5. <value>yarn</value>
  6. </property>
  7. </configuration>

编写slaves文件,添加子节点

vi /usr/hadoop/hadoop-2.7.3/etc/hadoop/slaves
  1. slave1
  2. slave2

编写master文件,添加主节点

vi /usr/hadoop/hadoop-2.7.3/etc/hadoop/master
master

分发hadoop(master)

scp -r /usr/hadoop/ root@slave1:/usr/
scp -r /usr/hadoop/ root@slave2:/usr/

子节点配置环境变量(slave1、slave2)

  1. #hadoop
  2. export HADOOP_HOME=/usr/hadoop/hadoop-2.7.3
  3. export CLASSPATH=$CLASSPATH:$HADOOP_HOME/lib
  4. export PATH=$PATH:$HADOOP_HOME/bin

master中格式化hadoop(/usr/hadoop/hadoop-2.7.3/etc/hadoop目录下)

hadoop namenode -format

master中开启集群,仅在master中开启操作命令,会带起从节点的启动

/usr/hadoop/hadoop-2.7.3/sbin/start-all.sh

jps查看进程,

master中的SecondaryNameNode、ResourceManager、NameNode

slave1、slave2中的进程:DataNode、NodeManager

浏览器输入masterIp:50070访问集群WebUI,比如:192.168.72.131:50070

查看hdfs

查看根目录文件:hadoop fs -ls /

在hdfs上创建文件夹data:hadoop fs -mkdir /data

再次查看会有创建的文件夹:hadoop fs -ls /

在web中查看的方式:Utilities->Browse the file system

4、hbase的安装

建立工作路径:

mkdir -p /usr/hbase

解压软件包:

tar -zxvf /opt/soft/hbase-1.2.4-bin.tar.gz -C /usr/hbase/

修改配置文件hbase-env.sh

vi /usr/hbase/hbase-1.2.4/conf/hbase-env.sh
  1. # Set environment variables here.
  2. export HBASE_MANAGES_ZK=false
  3. # The java implementation to use. Java 1.7+ required.
  4. export JAVA_HOME=/usr/java/jdk1.8.0_171
  5. # Extra Java CLASSPATH elements. Optional.
  6. export HBASE_CLASSPATH=/usr/hadoop/hadoop-2.7.3/etc/hadoop

配置hbase-site.xml

vi /usr/hbase/hbase-1.2.4/conf/hbase-site.xml
  1. <configuration>
  2. <property>
  3. <name>hbase.rootdir</name>
  4. <value>hdfs://master:9000/hbase</value>
  5. </property>
  6. <property>
  7. <name>hbase.cluster.distributed</name>
  8. <value>true</value>
  9. </property>
  10. <property>
  11. <name>hbase.master</name>
  12. <value>hdfs://master:6000</value>
  13. </property>
  14. <property>
  15. <name>hbase.zookeeper.quorum</name>
  16. <value>master,slave1,slave2</value>
  17. </property>
  18. <property>
  19. <name>hbase.zookeeper.property.dataDir</name>
  20. <value>/usr/zookeeper/zookeeper-3.4.10</value>
  21. </property>
  22. </configuration>

配置regionservers:这里列出了希望运行的HRegionServer,一行写一个host。列在这里的server会随着集群的启动而启动,集群的停止而停止。

vi /usr/hbase/hbase-1.2.4/conf/regionservers 
  1. slave1
  2. slave2

将hadoop配置文件拷入hbase的conf目录下(当前位置为hbase的conf文件夹),注意后面的点

  1. cp /usr/hadoop/hadoop-2.7.3/etc/hadoop/hdfs-site.xml .
  2. cp /usr/hadoop/hadoop-2.7.3/etc/hadoop/core-site.xml .

分发hbase(master)

  1. scp -r /usr/hbase root@slave1:/usr/
  2. scp -r /usr/hbase root@slave2:/usr/

配置环境变量(三台机器)

  1. #hbase
  2. export HBASE_HOME=/usr/hbase/hbase-1.2.4
  3. export PATH=$PATH:$HBASE_HOME/bin

运行和测试(在master上执行,保证hadoop和zookeeper已开启)

/usr/hbase/hbase-1.2.4/bin/start-hbase.sh 

相关进程:

master:HMaster

slave:HRegionServer

访问master的hbase web界面:http://masterIP:16010/master-status

例如:http://192.168.72.131:16010/master-status

进入hbase交互界面,查看状态与版本信息等

  1. [root@master ~]# hbase shell
  2. hbase(main):002:0> status
  3. 1 active master, 0 backup masters, 2 servers, 0 dead, 1.0000 average load
  4. hbase(main):003:0> version
  5. 1.2.4, r67592f3d062743907f8c5ae00dbbe1ae4f69e5af, Tue Oct 25 18:10:20 CDT 2016
  6. hbase(main):004:0> exit
  7. [root@master ~]#

三、构建数据仓库

1、slave2中安装mysql server

安装EPEL源:

yum -y install epel-release

安装mysql server包,下载源安装包(如果没有wget需要下载wget)

yum install -y wget
wget http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm

安装源:

rpm -ivh mysql57-community-release-el7-8.noarch.rpm 

查看是否有包:mysql-community.repo、mysql-community-source.repo

  1. cd /etc/yum.repos.d
  2. ll

安装MySQL:

yum install -y mysql-community-server

启动服务:

                 重置所有修改过的配置文件:

systemctl daemon-reload

                 开启服务:

systemctl start mysqld

                 开机自启:

systemctl enable mysqld

获取初始密码:

grep 'temporary password' /var/log/mysqld.log

登录MySQL:

mysql -u root -p

修改MySQL密码安全策略:

设置密码强度为低级:

  1. mysql> set global validate_password_policy=0;
  2. Query OK, 0 rows affected (0.00 sec)

设置密码长度:

  1. mysql> set global validate_password_length=4;
  2. Query OK, 0 rows affected (0.00 sec)

修改本地密码:

  1. mysql> alter user 'root'@'localhost' identified by '123456';
  2. Query OK, 0 rows affected (0.01 sec)

使用\q或exit退出mysql

设置远程登录:

用新密码登录mysql:mysql -u root -p

创建用户:

  1. mysql> create user 'root'@'%' identified by '123456';
  2. Query OK, 0 rows affected (0.00 sec)

允许远程连接:

  1. mysql> grant all privileges on *.* to 'root'@'%' with grant option;
  2. Query OK, 0 rows affected (0.00 sec)

刷新权限:

  1. mysql> flush privileges;
  2. Query OK, 0 rows affected (0.00 sec)

2、安装hive(master、slave1)

master和slave1中建立工作目录:

mkdir -p /usr/hive

master中解压安装包:

tar -zxvf /opt/soft/apache-hive-2.1.1-bin.tar.gz -C /usr/hive

master远程复制解压文件到slave1中:

scp -r /usr/hive/apache-hive-2.1.1-bin root@slave1:/usr/hive

设置环境变量(master、slave1):

  1. #hive
  2. export HIVE_HOME=/usr/hive/apache-hive-2.1.1-bin
  3. export PATH=$PATH:$HIVE_HOME/bin

因为服务器端需要和mysql通信,所以需要mysql的lib安装包到HIVE_HOME/conf目录下(master)

复制到slave2中:

scp /opt/soft/mysql-connector-java-5.1.5-bin.jar root@slave2:/lib

复制到slave1中:

scp /opt/soft/mysql-connector-java-5.1.5-bin.jar root@slave1:/usr/hive/apache-hive-2.1.1-bin/lib

修改hive-env.sh中HADOOP_HOME:(salve1)

复制conf下的hive-env.sh.template并重命名为hive-env.sh

cp /usr/hive/apache-hive-2.1.1-bin/conf/hive-env.sh.template /usr/hive/apache-hive-2.1.1-bin/conf/hive-env.sh

编辑HADOOP_HOME

vi /usr/hive/apache-hive-2.1.1-bin/conf/hive-env.sh
HADOOP_HOME=/usr/hadoop/hadoop-2.7.3

修改hive-site.xml(slave1 conf文件夹新建)(slave1)

vi /usr/hive/apache-hive-2.1.1-bin/conf/hive-site.xml
  1. <configuration>
  2. <property>
  3. <name>hive.metastore.warehouse.dir</name>
  4. <value>/user/hive_remote/warehouse</value>
  5. </property>
  6. <property>
  7. <name>javax.jdo.option.ConnectionURL</name>
  8. <value>
  9. jdbc:mysql://slave2:3306/hive?createDatabaseIfNotExist=true
  10. </value>
  11. </property>
  12. <property>
  13. <name>javax.jdo.option.ConnectionDriverName</name>
  14. <value>com.mysql.jdbc.Driver</value>
  15. </property>
  16. <property>
  17. <name>javax.jdo.option.ConnectionUserName</name>
  18. <value>root</value>
  19. </property>
  20. <property>
  21. <name>javax.jdo.option.ConnectionPassword</name>
  22. <value>123456</value>
  23. </property>
  24. <property>
  25. <name>hive.metastore.schema.verification</name>
  26. <value>false</value>
  27. </property>
  28. <property>
  29. <name>datanucleus.schme,autoCreateAll</name>
  30. <value>true</value>
  31. </property>
  32. </configuration>

Master作为客户端

解决版本冲突和 jar 包依赖问题。 由于客户端需要和 Hadoop 通信,所以需要更改 Hadoop 中 jline 的版本。即 保留一个高版本的 jline jar 包,从 hive 的 lib 包中拷贝到 Hadoop 中 lib 位置

(master和slave1)

cp /usr/hive/apache-hive-2.1.1-bin/lib/jline-2.12.jar /usr/hadoop/hadoop-2.7.3/share/hadoop/yarn/lib/

master中修改hive-env.sh(复制模板文件并重命名)

cp /usr/hive/apache-hive-2.1.1-bin/conf/hive-env.sh.template /usr/hive/apache-hive-2.1.1-bin/conf/hive-env.sh
vi /usr/hive/apache-hive-2.1.1-bin/conf/hive-env.sh
HADOOP_HOME=/usr/hadoop/hadoop-2.7.3

master中修改hive-site.xml(master conf文件夹新建)

vi /usr/hive/apache-hive-2.1.1-bin/conf/hive-site.xml
  1. <configuration>
  2. <property>
  3. <name>hive.metastore.warehouse.dir</name>
  4. <value>/user/hive_remote/warehouse</value>
  5. </property>
  6. <property>
  7. <name>hive.metastore.local</name>
  8. <value>false</value>
  9. </property>
  10. <property>
  11. <name>hive.metastore.uris</name>
  12. <value>thrift://slave1:9083</value>
  13. </property>
  14. </configuration>

启动hive:

启动hive server(slave1)

/usr/hive/apache-hive-2.1.1-bin/bin/hive --service metastore

启动hive client(master)

/usr/hive/apache-hive-2.1.1-bin/bin/hive

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/873948
推荐阅读
相关标签
  

闽ICP备14008679号