[HADOOP] 어떻게 R을 통해 HDFS에 액세스 할 수?
HADOOP어떻게 R을 통해 HDFS에 액세스 할 수?
그래서, Windows 시스템에서 원격으로 R을 통해 HDFS 서버에 연결을 시도하고있다.
나는 그러나 "rhdfs"패키지 RStudio를 사용하고, 나는 HADOOP_CMD 환경 변수를 만들 수 있었다 때문에, 나는 코어를 site.xml을 환경 변수를주고, 변경하기 위해 내 컴퓨터에 하둡을 다운로드했습니다.
이전에 나는 키 테이블에 성공적으로 연결 Kerberos를 하이브 서버를 시도했다.
여기 내 코드는 다음과 같습니다
Sys.setenv(HADOOP_STREAMING =
"C:/Users/antonio.silva/Desktop/hadoop-2.7.3/share/hadoop/tools/lib/hadoop-streaming-2.7.3.jar")
Sys.setenv(HADOOP_CMD =
"C:/Users/antonio.silva/Desktop/hadoop-2.7.3/bin/hadoop")
Sys.setenv(HADOOP_HOME =
"C:/Users/antonio.silva/Desktop/hadoop-2.7.3")
Sys.getenv("HADOOP_STREAMING")
Sys.getenv("HADOOP_CMD")
Sys.getenv("HADOOP_HOME")
#loading libraries
library(rJava)
library(rmr2)
library(rhdfs)
#init of the classpath
hadoop.class.path <- list.files(path = c("C:/Users/antonio.silva/Desktop/jars/hadoop/"),
pattern = "jar", full.names = T)
.jinit(classpath=hadoop.class.path)
hdfs.init()
후 hdfs.defaluts ()을 hdfs.init () 메소드를 수행하고 수행 FS 변수와 작업 directore 동일한 디렉토리이다.
내가 무엇을 잘못하고 있지?
해결법
-
==============================
1.이런 해결책을 알아 냈다.
이런 해결책을 알아 냈다.
서버 Kerberos 인증 방법이있는 경우, 키 테이블 인증 서버에 액세스하는 것이 유용 할 수있다. 커버 로스 키 탭에 R을 통해 HIVE와 연결하는 방법을 참조하십시오?
그 후,이 경우, Windows 시스템, 클러스터의 하둡 존재하는 동일한 버전으로, 컴퓨터에 다운로드하고 하둡에게 Windows 디렉터리를 배치해야합니다.
그런 다음, 하둡을 구성 할 수는 포인트 "하둡 구성"할 때까지 다음 단계를 수행해야합니다. 하둡 단계 차근 윈도우 (10)에 설치 2.8.0
클러스터의 하둡은 로컬 컴퓨터에서 사용되는 일부 구성 파일이 포함되어 있습니다. 파일은 코어를 site.xml, 원사를 site.xml, HDFS-site.xml 파일입니다. 그들은 호스트 이름과 포트를 사용하는 클러스터에 사용되는 자격 증명의 종류 등 기본 FS와 클러스터에 대한 정보가 포함되어 있습니다.
추가 : 데이타 노드에 연결할 때 호스트 이름을 사용하려면, 당신은 HDFS-site.xml 파일에 다음 줄을 추가해야합니다.
<property> <name>dfs.client.use.datanode.hostname</name> <value>true</value> <description>Whether clients should use datanode hostnames when connecting to datanodes. </description> </property>
마지막으로, R의 연결을 수행하려면 다음 코드를 사용 :
#set The Environment variables in R Sys.setenv(HADOOP_HOME = "C:/Users/antonio.silva/Desktop/hadoop-2.7.3/bin/winutils.exe") Sys.setenv(HADOOP_CMD = "C:/Users/antonio.silva/Desktop/hadoop-2.7.3/bin/hadoop") Sys.setenv(HADOOP_STREAMING = "C:/Users/antonio.silva/Desktop/hadoop-2.7.3/share/hadoop/tools/lib/hadoop-streaming-2.7.3.jar") library(rhdfs) hdfs.init() hdfs.ls("/")
그리고 전혀 Kerberos를 하둡 클러스터에 대한 연결을 수행하는 데 필요한 것이다.
from https://stackoverflow.com/questions/53648755/how-to-acess-to-hdfs-via-r by cc-by-sa and MIT license
'HADOOP' 카테고리의 다른 글
[HADOOP] 설정 EC2 클러스터에 씽하는 소리를 사용하여 (0) | 2019.10.08 |
---|---|
[HADOOP] 설치 및 구성에 하둡 문제 (0) | 2019.10.08 |
[HADOOP] 감속기로 GZIP을 사용하여 손상된 데이터를 생성 (0) | 2019.10.08 |
[HADOOP] 저장 및 하둡 작업의 복잡한 쓰기 가능한 값을 읽어 (0) | 2019.10.08 |
[HADOOP] 하둡의 기본 정렬을 무시하는 방법 (0) | 2019.10.07 |