001user 发表于 2024-11-14 21:18

Hadoop集群部署

本帖最后由 001user 于 2024-11-17 19:38 编辑

Hadoop集群部署(用到的教材Hadoop平台搭建与应用【人民邮电出版社-米洪 张鸰主编】)


[*]准备三个节点(Centos 6.7)root用户

[*]典型,内存2GB,处理器 2,硬盘30G
[*]互相能ping通,都能上网
[*]设置IP地址(设置为虚拟网络编辑器中NAT型网络的网段)

[*]System->Preferences->Network Connections
[*]System eth0 ->IPv4 settings -> Method ->Manual 【address】:x.x.x.x 【Netmask】:x.x.x.x 【Gateway】:x.x.x.2   -Apply
[*]关闭防火墙

[*] System->Administration->Firewall
[*]三个节点

[*]/etc/hosts文件最后面 添加:      
192.168.214.131 hadoop01
192.168.214.132 hadoop02
192.168.214.133 hadoop03
[*](设置主机名称为)修改/etc/sysconfit/network 文件,
(hadoop01)添加内容hadoop01
***(hadoop02)添加内容hadoop02 (hadoop03)添加内容hadoop03 ***
[*]建目录:/export/servers
[*]建目录:/export/software
[*]把:“jdk-8u202-linux-x64.tar.gz”,“hadoop-2.7.4.tar.gz”,这两个文件,
拷贝到:/export/software目录下。
[*]解压缩:tar -zxvf /export/software/jdk-8u202-linux-x64.tar.gz -C /export/servers/
解压缩:tar -zxvf /export/software/hadoop-2.7.4.tar.gz -C /export/servers/
[*]WinSCP

[*]会使用WinSCP工具,能在Linux和windows之间互传文件
[*]三个节点

[*]修改文件名:mv /export/servers/jdk1.8.0_202/ /export/servers/jdk
[*]修改该文件内容:
/etc/profileexport JAVA_HOME=/export/servers/jdk
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
[*]终端执行:source /etc/profile(每次更改/etc/profile文件后都需要source /etc/profile)
[*]执行:java -version
[*]‘‘‘解压缩: tar -zxvf /export/software/hadoop-2.7.4.tar.gz -C /export/servers/’’’
[*]在/etc/profile文件最后面,添加内容:
export HADOOP_HOME=/export/servers/hadoop-2.7.4
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
[*]执行:source /etc/profile
[*]执行: hadoop version
[*]辅助:Hadoop/JDK

[*]hadoop官网:https://archive.apache.org/dist/hadoop/common/
[*]JDK官网:https://www.oracle.com/java/technologies/javase/javase8-archive-downloads.html
[*]三个节点

[*]把国内镜像源文件:“Centos-vault-6.10.repo”,
拷贝到/etc/yum.repos.d/目录下
[*]把yum.repos.d目录中原来的5个文件放到/export/目录
[*]编辑文件:/etc/yum.conf,
在最下面加上一行:sslverify=false
[*]Hadoop01

[*]终端执行:yum repolist allyum clean allyum makecache
[*]安装MySQL:yum install mysql mysql-server mysql-devel -y
[*](启动:MySQL)/etc/init.d/mysqld start
[*]连接mysql:用mysql命令
[*](输入命令:USE mysql)选择数据库服务器中的mysql数据库,为当前数据库。
[*]输入命令:UPDATE user SET Password=PASSWORD('123456') WHERE user='root';(设置root用户的密码为:123456)
[*]输入命令:GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;(允许root用户,从远程进行登录)
[*]输入命令:FLUSH PRIVILEGES;刷新权限,使刚刚设置的权限,生效
[*]三个节点

[*]时钟同步:
# 安装
ntpdatesudo yum install ntpdate -y
# 时间同步
sudo ntpdate -u cn.pool.ntp.org
[*]服务器之间通过SSH互相访问:
1)通过ssh-keygen 生成key:ssh-keygen -t rsa
[*]2)通过ssh-copy-id将一台服务器的公钥拷贝到其他需要访问它的服务器上去。
ssh-copy-id root@hadoop01
ssh-copy-id root@hadoop02
ssh-copy-id root@hadoop03
[*]免密失败,自检措施

