两台服务器手动部署大数据平台
两台服务器手动部署大数据平台
##### 初始服务器数量
- 2台centos7
##### 建议配置
- 32G(RAM)
- 24cpu
- 10t(SATA)
### 1环境
- 系统centos7
- jdk:180_171(64位)
- zookeeper:348
- spark-210-bin-hadoop26
- kafka_210-01021
- hadoop-270
- hbase-126
- elasticsearch-630
### 2系统准备
对应的安装包文件:
elasticsearch-630targz
hadoop-270targz
hbase-126-bintargz
jdk-8u171-linux-x64targz
kafka_210-01021tgz
mysql-5723-1el7x86_64rpm-bundletar
spark210hadoop26tgzgz
zookeeper-348targz
一、 配置好hosts
```
两台设备的host
ip1 hello1
ip2 hello2
关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
二、机器之间做好免密
1 在hello1服务器中,cd /root/
2 ssh-keygen -trsa (全部按回车,走默认配置)
3 cat ~/ssh/id_rsapub >> ~/ssh/authorized_keys
4 chmod 600 ~/ssh/authorized_keys
5 scp ~/ssh/authorized_keys root@hello2:~/ssh/
到此处时可以实现hello1机器上通过root账户登录到hello2中,但从hello2中无法通过免密码登录到hello1服务器。
6 在hello2服务器中,cd /root/
7 ssh-keygen -trsa (全部按回车,走默认配置)
8 cat ~/ssh/id_rsapub >> ~/ssh/authorized_keys
9 scp ~/ssh/authorized_keys root@hello1:~/ssh/
到此处时可以实现hello1机器与hello2机器之间免密码互通
三、建立一个用户操作elasticsearch用户,后期所有安装软件放在该目录下(当前使用root账户安装)
1添加用户:
useradd -m -s /bin/bash es
2为该用户设置密码:
password es
四、安装JDK
如果系统自带openjdk,先将其卸载掉!
1创建jdk安装路径(hello1、hello2都执行)
执行: mkdir /usr/java
2解压缩jdk到安装目录
执行: tar -zxvf jdk-8u171-linux-x64targz -C /usr/java/
3添加环境变量
vi /etc/profile,添加以下语句
export JAVA_HOME=/usr/java/jdk180_171
export CLASSPATH=:$JAVA_HOME/lib/dtjar:$JAVA_HOME/lib/toolsjar
export PATH=$PATH:$JAVA_HOME/bin
执行:source /etc/profile
4复制安装包和数据目录到hello2
scp -r /usr/java/jdk180_171 hello2:/usr/java/
scp /etc/profile hello2:/etc/
登录到hello2上,进入/home/es目录
执行: source /etc/profile
5、验证:
两台服务器上分别执行: java -version,查看输出的版本是否与安装的版本一致。
五、安装mysql
1如果centos系统中自带mariadb,先卸载mariadb。
2解压mysql安装包程序
执行:tar -xvf mysql-5723-1el7x86_64rpm-bundletar
3依次安装里面rpm包组建
rpm -ivh mysql-community-common-5723-1el7x86_64rpm
rpm -ivh mysql-community-libs-5723-1el7x86_64rpm
rpm -ivh mysql-community-client-5723-1el7x86_64rpm
rpm -ivh mysql-community-server-5723-1el7x86_64rpm
rpm -ivh mysql-community-devel-5723-1el7x86_64rpm
4启动MySQL
执行: systemctl start mysqld
5登录mysql服务器
这种方式安装好后,会再mycnf文件中自动生成一个密码,
执行:cat /var/log/mysqldlog | grep password, 出现如下记录:
2017-09-15T01:58:11863301Z 1 [Note] A temporary password is generated for root@localhost: m-NdrSG4ipuO
其中“m-NdrSG4ipuO”为mysql root账户的初始密码。
登录:
执行: mysql -uroot -p
输入密码: m-NdrSG4ipuO,即可进入mysql服务器。
后续可自行修改root密码,创建新账户等操作。
六、安装zookeeper
1解压zookeeper安装包到指定目录(/home/es)
tar -zxvf zookeeper-348targz -C /home/es
2创建程序软连接
cd /home/es/
ln -s zookeeper-348 zookeeper
3添加执行路径环境
vi /etc/profile
添加
export ZOOKEEPER_HOME=/home/es/zookeeper
export PATH=$PATH:$ZOOKEEPER_HOME/bin
执行
source /etc/profile
4修改配置文件
cd /home/es/zookeeper
cp conf/zoo_samplecfg conf/zoocfg
在/home/data下创建对应的zookeeper数据存储目录
mkdir /home/data/zookeeper
mkdir /home/data/zookeeper/data
mkdir /home/data/zookeeper/log
修改配置文件:conf/zoocfg,添加以下语句
dataDir=/home/data/zookeeper/data
dataLogDir=/home/data/zookeeper/log
server1=hello1:2888:3888
server2=hello2:2888:3888
5创建server表示符文件
touch /home/data/zookeeper/data/myid
echo echo 1>/home/data/zookeeper/data/myid
6复制安装包和数据目录到hello2
scp -r /home/es/zookeeper-348 es@hello2:/home/es
scp -r /home/data/zookeeper es@hello2:/home/data
scp /etc/profile es@hello2:/etc
登录到hello2上
cd /home/es
ln -s zookeeper-348 zookeeper
echo echo 2>/home/data/zookeeper/data/myid
执行
source /etc/profile
7两台机器上分别执行
zkServersh start
8验证
jps | grep QuorumPeerMain,查看是否有该进程
zkServersh status,查看服务状态
六、安装kafka
1解压kafka安装包到指定目录(/home/es)
tar -zxvf kafka_210-01021tgz -C /home/es
2创建程序软连接
cd /home/es/
ln -s kafka_210-01021 kafka
3修改配置文件
备份:
cp config/serverproperties config/serverpropertiesbak
创建kafka日志目录:
mkdir /home/data/kafka
mkdir /home/data/kafka/kafka-logs
修改:config/serverproperties,具体对应字段如下:
brokerid=0
deletetopicenable=true
numnetworkthreads=10
numiothreads=32
socketsendbufferbytes=102400
socketreceivebufferbytes=102400
socketrequestmaxbytes=104857600
logdirs=/home/data/kafka/kafka-logs
numpartitions=1
numrecoverythreadsperdatadir=1
logretentionhours=168
logsegmentbytes=1073741824
logretentioncheckintervalms=300000
zookeeperconnect=hello1:2181,hello2:2181
zookeeperconnectiontimeoutms=6000
6复制安装包和数据目录到hello2
scp -r /home/es/kafka_210-01021 es@hello2:/home/es
scp -r /home/data/kafka es@hello2:/home/data
修改hello2中的配置
登录到hello2上,cd /home/es/kafka,修改config/serverproperties中brokerid值为2
7启动kafka
在两台机器的/home/es/kafka中,创建一个日志存放目录:mkdir start_log,执行以下命令:
nohup bin/kafka-server-startsh config/serverproperties > start_log/kafka_start_log 2>&1 &
8验证运行情况
jps | grep Kafka,查看进程
通过kafka命令查看topic。
七、安装hadoop
1解压hadoop安装包到指定目录(/home/es)
tar -zxvf hadoop-270targz -C /home/es
2创建程序软连接
cd /home/es/
ln -s hadoop-270 hadoop
3创建数据存放目录
mkdir /home/data/hadoop
mkdir /home/data/hadoop/tmp
mkdir /home/data/hadoop/dfs
mkdir /home/data/hadoop/dfs/data
mkdir /home/data/hadoop/dfs/name
4修改配置文件
修改/home/es/hadoop/etc/hadoop/core-sitexml
<configuration>
<property>
<name>fsdefaultFS</name>
<value>hdfs://hello1:9000</value>
</property>
<property>
<name>hadooptmpdir</name>
<value>file:/home/data/hadoop/tmp</value>
</property>
<property>
<name>iofilebuffersize</name>
<value>131702</value>
</property>
</configuration>
修改/home/es/hadoop/etc/hadoop/hdfs-sitexml
<configuration>
<property>
<name>dfsnamenodenamedir</name>
<value>file:/home/data/hadoop/dfs/name</value>
</property>
<property>
<name>dfsdatanodedatadir</name>
<value>file:/home/data/hadoop/dfs/data</value>
</property>
<property>
<name>dfsreplication</name>
<value>2</value>
</property>
<property>
<name>dfsnamenodesecondaryhttp-address</name>
<value>hello1:9001</value>
</property>
<property>
<name>dfswebhdfsenabled</name>
<value>true</value>
</property>
</configuration>
修改/home/es/hadoop/etc/hadoop/mapred-sitexml
<configuration>
<property>
<name>mapreduceframeworkname</name>
<value>yarn</value>
</property>
<property>
<name>mapreducejobhistoryaddress</name>
<value>hello1:10020</value>
</property>
<property>
<name>mapreducejobhistorywebappaddress</name>
<value>hello1:19888</value>
</property>
</configuration>
修改/home/es/hadoop/etc/hadoop/yarn-sitexml
<configuration>
<!-- Site specific YARN configuration properties -->
<property>
<name>yarnnodemanageraux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarnnodemanagerauxservicesmapreduceshuffleclass</name>
<value>orgapachehadoopmapredShuffleHandler</value>
</property>
<property>
<name>yarnresourcemanageraddress</name>
<value>hello1:8032</value>
</property>
<property>
<name>yarnresourcemanagerscheduleraddress</name>
<value>hello1:8030</value>
</property>
<property>
<name>yarnresourcemanagerresource-trackeraddress</name>
<value>hello1:8031</value>
</property>
<property>
<name>yarnresourcemanageradminaddress</name>
<value>hello1:8033</value>
</property>
<property>
<name>yarnresourcemanagerwebappaddress</name>
<value>hello1:8088</value>
</property>
<property>
<name>yarnnodemanagerresourcememory-mb</name>
<value>768</value>
</property>
</configuration>
配置/home/es/hadoop/etc/hadoop目录下hadoop-envsh、yarn-envsh的JAVA_HOME(不设置的话,启动不了)
export JAVA_HOME=/usr/java/jdk180_171
配置/home/es/hadoop/etc/hadoop目录下的slaves,删除默认的localhost,增加2个从节点,
hello1
hello2
5、将配置好的Hadoop复制到各个节点对应位置上,通过scp传送
scp -r /home/es/hadoop-270 hello2:/home/es/
scp -r /home/data/hadoop hello2:/home/data/
登录到hello2上,进入/home/es目录
执行: ln -s hadoop-270 hadoop
6、格式化nameNode及启动hadoop
在主服务器启动hadoop,从节点会自动启动,进入/home/es/hadoop目录
初始化,输入命令,bin/hdfs namenode -format
全部启动sbin/start-allsh,也可以分开sbin/start-dfssh、sbin/start-yarnsh
输入命令,jps,可以看到相关信息
7、验证hadoop运行情况
浏览器打开http://hello1:8088/
浏览器打开http://hello1:50070/
8、添加hadoop环境变量到/etc/profile
export HADOOP_HOME=/home/es/hadoop export PATH=$PATH:$HADOOP_HOME/sbin
export PATH=$PATH:$HADOOP_HOME/bin
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export HADOOP_OPTS="-Djavalibrarypath=$HADOOP_HOME/lib/native"
执行: source /etc/profile
八、安装Hbase
1解压hbase安装包到指定目录(/home/es)
tar -zxvf hbase-126-bintargz -C /home/es
2创建程序软连接
cd /home/es/
ln -s hbase-126 hbase
3添加hbase环境变量到/etc/profile
export HBASE_HOME=/home/es/hbase
export PATH=$HBASE_HOME/bin:$PATH
执行:source /etc/profile
4修改HBASE配置文件
vi /home/es/hbase/conf/hbase-envsh
增加: export JAVA_HOME=/usr/java/jdk180_171
修改: export HBASE_MANAGES_ZK=false
vi /home/es/hbase/conf/hbase-sitexml
修改类容:
<configuration>
<property>
<name>hbaserootdir</name> <!-- hbase存放数据目录 -->
<value>hdfs://hello1:9000/hbase/hbase_db</value>
<!-- 端口要和Hadoop的fsdefaultFS端口一致-->
</property>
<property>
<name>hbaseclusterdistributed</name> <!-- 是否分布式部署 -->
<value>true</value>
</property>
<property>
<name>hbasezookeeperquorum</name> <!-- list of zookooper -->
<value>hello1,hello2</value>
</property>
<property><!--zookooper配置、日志等的存储位置 -->
<name>hbasezookeeperpropertydataDir</name>
<value>/home/es/hbase/zookeeper</value>
</property>
</configuration>
配置regionservers,vi /home/es/hbase/conf/regionservers
去掉默认的localhost,加入hello1、hello2
5、将配置好的hbase复制到各个节点对应位置上,通过scp传送
scp -r /home/es/hbase-126 hello2:/home/es/
scp /etc/profile hello2:/etc/
登录到hello2上,进入/home/es目录
执行: ln -s hbase-126 hbase
source /etc/profile
6、hbase的启动
hello1中执行: start-hbasesh
7、验证hbase运行情况
输入jps命令查看进程是否启动成功,若 hello1上出现HMaster、HRegionServer、HQuormPeer,hello2上出现HRegionServer、HQuorumPeer,就是启动成功了。
输入hbase shell 命令 进入hbase命令模式,输入status命令,查看运行状态。
在浏览器中输入http://hello1:16010就可以在界面上看到hbase的配置
注意事项:
正常安装后,创建普通不带压缩表可以正常读写,当使用snappy进行压缩创建表时,该表无法再regionServer中启动!
解决方法:
1在hbase-sitexml文件中添加一下属性
<property>
<name>hbaseregionservercodecs</name>
<value>snappy</value>
</property>
2每台机器中将hadoop_nativezip解压缩到hbase安装目录的lib下,执行 unzip hadoop_nativezip $HBASE_HOME/lib/
3在$HBASE_HOME/conf/hbase-envsh 中添加:export HBASE_LIBRARY_PATH=/home/es/hbase/lib/native
4重启Hbase服务即可
九、Spark安装
1解压hbase安装包到指定目录(/home/es)
tar -zxvf spark210hadoop26tgzgz -C /home/es
2创建程序软连接
cd /home/es/
ln -s spark210hadoop26 spark
3修改配置文件
mv /home/es/spark/conf/spark-envshtemplate /home/es/spark/conf/spark-envsh
vi /home/es/spark/conf/spark-envsh
修改对应配置:
export JAVA_HOME=/usr/java/jdk180_171
export SPARK_MASTER_IP=hello1
export SPARK_MASTER_PORT=7077
export SPARK_LOCAL_IP=hello1
修改slaves文件
mv /home/es/spark/conf/slavestemplate /home/es/spark/conf/slaves
vi /home/es/spark/conf/slaves
将localhost修改成:
hello1
hello2
5、将配置好的hbase复制到各个节点对应位置上,通过scp传送
scp -r /home/es/spark210hadoop26 hello2:/home/es/
登录到hello2上,进入/home/es目录
执行: ln -s spark210hadoop26 spark
在hello2中修改/home/es/spark/conf/spark-envsh
export JAVA_HOME=/usr/java/jdk180_171
export SPARK_MASTER_IP=hello1
export SPARK_MASTER_PORT=7077
export SPARK_LOCAL_IP=hello2
6、启动spark
cd /home/es/spark
执行: sbin/start-allsh
7、检测执行结果
jps | grep Worker,看是否有相应的进程。
十、安装elasticsearch
由于elasticsearch,用root账户无法启动,故该组件用es账户安装
1、切换到es账户: su es
2、解压hbase安装包到指定目录(/home/es)
tar -zxvf elasticsearch-630targz -C /home/es/
创建程序软连接
cd /home/es/
ln -s elasticsearch-630 elasticsearch
3、修改配置文件
vi /home/es/elasticsearch/config/elasticsearchyml
# 集群的名字
clustername: crrc-health
# 节点名字
nodename: node-1
# 数据存储目录(多个路径用逗号分隔)
pathdata: /home/data1/elasticsearch/data
# 日志目录
pathlogs: /home/data1/elasticsearch/logs
#本机的ip地址
networkhost: hello1
#设置集群中master节点的初始列表,可以通过这些节点来自动发现新加入集群的节点
discoveryzenpingunicasthosts: ["hello1", "hello2"]
# 设置节点间交互的tcp端口(集群),(默认9300)
transporttcpport: 9300
# 监听端口(默认)
httpport: 9200
# 增加参数,使head插件可以访问es
httpcorsenabled: true
httpcorsallow-origin: ""
4、创建elasticsearch数据和存储目录
mkdir /home/data1/elasticsearch
mkdir /home/data1/elasticsearch/data
mkdir /home/data1/elasticsearch/logs
5、修改linux系统的默认硬限制参数
切换至root用户: su root
vim /etc/security/limitsconf
添加:
es soft nofile 65536
es hard nofile 65536
退出es登录,重新用es账户登录,使用命令:ulimit -Hn查看硬限制参数。
vi /etc/sysctlconf
添加:
vmmax_map_count=655360
执行:
sysctl -p
6、将配置好的elasticsearch复制到各个节点对应位置上,通过scp传送
scp -r /home/es/elasticsearch-630 hello2:/home/es/
scp -r /home/data1/elasticsearch hello2:/home/data1/
登录到hello2上,进入/home/es目录
执行: ln -s elasticsearch-630 elasticsearch-630
在hello2中修改/home/es/elasticsearch/config/elasticsearchyml
修改: networkhost: hello2
7、启动elasticsearch
使用es账户
执行:
/home/es/elasticsearch/bin/elasticsearch -d
8、验证
控制台中输入:curl http://hello1:9200
分布式存储,很关键的点在于数据的可靠性,即保证数据的完整,不丢失,不损坏。只有在可靠性实现的前提下,才有了追求一致性、高可用、高性能的基础。而对于在存储领域,一般对于保证数据可靠性的方法主要有两类,一类是冗余法,一类是校验法。好在这些问题已经有相关中间件给我们解决了。Minio就是这样的一个中间件,同类型的还有FastDfs等。但是FastDfs部署较为复杂,所以我采用的Minio。
MinIO 是一个基于Apache License v20开源协议的对象存储服务。它兼容亚马逊S3云存储服务接口,非常适合于存储大容量非结构化的数据,例如、视频、日志文件、备份数据和容器/虚拟机镜像等,而一个对象文件可以是任意大小,从几kb到最大5T不等。
MinIO是一个非常轻量的服务,可以很简单的和其他应用的结合,类似 NodeJS, Redis 或者 MySQL。
原文地址:https://blogcsdnnet/sjmz30071360/article/details/79889055
1 集群搭建形式
Hadoop环境搭建分为三种形式:单机模式、伪分布式模式、完全分布模式
单机模式—— 在一台单机上运行,没有分布式文件系统,而是直接读写本地操作系统的文件系统。
伪分布式—— 也是在一台单机上运行,但不同的是Java进程模仿分布式运行中的各类节点。即一台机器上,既当NameNode,又当DataNode,或者说既是JobTracker又是TaskTracker。没有所谓的在多台机器上进行真正的分布式计算,故称为“伪分布式”。
完全分布式—— 真正的分布式,由3个及以上的实体机或者虚拟机组成的机群。一个Hadoop集群环境中,NameNode,SecondaryName和DataNode是需要分配在不同的节点上,也就需要三台服务器。
前两种模式一般用在开发或测试环境下,生产环境下都是搭建完全分布式模式。
从分布式存储的角度来说,集群中的节点由一个NameNode和若干个DataNode组成,另有一个SecondaryNameNode作为NameNode的备份。
从分布式应用的角度来说,集群中的节点由一个JobTracker和若干个TaskTracker组成。JobTracker负责任务的调度,TaskTracker负责并行执行任务。TaskTracker必须运行在DataNode上,这样便于数据的本地计算。JobTracker和NameNode则无须在同一台机器上。
2 环境
操作系统:CentOS7(红帽开源版)
机器:虚拟机3台,(master 1921680104, slave1 1921680102, slave2 1921680101)
JDK:18(jdk-8u162-linux-x64tar)
Hadoop:290(http://wwwapacheorg/dyn/closercgi/hadoop/common/hadoop-290/hadoop-290targz)
3 搭建步骤
31 每台机器安装&配置JDK(1台做好后,克隆出其它机器)
1) 创建目录 mkdir /usr/java
2) 上传jdk安装包到 /usr/java/
3) 解压 tar -xvf jdk-8u162-linux-x64tar
4) 追加环境变量 vi /etc/profile
5) 使环境变量生效 source /etc/profile
6) 检测jdk正确安装 java -version
32 修改每台机器主机名(hostname)
hostnamectl set-hostname master (立即生效)
hostnamectl set-hostname slave1 (立即生效)
hostnamectl set-hostname slave2 (立即生效)
确认修改
33 修改每台机器/etc/hosts文件
vi /etc/hosts
修改其中1台,然后scp到其它机器
scp 文件名 远程主机用户名@远程主机名或ip:存放路径
scp hosts root@1921680102:/etc/
scp hosts root@1921680101:/etc/
修改完之后,互ping其它机器,能互ping则说明修改OK
ping -c 3 slave1 (※ 3表示发送 3 个数据包)
34 配置ssh,实现无密码登录
无密码登录,效果也就是在master上,通过ssh slave1或者ssh slave2就可以登录对方机器,而不用输入密码。
1) 每台机器执行ssh-keygen -t rsa,接下来一路回车即可
执行ssh-keygen -t rsa主要是生成 密钥 和 密钥的存放路径
我们用的root用户,公钥私钥都会保存在~/ssh下
2) 在master上将公钥放到authorized_keys里,命令:cat id_rsapub > authorized_keys
3) 将master上的authorized_keys放到其它机器上
scp authorized_keys root@slave1:~/ssh/
scp authorized_keys root@slave2:~/ssh/
4) 测试是否成功
35 上传&配置hadoop(配置完master后,将/usr/hadoop/整个目录内容copy到其它机器)
1) 创建目录 mkdir /usr/hadoop
2) 上传hadoop安装包hadoop-290targz到 /usr/hadoop/
3) 解压 tar -xvf hadoop-290targz
4) 追加环境变量 vi /etc/profile(其它机器也要相应配置一次hadoop环境变量)
5) 使环境变量生效 source /etc/profile
6) 确认环境变量配置OK
7) 创建HDFS存储目录
cd /usr/hadoop
mkdir hdfs
cd hdfs
mkdir name data tmp
/usr/hadoop/hdfs/name --存储namenode文件
/usr/hadoop/hdfs/data --存储数据
/usr/hadoop/hdfs/tmp --存储临时文件
8) 修改/usr/hadoop/hadoop-290/etc/hadoop/hadoop-envsh文件,设置JAVA_HOME为实际路径
否则启动集群时,会提示路径找不到
9) 修改/usr/hadoop/hadoop-290/etc/hadoop/yarn-envsh文件,设置JAVA_HOME为实际路径
10) 配置/usr/hadoop/hadoop-290/etc/hadoop/core-sitexml
增加hadooptmpdir 和 fsdefaultname
11) 配置/usr/hadoop/hadoop-290/etc/hadoop/hdfs-sitexml
dfsreplication:默认值3
dfspermissions:默认值为true,设置为true有时候会遇到数据因为权限访问不了;设置为false可以不要检查权限就生成dfs上的文件
12) 配置/usr/hadoop/hadoop-290/etc/hadoop/mapred-sitexml
cd /usr/hadoop/hadoop-290/etc/hadoop
cp mapred-sitexmltemplate mapred-sitexml
mapreduceframeworkname:指定mapreduce运行在yarn平台,默认为local
13) 配置/usr/hadoop/hadoop-290/etc/hadoop/yarn-sitexml
yarnresourcemanagerhostname:指定yarn的resourcemanager的地址
yarnnodemanageraux-services:reducer获取数据的方式
yarnnodemanagervmem-check-enabled:意思是忽略虚拟内存的检查,如果安装在虚拟机上,这个配置很有用,配上去之后后续操作不容易出问题。如果是在实体机上,并且内存够多,可以将这个配置去掉
14) 配置/usr/hadoop/hadoop-290/etc/hadoop/slaves文件,将里面的localhost删除,配置后内容如下:
15) copy整个/usr/hadoop/目录到其它机器
scp -r hadoop root@slave1:/usr/
scp -r hadoop root@slave2:/usr/
36 启动Hadoop
1) 启动之前需要格式化一下。因为master是namenode,slave1和slave2都是datanode,所以在master上运行
hadoop namenode -format
格式化成功后,可以看到在/usr/hadoop/hdfs/name目录下多了一个current目录,而且该目录下有一系列文件,如下:
2) 执行启动(namenode只能在master上启动,因为配置在master上;datanode每个节点上都可以启动)
执行 start-allsh
master上执行jps,会看到NameNode, SecondaryNameNode, ResourceManager
其它节点上执行jps,会看到DataNode, NodeManager
3) 在wins上打开网页,查看HDFS管理页面 http://1921680104:50070查看,提示无法访问
在master上,执行以下命令关闭防火墙,即可访问(为了能够正常访问node节点,最好把其它机器的防火墙也stop了)
systemctl stop firewalldservice
HDFS管理首页
HDFS Datenodes页
访问Yarn管理页: http://1921680104:8088
4)通过主机名也可以访问的设置
win7为例,需要将以下信息追加到C:\Windows\System32\drivers\etc\hosts文件中
1921680104 master
1921680102 slave1
1921680101 slave2
Over!!!搭建成功!!!
4 运行实例
cd /usr/hadoop/hadoop-290/share/hadoop/mapreduce
hadoop jar hadoop-mapreduce-examples-290jar pi 5 10
。。。。。。
=====================================================
如果不关防火墙,子节点可能出现,输入jps后只有jps一个进程,或者是缺进程的情况,关闭防火墙就好了。
1、需要注意DFS(分布式文件系统)根目录的放置。当用户访问WEB网页时,他们只知道要访问某个网站,而不知道网站后面可能还有其他服务器的存在。用户要访问的WEB服务器其实就是DFS根目录所在的主机。网络管理员要实现分布式文件系统,必须要先将网络中一台服务器内的共享文件夹设置为DFS根目录。这个DFS根目录主要用来存储分布式文件系统的映射关系。网络管理员要为该根目录取一个简约的名字,其他用户就可以通过这个名字访问这个分布式文件系统根目录下的文件。可见DFS根目录的安全性直接跟WEB服务器的安全相关。而且其也跟WEB应用服务的稳定性息息相关。因为如果这个目录出现了问题,映射关系遭受到破坏,则用户将无法正常访问文件资源。为了提高这个根目录的安全性,笔者建议是要把这个根目录部署在微软的NTFS文件系统上,并对此配置一定的安全措施。由于NTFS文件系统要比FAT32文件系统安全的多。无论是加密技术或者数据还原上,NTFS文件系统都有比较突出的表现。故笔者觉得,使用NTFS文件系统当作分布式文件系统的根目录,则其安全性与稳定性会更有保障一点。
DFS即分布式文件系统,主要用于解决把分散的共享资源集中管理的问题,DFS的基本概念是DFS根和DFS连接。
在大多数环境中,共享资源驻留在多台服务器上的各个共享文件夹中。要访问资源,用户或程序必须将驱动器映射到共享资源的服务器,或指定共享资源的通用命名约定 (UNC) 路径。通过 DFS,一台服务器上的某个共享点能够作为驻留在其他服务器上的共享资源的宿主。DFS 以透明方式链接文件服务器和共享文件夹,然后将其映射到单个层次结构,以便可以从一个位置对其进行访问,而实际上数据却分布在不同的位置。用户不必再转至网络上的多个位置以查找所需的信息,用户在访问此共享中的文件夹时将被重定向到包含共享资源的网络位置。这样,用户只需知道 DFS 根目录共享即可访问整个企业的共享资源。
另外解释:
一、DFS为何物?
DFS即微软分布式文件系统的简称,系统管理员可以利用它来有效的整合网络资源,并把这些资源以单一的层次结构呈现给网络用户。管理员利用它可以把资源发布成一个树形结构,这样大大简化了为用户进行资源配置和对资源管理的工作量。我们可以在不同的机器上调整和移动文件,这不会影响到用户的访问。
二、为什么要使用DES?
1、DFS使用了现有网络中的Share权限,管理员不必进行新的配置
2、通过一个DFS树形结构用户就可以访问多个网络资源,而不用再把远程驱动器映射到本地共享资源中。
3、DFS可以配置一个资源的多个提供路径,用户对于最终资源的访问是随机的。若一个路径提供的资源不能连接,DFS将定向到另一个提供者。这可以达到容错和负载均衡的效果。
4、在服务器故障或网络中断时,我们可以将资源路径重新定向的新的位置,而不会影响到用户的访问。
5、IIS可以和DFS配合发布资源
在以下情形下,您应该考虑实施 DFS:
访问共享文件夹的用户分布在一个站点的多个位置或多个站点上。
大多数用户都需要访问多个共享文件夹。
通过重新分布共享文件夹可以改善服务器的负载平衡状况。
用户需要对共享文件夹的不间断访问。
您的组织中有供内部或外部使用的 Web 站点。
0条评论