关闭

hadoop2.6.0伪分布式+spark1.6.0配置记录

标签: sparkhadoop
510人阅读 评论(0) 收藏 举报
分类:

1、hdfs-site.xml文件:

<configuration>
    <property>
        <name>dfs.name.dir</name>
        <value>/spark/hadoop-2.6.0/tmp/dfs/name</value> #只需要手动创建/spark/hadoop-2.6.0/tmp目录就好
    </property>
    <property>
        <name>dfs.data.dir</name>
        <value>/spark/hadoop-2.6.0/tmp/dfs/data</value> #只需要手动创建/spark/hadoop-2.6.0/tmp目录就好
    </property>
    <property>
        <name>dfs.replication</name>
        <value>1</value>
    </property>
</configuration>
2、core-site.xml文件:

<configuration>
    <property>
        <name>fs.default.name</name>
        <value>hdfs://kid</value> #kid是我的主机名
    </property>
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/spark/hadoop-2.6.0/tmp</value> #手动创建这个目录
    </property>
</configuration>
3、mapred-site.xml文件:

<configuration>
    <property>
        <name>mapred.job.tracker</name>
        <value>localhost:9001</value>
    </property>
</configuration>
4、不用配置yarn-site.xml文件

5、在/spark/hadoop-2.6.0/etc/hadoop目录下创建文件masters,并写入kid(我的主机名)

6、在/spark/hadoop-2.6.0/etc/hadoop目录下创建文件slaves,并写入kid。和masters文件的内容一样,是因为这是伪分布模式,主从主机都是主节点本身。

7、其他需要导出的环境变量配置请参考别的文章,比较简单。

8、启动hadoop:

hadoop namenode -format
./start-all.sh #在/spark/hadoop-2.6.0/sbin下执行

打开http://localhost:50070就可以看到界面了

出现的小问题:

kid: ssh: connect to host kid port 22: Connection timed out
打开/etc/hosts之后,发现是因为ip地址与kid对应关系错了。

9、打开spark连接hadoop:

./start-all.sh #在/spark/spark-1.6.0/sbin下执行

打开http://localhost:8080就可以看到界面了

10、在hadoop上创建文件后,打开spark-shell界面,运行统计词频的代码:

hadoop dfs -mkdir -p /user/hadoop #创建目录
hadoop dfs -put input_file.txt /user/hadoop #上传文件
scala> val file=sc.textFile("hdfs:///user/hadoop/input_file.txt") #hdfs上的文件中径为:/user/hadoop/input_file.txt  
scala> val count=file.flatMap(line => line.split(" ")).map(word => (word,1)).reduceByKey(_+_)   
scala> count.collect() #输出结果  
scala> count.saveAsTextFile("hdfs:///user/hadoop/result") #存放到result目录下 
hadoop dfs -copyToLocal /user/hadoop/result ./ #下载结果

默认是从hdfs读取文件,也可以指定sc.textFile("路径").在路径前面加上hdfs://表示从hdfs文件系统上读
本地文件读取 sc.textFile("路径").在路径前面加上file:// 表示从本地文件系统读,如file:///home/user/spark/README.md






0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:83579次
    • 积分:1855
    • 等级:
    • 排名:千里之外
    • 原创:95篇
    • 转载:15篇
    • 译文:0篇
    • 评论:11条
    最新评论