[*]网络不通,可以检查:/etc/hosts/etc/sysconfig/network
[*]检查这个yum源的目录:/etc/yum.repos.d
检查这个文件:/etc/yum.conf
[*]还有:防火墙
[*]还有虚拟网卡。(windows里面)
[*]还有检查:System--> Preferences--> Network Connections
[*]三个节点

[*]在这个文件里面:/export/servers/hadoop-2.7.4/etc/hadoop/hadoop-env.sh
找到对应位置,修改值为export JAVA_HOME=/export/servers/jdk
[*]在这个文件里面:/export/servers/hadoop-2.7.4/etc/hadoop/core-site.xml
完成对应配置:(将U盘中的core-site.xml替换掉文件中的相同文件)

[*]配置内容如下:
<configuration>   
<property>      
<name>fs.defaultFS</name>      
<value>hdfs://hadoop01:9000</value>   
</property><property>      
<name>hadoop.tmp.dir</name>      
<value>/export/servers/hadoop-2.7.4/tmp</value>   
</property></configuration>
[*]在这个文件里面;/export/servers/hadoop-2.7.4/etc/hadoop/hdfs-site.xml
完成对应配置:(将U盘中的hdfs-site.xml替换掉文件中的相同文件)

[*]配置内容如下:
<configuration>   
<property>      
<name>dfs.replication</name>      
<value>3</value>   
</property>   
<property>      
<name>dfs.namenode.secondary.http-address</name>      
<value>hadoop02:50090</value>   
</property>
</configuration>
[*]在这个文件里面/export/servers/hadoop-2.7.4/etc/hadoop/mapred-site.xml
完成对应配置:(将U盘中的mapred-site.xml替换掉文件中的相同文件)

[*]配置内容如下
<configuration>   
<!-- Site specific YARN configuration properties -->   
<property>      
<name>yarn.resourcemanager.hostname</name>      
<value>hadoop01</value>   
</property>
<property>      
<name>yarn.nodemanager.aux-services</name>      
<value>mapreduce_shuffle</value>   
</property>   
<property>         
<name>yarn.nodemanager.resource.cpu-vcores</name>         
<value>8</value>      
</property>      
<property>         
<name>yarn.nodemanager.resource.memory-mb</name>         
<value>8192</value>      
</property>         
<property>         
<name>yarn.log.server.url</name>         
<value>http://hadoop01:19888/jobhistory/logs/</value>      
</property>   
</configuration>
[*]在这个文件里面/export/servers/hadoop-2.7.4/etc/hadoop/yarn-site.xml
完成对应配置:(将U盘中的yarn-site.xml替换掉文件中的相同文件)

[*]配置内容如下
<configuration>   
<property>      
<name>mapreduce.framework.name</name>      
<value>yarn</value>   
</property></configuration>
[*]三个节点

[*]在这个文件里面/export/servers/hadoop-2.7.4/etc/hadoop/slaves完成对应配置:

[*]文件内容:hadoop01hadoop02hadoop03
[*]Hadoop01

[*]终端执行:hdfs namenode -format
[*]三个节点

[*]终端输入 cd /export/servers/hadoop-2.7.4/sbin

[*]./start-dfs.sh
[*]./start-yarn.sh
[*]在火狐浏览器里输入URL:hadoop01:50070
[*]在火狐浏览器里输入URL:hadoop01:8088(成功出现网页)
[*]终端输入jps:看看节点数是否正常-Hadoop01:5个,Hadoop02:4个,Hadoop03:3个
[*]三个节点

[*]把“apache-hive-1.2.1-bin.tar.gz”这个文件,
拷贝到:/export/software目录下。
[*]解压Hive, 命令如下:
tar -zxvf /export/software/apache-hive-1.2.1-bin.tar.gz -C /export/servers/
[*]hadoop01

