2017-01-23 5 views
0

사용자에게 현재 위치를 묻고 자신의 위도와 경도를 묻는 WAMP 서버를 사용하여 웹 애플리케이션에 액세스했습니다.mysql의 테이블에있는 데이터를 cloudera에로드하는 방법 (가상 박스를 사용하여 실행)

위도 및 경도 값은 mysql 데이터베이스의 테이블에 저장됩니다.

이제 위도와 경도 값을 사용하여 사용자에게 가장 가까운 위치를 제공해야합니다.

그래서 위도와 경도 값을 mysql 데이터베이스에서 가져 와서 hadoop으로 가져 오려고합니다.

나는 cloudera를 설치하고 가상 박스를 사용하여 시작했습니다. 지금 클라우 데라 명령 프롬프트에서 나는 TESTDB 내 데이터베이스 이름입니다이

$ bin/sqoop import --connect jdbc:mysql://192.168.56.1/testDb --table latlog --username root -P -m 1 

같은 쿼리를 사용하여 MySQL의 테이블에서 값을 가져올 때 내 테이블 이름은 latlog입니다

그것은이 같은 오류를 보여주고있다 :

오류가 문을 실행 : java.sql.SQLException의를 : 액세스가 사용자 '루트'@ 'localhost를'거부 (암호를 사용하지 : NO)은 java.sql.SQLException : 사용자 '루트'거부 액세스 @ 'localhost'(암호 사용 : 예)

로컬 시스템의 mysql 데이터베이스에 테이블을로드하여 가상 시스템 (cloudera)에서 hadoop으로로드하는 방법은 무엇입니까?

웹에서 제공되는 많은 솔루션을 시도했지만 해결할 수 없습니다. 어떤 도움은 매우 극명하게 될 것이다 .. 다음과 같이

+0

사용자 이름과 암호

덕분에 .. 당신은 dosent 일치 명령을 전달한다. 올바른 것을 입력하십시오. –

+0

네, 그걸 볼 수는 있지만 잘못 입력 한 것 같습니다. –

+0

아니, 왜냐하면 나는 위의 오류를주는 cloudera cmd에서 mysql에 액세스하려고 할 때 명령 프롬프트 (admin)에서 mysql을 열 때 동일한 자격 증명을 시도했기 때문이다. –

답변

0

클라우 데라 VM MySQL에서 데이터를 가져올 수있는 단계적 과정은 다음과 같습니다

  1. 다운로드 MySQL의 커넥터 - 자바-5.1.26-bin.jar를 것을 유지 복사
  2. 클라우 데라

  3. 의 데스크톱에서 Sqoop을 라이브러리에이 jar 파일 사용하여 명령

    sudo는 CP /home/cloudera/Desktop/mysql-connector-java-5.1.26-bin.jar는/usr/lib 디렉토리/Sqoop을/lib

  4. 지금 ipconfig 명령 예를 실행하여 시스템의 IPv4 주소를 명령을 시스템의 관리자로 cd /usr/lib/sqoop

  5. 열기 명령 프롬프트를 사용 Sqoop을하고 알고 현재 작업 디렉토리를 변경 : 지금 192.168.56.1

  6. 당신의 MySQL은 명령을 사용하여 모든 권한을 발행합니다.

    에 대한 모든 권한을 부여하십시오. to [email protected] 'root'와 (과) 보조금을 부과 함. TESTDB 데이터베이스 이름입니다

  7. 지금 클라우 데라 명령 행에서 테이블 이름 latlog입니다, 데이터 가져 오기 bin/sqoop import --connect jdbc:mysql://192.168.56.1/testDb --table latlog --username root -P -m 1
    이 명령을 제공합니다. 그런 다음 암호를 묻습니다. 암호는 root로 입력하십시오.이제 데이터가 가져온 데이터 명령을

    하둡을 줄 보려면

  8. Sqoop을

    를 사용하여 클라우 데라 (하둡) MySQL에서 수입됩니다 DFS -ls -R latlog

    그것은 가져온 데이터가 저장되어있는 파일을 보여줍니다 . 이 파일의 내용은 명령을

    하둡을 제공하기 위해 볼 - 고양이 latlog DFS/파트 m-00000 latlog 테이블의 모든 데이터를 인쇄

    .