전기 공급 업체 사용자의 초상화를 구축하는 환경

우리 모두가 알다시피, 하이브의 사명은 맵리 듀스로 계산 HQL하는 것입니다, 하이브의 전체 솔루션은 매우 훌륭하지만 결과는 시간이 오래 걸릴에 제출 쿼리에서 쿼리 작업이 너무 오래 걸리 반환됩니다. 우리는 맵리 듀스 작업을 생성하지만, 스파크 작업을 생성하지 않습니다 그래서 만약 하이브는, 네이티브 맵리 듀스 기반이기 때문에 주된 이유는, 신속하게 HiveHQL의 응답 시간을 단축 불꽃을 수행 할 수있는 능력을 활용할 수 있습니다.

이 프로젝트는 SparkSql가 하이브와 통합 사용, 하이브는 분석 SparkSql, 느린 성능 특성의 결과로, 작업을 처리하기 위해 맵리 듀스를 사용하여 HiveHQL 바닥에 의한 테이블의 메타 데이터, 대신의 불꽃 더 강력한 엔진을 읽고 처리, 빠른 사용자가 사용자를 구축하기 위해 초상화를 태그합니다.

6.1 제조 환경

Ø 1, 하둡 클러스터 (프로필 참조) 구축

Ø 2 설치 하이브 건물 데이터웨어 하우스 (프로파일 참조)

Ø 3 설치 스파크 클러스터 (프로파일 참조)

Ø 4, sparksql 통합 하이브

6.2 sparksql 통합 하이브

   스파크 SQL의 주 목적은 사용자가 데이터 소스 RDD 일 수 스파크에 SQL을 사용 할 수 있도록이 데이터를 외부 소스 일 수있다 (텍스트, 하이브 JSON 등). 하이브 HQL, 변환 로직 실행 계획, 실행 계획 최적화 논리를 해결하기 위해 사용중인 하이브에 지점 스파크입니다 스파크 SQL, 우리는 단지 물리적 실행 계획이 MR을 교체하는 작업에서 스파크 작업이되었다에 근접 할 수있다. SparkSql 통합 하이브 하이브 메타 데이터 정보 테이블을 취득하고 SparkSql 통해 데이터를 조작.

통합 단계 :

①이 구성 파일 저장 위치와 데이터 및 메타 데이터 하이브를 찾을 수 있도록, 하이브-site.xml의 불꽃 conf 디렉토리에 파일을 복사해야합니다.

② 하이브 MySQL을 내에 저장된 메타 데이터는, 우리는 또한 제조 할 필요가있는 경우와 같은 운전 MySQL이 관련 : MySQL을 커넥터 자바 5.1.35.jar

6.3 sparksql 시험 여부를 성공적으로 통합 하이브

먼저 시작 하둡 클러스터는 성공적인 시작을 보장하기 위해 스파크 클러스터를 시작한 후 다음 명령을 실행합니다

/ var / local을 / 스파크 / 빈 / 스파크-SQL --master 스파크 : // itcast01 : 7077 --executor 메모리 1g --total - 집행 - 코어 4

표시 마스터 주소, 모든 실행 프로그램 메모리 크기, 핵 요구의 총 수,

MySQL의 데이터베이스 연결 드라이버.

인터페이스의 성공적인 구현 후 : 스파크-SQL 클라이언트 명령 줄 인터페이스로 이동,
전기 공급 업체 사용자의 초상화를 구축하는 환경
당신은 다음 SQL 문을하여 데이터베이스 테이블을 조작 할 수 있습니다 :

현재 데이터베이스 --- 쇼 데이터베이스를 가지고있는 참조;
전기 공급 업체 사용자의 초상화를 구축하는 환경
sparksql 통합 하이브 성공을 나타내는 결과 위에 볼!

너무 많은 로그, 우리는 스파크 로그 출력 레벨을 수정할 수 있습니다 (conf의 / log4j.properties)

고 에너지 전면 :

spark2.0 버전 이후 인해 sparkSession, 초기화는 SqlContext 시간의 출현으로, 기본 spark.sql.warehouse.dir = 스파크 창고를 설정합니다,

이 시점에서 sparksql 통합 후 하이브는 스파크 창고의 현재 디렉토리에 spark.sql.warehouse.dir을 만드는 곳 sparksql 시작됩니다 sparksql 스크립트 또는 스크립트에 의해 부팅시, 완료 디렉토리 스파크-SQL에서 작성한 데이터와 테이블을 생성하는 데이터베이스의 정보를 저장하기 위해, 하이브 이전 데이터 레이트 (서로 액세스 할 수있는) 동일한 경로에 배치되지 않는다. 그러나 스파크-SQL 데이터 테이블 로컬 이번에는 작업에 도움,도 안전하지 않습니다.

모든 시작과 같은 인수에 추가해야합니다 :

--conf spark.sql.warehouse.dir = HDFS : // 노드 1 : 9000 / 사용자 / 하이브 / 창고

sparksql와 하이브의 최종 용도가 같은 디렉토리 데이터 저장소에 하이브 시작 sparksql 때 데이터를 저장하는 새로운 디렉토리를 생성하지 않겠다고 약속.

더 sparkSession가 없기 때문에, spark2.0의 이전 버전을 사용하는 경우, spark.sql.warehouse.dir 구성 항목을 없을 것이다, 문제가 발생하지 않습니다.

스크립트의 마지막 실행,
스파크-SQL \

--master 스파크 : // 노드 1 : 7077 \

--executor 메모리 1g의 \

--total - 연기자 - 색상 2 \

--conf spark.sql.warehouse.dir = HDFS : // 노드 1 : 9000 / 사용자 / 하이브 / 창고

추천

출처blog.51cto.com/14473726/2439624