[*]检查MySQL是否已经启动,如果未启动,则把MySQL启动起来:/etc/init.d/mysqld start
[*] (三个节点)上传MySQL连接驱动包“mysql-connector-java-5.1.32.jar”到Hive安装目录下(/export/servers/)的lib文件夹下.
[*]cd /export/servers/apache-hive-1.2.1-bin/bin启动hive:./hive
[*]在文件/etc/profile里的最后面,增加这两行:
export HIVE_HOME=/export/servers/apache-hive-1.2.1-bin
export PATH=$PATH:$HIVE_HOME/bin
[*]source /etc/profile
[*]hadoop01

[*]在目录/export/servers/apache-hive-1.2.1-bin/conf下创建文件,
文件名为hive-env.sh,
文件内容为export HADOOP_HOME=/export/servers/hadoop-2.7.4(可以从U盘中拷到目录中)
(重要提示:如果扩展名为*.sh的文件,需设置文件属性为:可读、可写、可执行。)
[*]在目录/export/servers/apache-hive-1.2.1-bin/conf里,
创建一个名称为:hive-site.xml的文件。(将U盘中的hive-site.xml放到目录下)

[*]hive-site.xml配置文件源码:
<configuration>   
<property>      
<name>javax.jdo.option.ConnectionURL</name>      
<value>jdbc:mysql://localhost:3306/hive?createDatabaseIfNotExist=true</value>      
<description>Mysql连接协议</description>   
</property>   
<property>      
<name>javax.jdo.option.ConnectionDriverName</name>      
<value>com.mysql.jdbc.Driver</value>      
<description>JDBC连接驱动</description>   
</property>   
<property>      
<name>javax.jdo.option.ConnectionUserName</name>      
<value>root</value>      
<description>用户名</description>   
</property>   
<property>      
<name>javax.jdo.option.ConnectionPassword</name>      
<value>123456</value>      
<description>密码</description>   
</property></configuration>
[*]辅助:Hive

[*]Hive官网:网址,下载:http://archive.apache.org/dist/hive/hive-1.2.1/
[*]Hadoop01

[*]切换到hive的bin目录里面去cd /export/servers/apache-hive-1.2.1-bin/bin
启动hive: ./hive
[*] Hive数据仓库的操作命令示例:show databases;
//use weblog;
show tables;

[*]创建数据库:CREATE DATABASE IF NOT EXISTS suying_01 COMMENT "This is suying_01 database" LOCATION '/hive_db/create_db/' WITH DBPROPERTIES ("creator"="suying_01", "date"="2024-10-18");
[*]创建:内部表:create table emp(empno int,ename string,job string,mgr int,hiredate string,sal double,comm double,deptno int) row format delimited fields terminated by '\t';
[*]创建:外部表:create external table emp_external(empno int,ename string,job string,mgr int ,hiredate string,sal double,comm double,deptno int) row format delimited fields terminated by '\t' location '/hive_external/emp/';
[*]创建:分区表:CREATE TABLE order_partition(orderNumber STRING,Event_time STRING) PARTITIONED BY (event_month string) ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t';
[*]知晓Hive的:分区表、分桶表、临时表、视图、索引。
[*]三个节点

[*]从ZooKeeper的官网,下载压缩包文件。https://archive.apache.org/dist/zookeeper/zookeeper-3.4.13/
(从U盘里把文件zookeeper-3.4.13.tar.gz拷贝到:/export/software目录下。)
[*]解压:tar -zxvf /export/software/zookeeper-3.4.13.tar.gz -C /export/servers/
[*]cd /export/servers/zookeeper-3.4.13/confcp zoo_sample.cfg zoo.cfg
[*]在zoo.cfg文件里面,编辑以下内容:将本来的dataDir=... 注释掉
添加如下内容:
dataDir=/export/data/zookeeper/zkdata
server.1=hadoop01:2888:3888
server.2=hadoop02:2888:3888
server.3=hadoop03:2888:3888
[*]终端输入:mkdir -p /export/data/zookeeper/zkdata
(创建目录/export/data/zookeeper/zkdata)
[*]cd /export/data/zookeeper/zkdata
(hadoop01里)echo 1 > myid
***(hadoop02里)echo 2 > myid
(hadoop03里)echo 3 > myid***
[*]修改/etc/profile/文件,
在最后面加上如下内容export ZK_HOME=/export/servers/zookeeper-3.4.10
export PATH=$PATH:$ZK_HOME/bin
[*]终端输入:source /etc/profile
[*]cd /export/servers/zookeeper-3.4.13/bin
./zkServer.sh start
./zkServer.sh status(查看zookeeper的状态)

