Posts List

spark读取hbase内容及在集群环境下的配置

spark读取hbase 对于读取hbase,spark提供了newAPIHadoopRDD接口可以很方便的读取hbase内容。下面是一个具体的例子: 首先,加入下面依赖: <dependencies> <dependency> <groupId>org.apache.spark</groupId> <artifactId>spark-core_2.10</artifactId> <version>1.4.1</version> <scope>provided</scope> </dependency> <dependency> <groupId>org.apache.hbase</groupId> <artifactId>hbase-common</artifactId> <version>1.1.2</version> </dependency> <dependency> <groupId>org.apache.hbase</groupId> <artifactId>hbase-client</artifactId> <version>1.1.2</version> </dependency> <dependency> <groupId>org.apache.hbase</groupId> <artifactId>hbase-server</artifactId> <version>1.1.2</version> </dependency> </dependencies> 下面的例子从hbase数据库中读取数据,并进行RDD操作,生成两两组合。 import org.apache.hadoop.hbase.HBaseConfiguration; import org.apache.hadoop.hbase.util.Base64; import org.apache.hadoop.hbase.util.Bytes; import org.apache.spark.api.java.JavaSparkContext; import org.apache.spark.api.java.JavaRDD; import org.apache.spark.SparkConf; import org.apache.spark.api.java.function.Function; import org.apache.spark.api.java.function.Function2; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.hbase.client.Scan; import org.apache.hadoop.hbase.client.Result; import org.apache.hadoop.hbase.io.ImmutableBytesWritable; import org.apache.hadoop.hbase.mapreduce.TableInputFormat; import org.apache.spark.api.java.JavaPairRDD; import org.apache.hadoop.hbase.protobuf.ProtobufUtil; import org.apache.hadoop.hbase.protobuf.generated.ClientProtos; import org.apache.spark.api.java.function.PairFunction; import scala.Tuple10; import scala.Tuple2; import java.io.IOException; import java.util.ArrayList; import java.

spark 配置及使用

spark配置 spark的配置文件放在conf目录下,默认会有类似xx.template的模板文件,去掉后缀.template就可以作为spark相应的配置文件。 spark 在阿里云上的配置 在一般的云服务器上一般会有两个ip地址,比如阿里云主机上,eth0默认是内部网络ip(用于阿里云主机之间通信),eth1才是外网可访问的ip地址。 spark会默认会使用8080端口作为UI端口号,并且绑定在0.0.0.0上,也就意味着外部网络可以通过 http://eth1_ip:8080访问spark UI界面, 如果要改变端口号,在conf/spark-env.sh文件中加入下面内容即可 export SPARK_MASTER_WEBUI_PORT=8090 如果当前指定的端口号被别的应用程序占用,spark自动会继续加1往下找到一个可用的端口号。 Spark的log级别设置 默认情况下,spark会在屏幕打印INFO级别以上的log,这些信息对于调试来说很重要,但是当spark程序正常运行时,可能不需要这么多信息,这个时候,可以通过修改 conf/log4j.properties: 在文件中找到该行: log4j.rootCategory=INFO, console 将其修改成 log4j.rootCategory=WARN, console