Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/59.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 粗粒化错误火花_Mysql_Scala_Apache Spark_Cassandra - Fatal编程技术网

Mysql 粗粒化错误火花

Mysql 粗粒化错误火花,mysql,scala,apache-spark,cassandra,Mysql,Scala,Apache Spark,Cassandra,我使用Spark 2.1.1和Scala 2.10,Spark单机版有两个节点 我想执行一个Spark代码,从MySQL表中读取数据集并将其写入Cassandra表 代码: object RdmsToCassandra extends Serializable { def main(args: Array[String]) { val conf = new SparkConf().set("spark.cassandra.connection.host", "192.168.22.231"

我使用Spark 2.1.1和Scala 2.10,Spark单机版有两个节点

我想执行一个Spark代码,从MySQL表中读取数据集并将其写入Cassandra表

代码:

object RdmsToCassandra extends Serializable {

def main(args: Array[String]) {
  val conf = new SparkConf().set("spark.cassandra.connection.host", "192.168.22.231")
  val sc = new SparkContext("spark://192.168.22.231:7077", "MigrateMySQLToCassandra", conf)
  val mysqlJdbcString: String = s"jdbc:mysql://192.168.22.238/customer_events?user=root&password=qweqwe"
  Class.forName("com.mysql.jdbc.Driver").newInstance

    CassandraConnector(conf).withSessionDo { session =>
    session.execute("CREATE KEYSPACE IF NOT EXISTS test WITH replication = {'class': 'SimpleStrategy', 'replication_factor': 2 }")
    session.execute("CREATE TABLE IF NOT EXISTS test.store(  store_name text PRIMARY KEY, location text, store_type text)" )
  }
  val highestId: Long = 2
  val startingId: Long = 0
  val numberOfPartitions = 1;

val customerEvents = new JdbcRDD(sc, () => { DriverManager.getConnection(mysqlJdbcString)},
    "select * from store limit ?, ?",startingId,  highestId,  numberOfPartitions,
     (r: ResultSet) => {
        (r.getString("store_name"),
        r.getString("location"),
        r.getString("store_type")
        )
    }
    )


  customerEvents.saveToCassandra("test", "store1",
      SomeColumns("store_name"))

}

}
我使用以下命令提交应用程序:

spark-submit --master spark://192.168.22.231:6066 \
  --class "RdmsToCassandra" \
  rdbmstocassandra_2.10-1.0.jar
在执行过程中,我遇到以下错误_

使用Spark的默认log4j配置文件: org/apache/spark/log4j-defaults.properties 17/05/26 15:45:51信息 GrossGrainedExecutorBackend:已启动进程名为的守护程序: 10619@totalprices-db-server-02 17/05/26 15:45:51信息信号: 术语17/05/26 15:45:51信息信号的注册信号处理程序: HUP的注册信号处理程序17/05/26 15:45:51信息信号: INT注册信号处理器17/05/26 15:45:51警告 NativeCodeLoader:无法为您的应用程序加载本机hadoop库 站台。。。在适用的情况下使用内置java类17/05/26 15:45:51信息安全管理器:将视图ACL更改为:root 17/05/26 15:45:51信息安全管理器:将修改ACL更改为:root 17/05/26 15:45:51信息安全管理器:将视图ACL组更改为:17/05/26 15:45:51信息安全管理器:将修改ACL组更改为: 17/05/26 15:45:51信息安全管理器:安全管理器: 认证被禁用;ui ACL被禁用;具有视图的用户 权限:Set(root);具有查看权限的组:Set();使用者 具有修改权限:设置(根);具有修改权限的组: Set()17/05/26 15:45:52信息传输客户端工厂:成功 在60毫秒后创建到/192.168.22.231:36249的连接(在中花费0毫秒 引导)17/05/26 15:45:52信息安全管理器:更改视图ACL 收件人:root 17/05/26 15:45:52信息安全管理器:更改修改ACL 收件人:root 17/05/26 15:45:52信息安全管理器:更改视图ACL 组收件人:17/05/26 15:45:52信息安全管理器:更改修改 acls组收件人:17/05/26 15:45:52信息安全管理员: SecurityManager:已禁用身份验证;ui ACL被禁用;使用者 具有查看权限:Set(root);具有查看权限的组:Set(); 具有修改权限的用户:Set(root);具有修改功能的组 权限:Set()17/05/26 15:45:52信息传输客户端工厂: 1毫秒后成功创建到/192.168.22.231:36249的连接(0 ms在引导中花费)17/05/26 15:45:52警告Utils:您的主机名, totalprices-db-server-02解析为环回地址:127.0.0.1; 改为使用221.243.36.126(在接口em1上)17/05/26 15:45:52警告 Utils:如果需要绑定到其他地址,请设置SPARK\u LOCAL\u IP 17/05/26 15:45:52信息DiskBlockManager:已在创建本地目录 /tmp/spark-73513e64-f52c-48c5-bf9e-bbc45caec12d/executor-fd21cdc3-673e-4b9e-9bd2-6cef1e3da140/blockmgr-157ab1c4-ca1e-481b-9357-B585EE6BEEF 17/05/26 15:45:52信息MemoryStore:MemoryStore以容量启动 2004.6 MB 17/05/26 15:45:52信息粗粒度执行器后端:连接到驱动程序: spark://CoarseGrainedScheduler@192.168.22.231:36249 17/05/26 15:45:52 信息WorkerWatcher:正在连接到worker spark://Worker@221.243.36.126:40561 17/05/26 15:45:52信息 TransportClientFactory:已成功创建到的连接 /221.243.36.126:26年5月17日1毫秒后的40561(在引导过程中花费0毫秒) 15:45:52信息WorkerWatcher:已成功连接到 spark://Worker@221.243.36.126:40561 17/05/26 15:45:52信息 GrossGrainedExecutorBackend:已成功向驱动程序注册 17/05/26 15:45:52信息执行器:正在主机上启动执行器ID 0 221.243.36.126 17/05/26 15:45:52信息实用程序:已在上成功启动服务“org.apache.spark.network.netty.NettyBlockTransferService” 端口43114。17/05/26 15:45:52信息NettyBlockTransferService:服务器 创建于221.243.36.126:43114 17/05/26 15:45:52信息区块管理器: 对块使用org.apache.spark.storage.RandomBlockReplicationPolicy 复制策略17/05/26 15:45:52信息区块管理器管理员: 正在注册BlockManager BlockManagerId(0,221.243.36.126,43114, 无)17/05/26 15:45:52信息区块管理员:已注册 BlockManager BlockManagerId(0221.243.36.12643114,无)17/05/26 15:45:52信息区块管理器:已初始化区块管理器: BlockManagerId(0221.243.36.12643114,无)17/05/26 15:46:00信息 后端粗粒化:26年5月17日,驾驶员命令停机 15:46:00错误粗粒度执行器后端:接收信号项 崩溃


有人能告诉我这里有什么问题吗。

我知道这有点老了,但可能对路过的其他人有帮助:

我遇到了一个类似的问题,通过对NodeManager日志的调查,我找到了根本原因。 您可以通过Web界面访问它们

nodeManagerAdress:PORT/logs
端口在warn.nodemanager.webapp.address下的warn-site.xml中指定。(默认值:8042

我的调查工作流程:

object RdmsToCassandra extends Serializable {

def main(args: Array[String]) {
  val conf = new SparkConf().set("spark.cassandra.connection.host", "192.168.22.231")
  val sc = new SparkContext("spark://192.168.22.231:7077", "MigrateMySQLToCassandra", conf)
  val mysqlJdbcString: String = s"jdbc:mysql://192.168.22.238/customer_events?user=root&password=qweqwe"
  Class.forName("com.mysql.jdbc.Driver").newInstance

    CassandraConnector(conf).withSessionDo { session =>
    session.execute("CREATE KEYSPACE IF NOT EXISTS test WITH replication = {'class': 'SimpleStrategy', 'replication_factor': 2 }")
    session.execute("CREATE TABLE IF NOT EXISTS test.store(  store_name text PRIMARY KEY, location text, store_type text)" )
  }
  val highestId: Long = 2
  val startingId: Long = 0
  val numberOfPartitions = 1;

val customerEvents = new JdbcRDD(sc, () => { DriverManager.getConnection(mysqlJdbcString)},
    "select * from store limit ?, ?",startingId,  highestId,  numberOfPartitions,
     (r: ResultSet) => {
        (r.getString("store_name"),
        r.getString("location"),
        r.getString("store_type")
        )
    }
    )


  customerEvents.saveToCassandra("test", "store1",
      SomeColumns("store_name"))

}

}
  • 收集原木(纱线原木…命令)
  • 标识发出错误的节点和容器(在这些日志中)
  • 按错误的时间戳搜索NodeManager日志以查找根本原因
  • 顺便说一句:您可以通过以下方式访问影响同一端口上节点的所有配置的聚合集合(xml):

     nodeManagerAdress:PORT/conf
    

    我知道它有点老了,但可能对路过的其他人有帮助:

    我遇到了一个类似的问题,通过对NodeManager日志的调查,我找到了根本原因。 您可以通过Web界面访问它们

    nodeManagerAdress:PORT/logs
    
    端口在warn.nodemanager.webapp.address下的warn-site.xml中指定。(默认值:8042

    我的调查工作流程:

    object RdmsToCassandra extends Serializable {
    
    def main(args: Array[String]) {
      val conf = new SparkConf().set("spark.cassandra.connection.host", "192.168.22.231")
      val sc = new SparkContext("spark://192.168.22.231:7077", "MigrateMySQLToCassandra", conf)
      val mysqlJdbcString: String = s"jdbc:mysql://192.168.22.238/customer_events?user=root&password=qweqwe"
      Class.forName("com.mysql.jdbc.Driver").newInstance
    
        CassandraConnector(conf).withSessionDo { session =>
        session.execute("CREATE KEYSPACE IF NOT EXISTS test WITH replication = {'class': 'SimpleStrategy', 'replication_factor': 2 }")
        session.execute("CREATE TABLE IF NOT EXISTS test.store(  store_name text PRIMARY KEY, location text, store_type text)" )
      }
      val highestId: Long = 2
      val startingId: Long = 0
      val numberOfPartitions = 1;
    
    val customerEvents = new JdbcRDD(sc, () => { DriverManager.getConnection(mysqlJdbcString)},
        "select * from store limit ?, ?",startingId,  highestId,  numberOfPartitions,
         (r: ResultSet) => {
            (r.getString("store_name"),
            r.getString("location"),
            r.getString("store_type")
            )
        }
        )
    
    
      customerEvents.saveToCassandra("test", "store1",
          SomeColumns("store_name"))
    
    }
    
    }
    
  • 收集原木(纱线原木…命令)
  • 标识发出错误的节点和容器(在这些日志中)
  • 按错误的时间戳搜索NodeManager日志以查找根本原因
  • 顺便说一句:您可以通过以下方式访问影响同一端口上节点的所有配置的聚合集合(xml):

     nodeManagerAdress:PORT/conf
    
    你能用p吗