[*]输入命令./zkCli.sh   进入zookeeper后,练习书上88页至90页的命令
[*]辅助:Hbase

[*]HBase的下载网址:http://archive.apache.org/dist/hbase/http://archive.apache.org/dist/hbase/1.2.1/我们选择:1.2.1版本。
[*]三个节点

[*]将下载的hbase安装包文件上传到/export/software(从U盘中拷到目录中)
[*]解压缩:tar -zxvf /export/software/hbase-1.2.1-bin.tar.gz -C /export/servers/
[*]在/export/servers/hbase-1.2.1-bin./conf目录下,
编辑hbase-env.sh文件在文件中找到合适位置 “#export JAVA_HOME=....user...“,
在其下方加入内容:
# 指定JDK安装目录。
export JAVA_HOME=/export/servers/jdk
# 指定不使用内置的ZooKeeper
export HBASE_MANAGES_ZK=false
[*]在/export/servers/hbase-1.2.1-bin./conf目录下,配置hbase-site.xml文件:

[*]在<...> <...>之间加入一下内容
<property >      
<name>hbase.rootdir</name>      
<value>hdfs://hadoop01:9000/hbase</value>
</property>

<property >   
<name>hbase.cluster.distributed</name>      
<value>true</value>
</property>

<property>   
<name>hbase.zookeeper.quorum</name>   
<value>hadoop01:2181,hadoop02:2181,hadoop03:2181</value>
</property>
[*](重点注意:hdfs端口,在本实验系列中,设置在:9000端口。所以,上文的配置文件中,这句话,里面,有9000端口。<value>hdfs://hadoop01:9000/hbase</value>)
[*]配置/export/servers/hbase-1.2.1-bin./conf目录下的regionservers(没有的话自己创建)
这个文件定义了:regionserver的主机名称。
将文件regionservers中的内容改为hadoop02hadoop03(注释掉自带的 localhost)
[*]将 /export/servers/hadoop-2.7.4/etc/hadoop/目录下的文件core-site.xml和文件hdfs-site.xml ,
复制到 /export/servers/hbase-1.2.1/conf/目录下
(用于HBase启动时读取Hadoop的核心配置信息和HDFS配置信息。)
[*]配置/etc/profile文件,
在文件末尾加如下内容:
export HBASE_HOME=/export/servers/hbase-1.2.1
export PATH=$PATH:$HBASE_HOME/bin
[*]source /etc/profile
[*]Hadoop01

[*]终端输入start-hbase.sh命令 ,启动HBase高可用集群

[*]在火狐浏览器中输入URL:hadoop01:16010 (成功结果:出现网页)
[*]cd /export/servers/hbase-1.2.1/bin

[*]执行命令./hbase shell
[*]练习教材P114页(之后)的命令

dsh666 发表于 2024-11-14 21:55

不错不错,就是全部是文字有点单调

betcom 发表于 2024-11-14 22:28

需要改进,放一些图片也好。整体还不错

paris1865 发表于 2024-11-14 22:30

能不能把电子书和用到的软件都分享一下{:1_893:}

yoga23 发表于 2024-11-14 22:32

老手艺了,部署操作还是有点繁琐的。

skywater 发表于 2024-11-14 22:48

受教了,有没有相关资料分享一下?

2315100220 发表于 2024-11-14 23:14

内容很不错,就是文字太紧凑了

Sandyang 发表于 2024-11-14 23:34

看来之1 这个集群针对是数据库,我还以为网站代码和数据库也可以直接

zhxiaoll 发表于 2024-11-15 07:11

如果是为了后续大数据的学习,建议直接使用尚硅谷提供的虚拟机或者docker搭建
自己搭建环境收益非常低

35925 发表于 2024-11-15 08:05

能贴图配文是最好的,感谢楼主
页: [1] 2
查看完整版本: Hadoop集群部署