2014-01-08 2 views
0

floks원격 서버 접근으로 데이터를 가져와 hdfs에 저장

여기 클라이언트 관련 질문이 있습니다. SQL Server (RDBMS)에서 hdfs (hadoop 클러스터)로 테이블을 가져오고 싶습니다. 그러나 서버는 다른 위치에 있습니다.

1) 서브에 액세스하는 가장 좋은 방법은 무엇입니까?하지만 데이터는 엄청납니다.

2) 하나의 서버와 연결하는 것은 괜찮습니다. 우리는이 서버에서 데이터를 가져와야하는 전세계 많은 서버를 보유하고 있습니다.

3) 우리는 sqoop을 원격으로 연결하여 HDFS로 데이터를 가져올 수 있습니까?

답변

1

귀하의 질문은 약간 명확하지 않지만, 예, 서버에서 HDFS로 데이터를 가져 오기 위해 sqoop을 사용할 수 있습니다. 당신은 데이터를 가져올 때 연결 매개 변수를 지정해야합니다

sqoop import --connect <JDBC connection string> --table <tablename> --username <username> --password <password> 

여러 서버에서 여러 수입을해야하는 경우

, 나는 당신이이 수입을 자동화 Oozie를 시도하는 것이 좋습니다. 튜토리얼을 통해 here을 얻을 수 있습니다.

+0

가 실제로 내 서버가 다른 위치에

안부, 아딜, 난 인터넷을 통해 해당 서버에 액세스 할 수 있습니다. 따라서 클라이언트 시스템에는 엄청난 양의 데이터가 있습니다. 데이터 손실없이 hdfs에 원격으로 위치한 서버 데이터를 가져 오는 방법. – user3174067

+0

좋아, 다른 위치의 서버에서 클러스터의 HDFS로 데이터를 이동해야한다는 의미일까요? 그렇다면 sqoop 가져 오기 명령의 문제점은 어디에 있습니까? – Balduz

+0

sqoop은 물리적으로 위치한 서버에서만 데이터를 가져 오는 데 사용됩니다. 나는 생각하지 않습니다. – user3174067

0

sqoop 가져 오기를 기록하기 전에 로컬 DB가 식별 할 각 원격 노드에 대한 사용자가 있어야합니다. 예 :

create user 'username'@'<ip of remote node>' IDENTIFIED BY 'password'; 

사용자의 요구 사항에 따라 이러한 사용 권한을 확인해야합니다. 그런 다음 당신이 아래와 같이 Sqoop을 가져 오기, 하나의 예를 들어 프레임 수입니다 :

$SQOOP_HOME/bin/sqoop import --connect jdbc:mysql://<ip address of remote server node> :port_number/<database_name> --username user --password password --table <table to import> 

이 질문은 내가 문제가 해결하지만 경우 누군가되었을 것입니다 바라고 있어요 그래서에 가고 싶어이 답변 5 개월입니다 이 요구 사항에 대한 단계별 절차.

관련 문제