准备工作:
1.java:
>>java -version
查看java是否安装成功,若显示如下图,代表java已经成功安装
若显示未安装,可自行百度Linux如何安装java
2.maven:
>>mvn -v
查看maven是否安装成功,若显示如下图,代表maven已经成功安装
若显示未安装,可自行百度Linux如何安装maven,或键入如下命令
>>sudo apt install maven
3.git
>>git --version
查看git是否安装成功,若显示如下图,代表git已经成功安装
若显示未安装,可自行百度Linux如何安装git
4.DISNI库:
GitHub地址:https://github.com/zrlio/disni
>>git clone https://github.com/zrlio/disni.git
下载完成后,对DISNI库进行安装
>>cd disni
>>mvn -DeskipTest install
安装完成后
>>cd libdisni/
>>./autoprepare.sh
>>./configure --with-jdk=$JAVA_HOME
>>sudo make install
5.crail:
crail官网地址:https://incubator-crail.readthedocs.io/en/latest/
>>git clone https://github.com/apache/incubator-crail
下载完成后,更改CRAIL_HOME环境变量
>>sudo vi ~/.bashrc
>>source ~/.bashrc
在bashrc文件中更改下面一行,若没有就新增一个
ssh配置
1.设置/etc/hosts
>>sudo gedit /etc/hosts
将需要配置的主机ip地址和hostname都写上去
这里笔者配置了两台pc,一台作为namenode和datanode,一台作为client
2.将namenode的id_rsa.pud复制到client,并写入authorized_keys
生成密钥
>>ssh-keygen -t rsa
将生成的密钥发送到client端
>>scp /home/lab/.ssh/id_rsa.pub client@ip_address:/home/Desktop
其中client为客户端用户名,ip_address为客户端ip地址
在client端,输入如下命令
>>cd /home/Desktop
>>cat id_rsa.pub >> ~/.ssh/authorized_keys
3.设置ssh登录的主机用户名 修改.ssh文件下的config,没有则新建一个
此步骤可省略。。。
配置安装Crail
1.更改conf/
>>cd $CRAIL_HOME/conf
>>mv core-site.xml.template core-site.xml
>>mv crail-site.conf.template crail-site.conf
>>mv crail-env.sh.template crail-env.sh
>>mv slaves.template slaves
将所有带.template后缀的文件名删去.template
2.设置crail-site.conf与core-site.xml文件
红色框线处可根据自己需要更改
3.安装crail
>>cd $CRAIL_HOME
>>mvn -DskipTests install
耐心等待一段时间,安装完成后如下图
4.复制libdisni.so
将libdisni.so复制到 $CRAIL_HOME/assembly/target/apache-crail-1.2-incubating-SNAPSHOT-bin/apache-crail-1.2-incubating-SNAPSHOT/lib 目录下
>>cd $CRAIL_HOME/assembly/target/apache-crail-1.2-incubating-SNAPSHOT-bin/apache-crail-1.2-incubating-SNAPSHOT/lib
>>cp /usr/local/lib/libdisni.so .
其中libdisni.so文件的路径可以通过以下命令找到
>>whereis libdisni.so
配置集群
将 $CRAIL_HOME/assembly/target 目录下的 apache-crail-1.2-incubating-SNAPSHOT-bin.tar.gz 复制到 client 端,
>>scp $CRAIL_HOME/assembly/target/apache-crail-1.2-incubating-SNAPSHOT-bin.tar.gz client@ip_address:/home/Desktop
在client端解压缩
解压缩后得到 apache-crail-1.2-incubating-SNAPSHOT 文件夹
然后将libdisni.so文件同样发送到client端,并将其放置在/home/Desktop/apache-crail-1.2-incubating-SNAPSHOT/lib目录下
并配置client端的 CRAIL_HOME
>>cd /home/Desktop
>>tar xzvf apache-crail-1.2-incubating-SNAPSHOT-bin.tar.gz
>>cd apache-crail-1.2-incubating-SNAPSHOT/lib
>>cp /home/Desktop/libdisni.so .
>>sudo vi ~/.bashrc
增加一行CRAIL_HOME,如下图
启动测试
1.运行namenode与datanode
在 $CRAIL_HOME/assembly/target/apache-crail-1.2-incubating-SNAPSHOT-bin/apache-crail-1.2-incubating-SNAPSHOT/bin 目录下运行如下代码
>>./crail namenode
>>./crail datanode
2.client测试
在 /home/Desktop/apache-crail-1.2-incubating-SNAPSHOT/bin 目录下运行如下代码
具体测试方案可参考官网:https://incubator-crail.readthedocs.io/en/latest/iobench.html
>>./bin/crail iobench -t write -s $((1024*1024)) -k 100
>>./bin/crail iobench -t readSquential -s $((1024*1024)) -k 100