1. 依赖环境搭建

WeDPR隐私计算平台搭建前,需准备好MYSQL, HDFSFISCO BCOS v3.0区块链系统环境,

注解

  • MySQL可选用Docker安装方式

  • HDFS的详细搭建流程参考 这里

  • FISCO BCOS v3.0区块链网络搭建指南请参考 这里

这里以安装单机版本的MySQL、HDFS、FISCO-BCOS区块链系统为例,简单介绍前置依赖搭建步骤。

1.1 安装依赖

安装macos依赖

brew install openssl@1.1 curl wget vim

安装ubuntu依赖

sudo apt install -y curl openssl wget default-jdk vim

安装centos依赖

sudo yum install -y curl openssl openssl-devel wget java-1.8.0-openjdk vim

1.2 部署MYSQL

注解

这里使用Docker搭建MySQL环境,请确保您的机器搭建了Docker环境。

# 拉取mysql镜像
docker pull mysql:8

# 启动mysql镜像
# Note: 
# 1. 生产环境可根据实际需求挂载配置、数据目录
# 2. MYSQL_ROOT_PASSWORD参数指定了mysql密码,需根据实际安全需求设置
docker run -p 3306:3306 --name wedpr_mysql -e MYSQL_ROOT_PASSWORD=WeDPR2024 -d mysql

1.3 部署HDFS

注解

  • HDFS更详细的搭建步骤可参考 这里

  • 安装HDFS需要有root权限

步骤一:获取hadoop安装包

# 下载v3.3.6版本的hadoop安装包
wget https://mirrors.bfsu.edu.cn/apache/hadoop/common/hadoop-3.3.6/hadoop-3.3.6.tar.gz

# 将hadoop安装解压到/opt/hadoop
sudo tar -zxvf hadoop-3.3.6.tar.gz -C /opt/
sudo mv /opt/hadoop-3.3.6 /opt/hadoop

步骤二:配置hadoop环境

sudo sh -c "echo 'export HADOOP_HOME=/opt/hadoop' >> /etc/profile"
sudo sh -c "echo 'export PATH=\$PATH:/opt/hadoop/bin' >> /etc/profile"
sudo sh -c "echo 'export PATH=\$PATH:/opt/hadoop/sbin' >> /etc/profile"
source /etc/profile

步骤三:配置hadoop使用的Java环境

# 获取java路径
$ which java
# 输出: /usr/bin/java,说明java_home是/user

# 配置JAVA_HOME(这里的路径请根据which java输出的java二进制所在目录调整)
sudo sh -c 'echo "export JAVA_HOME=/usr" >> /opt/hadoop/etc/hadoop/yarn-env.sh'
sudo sh -c 'echo "export JAVA_HOME=/usr" >> /opt/hadoop/etc/hadoop/hadoop-env.sh'

# 检查hadoop是否安装成功, 若安装成功会有对应的版本信息输出
hadoop version
# 输出如下信息表明hadoop安装成功
Hadoop 3.3.6
Source code repository https://github.com/apache/hadoop.git -r 1be78238728da9266a4f88195058f08fd012bf9c
Compiled by ubuntu on 2023-06-18T08:22Z
Compiled on platform linux-x86_64
Compiled with protoc 3.7.1
From source with checksum 5652179ad55f76cb287d9c633bb53bbd
This command was run using /usr/local/hadoop/share/hadoop/common/hadoop-common-3.3.6.jar

步骤四:创建数据存放目录

注解

  • 请选择容量最大的磁盘存放数据文件

# 选择最大容量的磁盘创建HDFS数据存放目录,这里设为 /data/home/hadoop
# 创建临时数据存放目录
mkdir -p /data/home/hadoop/tmp
# 创建持久化数据存放目录
mkdir -p /data/home/hadoop/data
# 创建name-node持久化数据存放目录
mkdir -p /data/home/hadoop/dfs/name

步骤五:配置core-site.xml

获取当前机器的内容ip:

ifconfig
192.168.0.18

执行如下命令,进入编辑页面:

vim /opt/hadoop/etc/hadoop/core-site.xml

注解

实际配置中,请把``fs.defaultFS``中的 ${HOST_IP} 替换为 ifconfig 获取的内容ip

<configuration></configuration>中加入如下配置:

    <property>
        <name>hadoop.tmp.dir</name>
        <value>file:/data/home/hadoop/tmp</value>
        <description>location to store temporary files</description>
    </property>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://${HOST_IP}:9000</value>
    </property>

步骤六:配置hdfs-site.xml

执行如下命令,进入编辑页面:

vim /opt/hadoop/etc/hadoop/hdfs-site.xml

<configuration></configuration>中加入如下配置: (Note: 这里使用了一个副本)

<property>
        <name>dfs.replication</name>
        <value>1</value>
    </property>
    <property>
        <name>dfs.namenode.name.dir</name>
        <value>file:/data/home/hadoop/dfs/name</value>
    </property>
    <property>
        <name>dfs.datanode.data.dir</name>
        <value>file:/data/home/hadoop/data</value>
    </property>
    <property>
        <name>dfs.namenode.rpc-bind-host</name>
        <value>0.0.0.0</value>
    </property>

步骤七: 初始化namenode

hadoop namenode -format

步骤八: 启动HDFS服务

bash start-dfs.sh

检查hdfs是否启动成功,请确保如下组件均启动成功。

注解

  • 若某服务启动失败,可通过 /opt/hadoop/logs 查看具体的诊断信息。

# 检查datanode是否启动成功
 ps aux |grep -ia hadoop |grep -ia datanode
 
 # 检查namenode是否启动成功
 ps aux |grep -ia hadoop |grep -ia namenode |grep -v secondary
 
 # 检查secondary namenode是否启动成功
 ps aux |grep -ia hadoop |grep -ia namenode |grep -i secondary

1.4 部署区块链系统

注解

  • FISCO BCOS v3.0区块链网络搭建指南请参考 这里

步骤一: 创建操作目录,下载安装脚本 (这里以构建v3.11.0版本区块链节点为例)

# 创建操作目录
cd ~ && mkdir -p fisco && cd fisco
# 下载建链脚本
curl -#LO https://github.com/FISCO-BCOS/FISCO-BCOS/releases/download/v3.11.0/build_chain.sh && chmod u+x build_chain.sh
# Note: 若访问git网速太慢,可尝试如下命令下载建链脚本:
curl -#LO https://gitee.com/FISCO-BCOS/FISCO-BCOS/releases/download/v3.11.0/build_chain.sh && chmod u+x build_chain.sh

步骤二: 搭建单机4节点区块链

bash build_chain.sh -l 127.0.0.1:4 -p 30300,20200

步骤三: 启动区块链节点

bash nodes/127.0.0.1/start_all.sh

步骤四:检查区块链环境

# 检查进程是否启动成功, 预期输出4个区块链节点进程
ps aux |grep -ia fisco-bcos

# 验证网络连接是否正常, 预期每个节点日志输出的connected count均不小于3
tail -f nodes/127.0.0.1/node*/log/* |grep -i "heartBeat,connected count"

# 验证区块链节点共识是否正常, 预期每个节点均有该日志输出
cat nodes/127.0.0.1/node0/log/* |grep -ia "reach.*new.*view"