복붙노트

[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. ==============================

    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를 하둡 클러스터에 대한 연결을 수행하는 데 필요한 것이다.

  2. from https://stackoverflow.com/questions/53648755/how-to-acess-to-hdfs-via-r by cc-by-sa and MIT license