...
注意 |
---|
|
集群部署数据挖掘组件环境如下: 服务器IP | 主机名 | 组件实例 | 部署目录 |
---|
10.10.35.64 | 10-10-35-64 | 数据挖掘-1,Zookeeper-1,Python-1 | /data | 10.10.35.65 | 10-10-35-65 | 数据挖掘-2,Spark-1,Hadoop-1 | /data | 10.10.35.66 | 10-10-35-66 | Spark-2,Zookeeper-2,Hadoop-2 | /data | 10.10.35.67 | 10-10-35-67 | Spark-3,Zookeeper-3,Hadoop-3,Python-2 | /data | 10.10.204.250 | 10-10-204-250 | Smartbi-Proxy | /data |
|
注意 |
---|
|
数据挖掘数据量2000万以下时,可以不单独部署hadoop组件,提高数据挖掘服务器配置即可 |
1、系统环境准备
1.1防火墙配置1 防火墙配置
为了便于安装,建议在安装前关闭防火墙。使用过程中,为了系统安全可以选择启用防火墙,但必须启用服务相关端口。
1.关闭防火墙
临时关闭防火墙临时关闭防火墙(立即生效)
代码块 |
---|
language | bash |
---|
linenumbers | true |
---|
|
systemctl stop firewalld
|
永久关闭防火墙永久关闭防火墙(需重启后生效)
代码块 |
---|
language | bash |
---|
linenumbers | true |
---|
|
systemctl disable firewalld
|
...
代码块 |
---|
language | bash |
---|
linenumbers | true |
---|
|
systemctl status firewalld
|
2.开启防火墙
相关服务及端口对照表:
服务名 | 需要开放端口 |
---|
Hadoop | 9864,9866,9867,9868,9870,9000 |
如果确实需要打开防火墙安装,需要给防火墙放开以下需要使用到的端口
开启端口:9864,9866,9867,9868,9870
...
代码块 |
---|
language | bash |
---|
linenumbers | true |
---|
|
sed -i 's/=enforcing/=disabled/g' /etc/selinux/config |
1.2取消打开文件限制2 取消打开文件限制
修改/etc/security/limits.conf文件在文件的末尾加入以下内容:
...
代码块 |
---|
|
tar -zxvf hadoop-3.2.23.tar.gz -C /data |
2.4.3.修改Hadoop配置
...
代码块 |
---|
|
cd /data/hadoop-3.2.23/etc/hadoop
vi hadoop-env.sh |
...
代码块 |
---|
|
export JAVA_HOME=/data/jdk1.8.0_181 |
Image Modified
找到"export HDFS_NAMENODE_OPTS", 在下面添加一行
代码块 |
---|
|
export HDFS_NAMENODE_OPTS="-XX:+UseParallelGC -Xmx4g" |
Image Modified
添加启动用户, 在文件最后添加以下内容
代码块 |
---|
|
export HDFS_DATANODE_USER=root
export HDFS_NAMENODE_USER=root
export HDFS_SECONDARYNAMENODE_USER=root |
Image Modified
...
代码块 |
---|
|
cd /data/hadoop-3.2.23/etc/hadoop
vi core-site.xml |
...
④修改hdfs-site.xml
代码块 |
---|
cd /data/hadoop-3.2.23/etc/hadoop
vi hdfs-site.xml |
...
代码块 |
---|
|
<configuration>
<property>
<name>dfs.name.dir</name>
<!-- 注意替换成实际的路径 -->
<value>file:/data/hdfs/name</value>
</property>
<property>
<name>dfs.data.dir</name>
<!-- 注意替换成实际的路径 -->
<value>file:/data/hdfs/data</value>
</property>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.webhdfs.enabled<.web.authentication.simple.anonymous.allowed</name>
<value>false</value>
</property>
<property>
<name>dfs.datanodewebhdfs.user.maxprovider.transferuser.threads<pattern</name>
<value>16384<<value>(?s)!(.+)</value>
</property>
<property>
<name>dfs.datanode.max.transfer.threads</name>
<value>16384</value>
</property>
</configuration> |
注意 |
---|
|
dfs.data.dir尽量配置在空间比较大的目录,可以配置多个目录,中间用逗号分隔 |
...
代码块 |
---|
language | bash |
---|
linenumbers | true |
---|
|
cd /data/hadoop-3.2.23/etc/hadoop
vi hadoop-policy.xml |
...
代码块 |
---|
language | xml |
---|
linenumbers | true |
---|
|
<configuration>
<property>
<name>security.client.protocol.acl</name>
<value>*</value>
<description>ACL for ClientProtocol, which is used by user code
via the DistributedFileSystem.
The ACL is a comma-separated list of user and group names. The user and
group list is separated by a blank. For e.g. "alice,bob users,wheel".
A special value of "*" means all users are allowed.</description>
</property>
<!-- 这里把实验引擎ip, python执行节点ip,spark部署机器ip,hadoop部署机器ip,SmartbiMPP部署服务器ip都加上-->
<!-- etlETL/数据挖掘中的组合查询节点,需要clickhouse访问hdfs数据挖掘中的组合查询节点,需要SmartbiMPP访问hdfs-->
<!-- 增加以下配置 -->
<property>
<name>security.client.protocol.hosts</name>
<value>10.10.35.64,10.10.35.65,10.10.35.66,10.10.35.67</value>
</property>
<!-- end -->
<property>
<name>security.client.datanode.protocol.acl</name>
<value>*</value>
<description>ACL for ClientDatanodeProtocol, the client-to-datanode protocol
for block recovery.
The ACL is a comma-separated list of user and group names. The user and
group list is separated by a blank. For e.g. "alice,bob users,wheel".
A special value of "*" means all users are allowed.</description>
</property>
<!-- 这里把实验引擎ip,python执行节点ip,spark部署机器ip,hadoop部署机器ip,SmartbiMPP部署服务器ip都加上-->
<!-- etlETL/数据挖掘中的组合查询节点,需要clickhouse访问hdfs数据挖掘中的组合查询节点,需要SmartbiMPP访问hdfs-->
<!-- 增加以下配置 -->
<property>
<name>security.client.datanode.protocol.hosts</name>
<value>10.10.35.64,10.10.35.65,10.10.35.66,10.10.35.67</value>
</property>
<!-- end -->
<property>
<name>security.datanode.protocol.acl</name>
<value>*</value>
<description>ACL for DatanodeProtocol, which is used by datanodes to
communicate with the namenode.
The ACL is a comma-separated list of user and group names. The user and
group list is separated by a blank. For e.g. "alice,bob users,wheel".
A special value of "*" means all users are allowed.</description>
</property>
<!-- hadoop-policy.xml配置文件以上部分需要修改 -->
<!-- hadoop-policy.xml后续配置无需修改和添加,此处省略,避免文档篇幅过长 -->
<!-- ... -->
</configuration> |
...
代码块 |
---|
|
cd /data/hadoop-3.2.23/etc/hadoop
vi workers |
把所有datanode节点的机器名加到worker文件,参考如下:
代码块 |
---|
|
10-10-35-65
10-10-35-66
10-10-35-67 |
Image Modified
⑦将Hadoop安装包分发到其他节点
...
代码块 |
---|
|
scp -r /data/hadoop-3.2.23 root@10-10-35-66:/data/
scp -r /data/hadoop-3.2.23 root@10-10-35-67:/data/ |
2.4.4.配置Hadoop环境变量
...
代码块 |
---|
|
export HADOOP_HOME=/data/hadoop-3.2.23
export PATH=$PATH:$HADOOP_HOME/bin |
...
代码块 |
---|
|
cd /data/hadoop-3.2.23/
./bin/hdfs namenode -format |
...
代码块 |
---|
|
cd /data/hadoop-3.2.23/
./sbin/start-dfs.sh |
③创建中间数据存储目录
...
①在浏览器输入: http://Hadoop管理节点IP:9870/dfshealth.html#tab-overview 检查集群状态
Image Modified
Image Modified
②检查mining目录是否创建成功
代码块 |
---|
|
hdfs dfs -ls / #显示创建的/mining即表示创建成功 |
Image Modified
2.5 运维操作
在管理节点执行(10-10-35-65).
...
代码块 |
---|
|
cd /data/hadoop-3.2.23/
./sbin/stop-dfs.sh |
启动Hadoop集群
代码块 |
---|
|
cd /data/hadoop-3.2.7.3/
./sbin/start-dfs.sh |
查看日志
Hadoop的日志路径:/data/hadoop-3.2.7.3/logs
安装部署或者使用中有问题,可能需要根据日志来分析解决。
...