安装及配置Hadoop
[1] 安装apt: sudo apt-get update
[2] 安装vim: sudo apt-get install vim
[3] 安装Java8: sudo apt-get install openjdk-8-jre openjdk-8-jdk
找到安装路径, 用于配置JAVA_HOME环境变量: dpkg -L openjdk-8-jdk
打开配置文件: vim ~/.bashrc
添加安装路径: export JAVA_HOME={JDK安装路径}
使变量生效: source ~/.bashrc
验证: $JAVA_HOME/bin/java -version
结果与java -version
结果相同。
[4] 安装和配置Hadoop
交叉参见: 零起点Centos+Hadoop+xgboost部署 (伪分布式)
将Hadoop安装至/usr/local/
中:1
2
3
4sudo tar -zxf ~/Downloads/hadoop-2.6.0.tar.gz -C /usr/local
cd /usr/local/
sudo mv ./hadoop-2.6.0/ ./hadoop
sudo chown -R hadoop ./hadoop
检验Hadoop版本:1
2cd /usr/local/hadoop
./bin/hadoop version
安装及配置Spark
[1] 下载地址: http://spark.apache.org/downloads.html
由于已经安装Hadoop,所以“Choose a package type”后选择“Pre-build with user-provided Hadoop”。
[2] 将Spark安装至/usr/local/
中:1
2
3
4sudo tar -zxf ~/Downloads/spark-2.3.0-bin-without-hadoop.tgz -C /usr/local
cd /usr/local/
sudo mv ./spark-2.3.0-bin-without-hadoop.tgz/ ./spark
sudo chown -R hadoop:hadoop ./spark
[3] 修改Spark的配置文件spark-env.sh
:1
2
3cd /usr/local/spark
cp ./conf/spark-env.sh.template ./conf/spark-env.sh
vim ./conf/spark-env.sh
[4] 添加: export SPARK_DIST_CLASSPATH=$(/usr/local/hadoop/bin/hadoop classpath)
, 用来把数据存储到Hadoop分布式文件系统HDFS中, 也可以从HDFS中读取数据。如果没有配置上面信息, Spark只能读写本地数据, 无法读写HDFS数据。
spark-shell命令
[1] 配置完成后可直接使用,不需要像Hadoop运行启动命令。可以通过运行Spark自带的示例验证Spark是否安装成功: bin/run-example SparkPi 2>&1 | grep "Pi is"
, 得到π的5位小数近似值。
[2] spark-shell命令及其常用的参数如下: ./bin/spark-shell --master <master-url>
。启动spark-shell后, 会进入scala>
命令提示符状态, 可以在里面输入scala代码进行调试。
[3] 最后, 可以使用命令:quit
退出Spark Shell。
安装及配置IoTDB
[1] git clone源码: git clone https://github.com/apache/incubator-iotdb.git
[2] 删除文件:1
2
3cd {incubator-iotdb路径}
rm -rf /iotdb/iotdb/data/
rm -rf /iotdb/iotdb/lib/
[3] 使用Maven编译: mvn clean package -pl iotdb,spark -am -Dmaven.test.skip=true
使用TsFile-Spark-Connector
[1] 命令: ./<spark-shell-path> --jars tsfile-spark-connector.jar,tsfile-0.8.0-SNAPSHOT-jar-with-dependencies.jar
, 远程后面添加--master spark://ip:7077
。两个jar分别在IoTDB build后的target文件夹中。
[2] 在HDFS中创建一个新文件夹, 用于保存tsfile文件: ./hdfs dfs -mkdir -p /input
创建空文件的命令: ./hdfs dfs -touchz /input/test1.tsfile
[3] 将本地文件存入HDFS: ./hdfs dfs -put test1.tsfile hdfs://localhost:9000/input
将文件取出: ./hdfs dfs -get hdfs://localhost:9000/input/test1.tsfile
Scala API
[1] 环境要求
Spark Version: 2.4.3, Scala Version: 2.11.8, Java Version: 1.8, TsFile: 0.8.0-SNAPSHOT
[2] 从本地文件读1
2
3
4import org.apache.iotdb.tsfile._
val df1 = spark.read.tsfile("test.tsfile")
df1.show
[3] 从HDFS文件读1
2val df2 = spark.read.tsfile("hdfs://localhost:9000/input/test1.tsfile")
df2.show
[4] 从HDFS文件夹读1
2val df3 = spark.read.tsfile("hdfs://localhost:9000/input")
df3.show
[5] query操作1
2
3
4
5
6
7df3.createOrReplaceTempView("tsfile_table")
val df4 = spark.sql("select * from tsfile_table where `root.d1.s1`>500 and `root.d1.s2` < 500")
df4.show
val df5 = spark.sql("select count(*) from tsfile_table")
df5.show
[6] 写操作1
df3.write.tsfile("hdfs://localhost:9000/input/test2.tsfile")
参考资料
[1] Hadoop安装教程_单机/伪分布式配置_Hadoop2.6.0/Ubuntu14.04 http://dblab.xmu.edu.cn/blog/install-hadoop/
[2] Spark2.1.0入门:Spark的安装和使用 http://dblab.xmu.edu.cn/blog/1307-2/
[3] https://iotdb.apache.org/#/Documents/Quick%20Start
[4] Hadoop系列(一)hdfs文件系统的基本操作 https://www.cnblogs.com/qizhelongdeyang/p/8960668.html