设为首页 加入收藏

TOP

hadoop 阿里云伪分布式配置
2019-03-05 00:37:30 】 浏览:74
Tags:hadoop 阿里 云伪 分布式 配置

伪分布式配置(主要问题是阿里云安全组规则一定要配置,其次是vim /etc/hosts 里面是内网ip对应主机名,vim slaves是外网ip对应主机名)
输入ifconfig
查看内网ip地址

其中inet addr后即为内网ip
由于我买的阿里云系统是Ubuntu 所以关闭防火墙操作如下 centos关闭操作与此不同
输入ufw disable (关闭防火墙)
Firewall stopped and disabled on system startup
输入sudo ufw status (查看防火墙状态)
Status: inactive (表示已关闭)
(配置hosts文件的时候,本机用内网ip和主机名映射,并添加其他机器的公网ip和主机名的映射。)
输入vim /etc/hosts

127.0.0.1 localhost
172.19.155.254 zzz
# The following lines are desirable for IPv6 capable hosts
::1 localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

(inet addr:172.19.155.254 hostname -i 显示真实ip)


ssh免密登录一直回车
ssh -keygen -t rsa (多个设备同样操作)

cd ./ssh

ssh-copy-id -i ~/.ssh/id_rsa.pub zzz(多个设备同样操作)


xshell与xftp5使用问题不再描述
我这里下载的是jdk-8u11-linux-i586.tar.gz 和hadoop-2.9.0
对于下载jdk和hadoop安装包问题不再描述(下载的位数一定要跟系统位数相匹配,系统位数查看 命令行输入uname -a)
新建 /user存放jdk和hadoop安装包
tar -zxvf jdk-8u11-linux-i586.tar.gz -C /user(解压下载的jdk到/user目录,这里是在本机下载用xftp5上传到云平台)
hadoop下载解压同理
都解压后配置环境变量
vim /etc/profile

export JAVA_HOME=/user/jdk1.8.0_11
export PATH=$JAVA_HOME/bin:$PATH
#设置环境变量

source /etc/profile (表示不用重启直接应用当前更改的环境变量)

vim /etc/profile

export HADOOP_HOME=/user/hadoop-2.9.0
export PATH=$HADOOP_HOME/bin:$PATH

source /etc/profile
查看java路径
echo $JAVA_HOME
vimhadoop-env.sh

${JAVA_HOME}改为/user/jdk1.8.0_11


:wq 强制性写入文件并退出。即使文件没有被修改也强制写入,并更新文件的修改时间。:x 写入文件并退出。仅当文件被修改时才写入,并更新文件修改时间,否则不会更新文件修改时间。这两者一般情况下没什么不一样,但是在编程方面,对编辑源文件可能会产生重要影响。因为文件即使没有修改,":wq"强制更新文件的修改时间,这样会让make编译整个项目时以为文件被修改过了,然后就得重新编译链接生成可执行文件。这可能会产生让人误解的后果,当然也产生了不必要的系统资源花销。
切换到hadooop目录
cd/user/hadoop-2.9.0/etc/hadoop
ls 可以看有哪些文件
配置core-site.xml

vimcore-site.xml

<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://zzz:8020</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/user/tmp</value>
</property>
</configuration>
Namenode,所在的机器9000端口是早期Hadoop 1.x使用的,现在 Hadoop 2.x使用的是8020端口号用于节点直接内部通信,使用RPC通信机制)


配置hdfs-site.xml
vimhdfs-site.xml
<property>
<name>dfs.replication</name>
<value>1</value>
</property>(默认是3这里配置1,伪分布式)
<property>
<name>dfs.http.address</name>
<value>0.0.0.0:50070</value>
</property>
</configuration>

要创建tmp目录
mkdir /user/tmp

输入cd 回车直接退到原始目录
执行pwd指令可立刻得知您目前所在的工作目录的绝对路径名称
echo 输出一串字符串 或者输出变量存的值

配置 yarn-site.xml
vim yarn-site.xml
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>zzz</value>
</property>

配置mapred-site.xml.template
是个模板 需要拷贝一份
需要先cpmapred-site.xml.templatemapred-site.xml
然后vim mapred-site.xml

<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>zzz</value>
</property>

vim slaves
这里 前面是外网地址 然后是主机名
47.100.42.75 zzz


这部分用不到:第二步:分发安装包 scp -r ~/user zzz@zzz001:~/
scp -r ~/user zzz@zzz002:~/
scp~/.bash_profilezzz@zzz001:~/
scp~/.bash_profilezzz@zzz001:~/
一个机器安装其他直接分发 也可以解压再分发 用户名都一样 机器名设置的不一样 分发完要在各个机器上生效 source~/.bash_profile)


第二步:namenode格式化:只要在主节点执行hdfs namenode -format(namenode写成name)(这里Y要大写)
在这个目录下格式化/user/hadoop-2.9.0/bin

出现 common.Storage 即成功 表是存储路径
/bin/hdfs namenode -format
启动hadoop集群 在
/user/hadoop-2.9.0/sbin
目录下运行start-all.sh ./start-all.sh
./hadoop-daemon.sh start namenode
./hadoop-daemon.sh start datanode(这是单独启动)
cd /user/hadoop-2.9.0/sbin/
./start-all.sh
./start-dfs.sh 启动hdfs
还有个可以分别单独启动的 不再赘述
./stop-all.sh这是全部停止

验证 否成功启动
方式1:
执行是如下进程
cd
jps
19744 NameNode
20195 ResourceManager(前两个主)
20051 SecondaryNameNode
20628 Jps
19879 DataNode
20302 NodeManager(后两个从)
datanode进程起不来问题,就是jps查看进程之后少一个datanode。
rm -rf /user/tmp/
这个路径是在前面core-site.xml 配置文件中对应的路径。然后重新启动。
namenode进程起不来。
rm -rf /user/tmp/
hadoop namenode -format
重新格式化namenode之后再重新启动。
(每次重新格式化都要:如果dfs文件夹中没有重要的数据,那么删除dfs文件夹,再重新运行下列指令:(删除所有节点下的dfs文件夹,dfs目录在${HADOOP_HOME}/tmp/)
hadoop namenode -format
sbin/start-dfs.sh)

(如果有后面的zzz001 zzz002 只有后面两个
DataNode
NodeManager)

更改配置文件后4步走 先stop然后删除rm -rf/user/tmp/ 然后格式化namenode 然后start

端口连接排查:
netstat -ant查看端口
一定要配置安全组规则 50070 8088 在阿里云 安全组规则 添

加安全组规则里 入和出都要配置 (:50070连接超时解决办

法)



公网ip:50070/dfshealth.html
47.100.42.75:50070/dfshealth.html
http://47.100.42.75:8088/cluster




1.对hdfs操作的命令格式是hadoop fs
1.1 -ls 表示对hdfs下一级目录的查看
1.2 -lsr 表示对hdfs目录的递归查看
1.3 -mkdir 创建目录
1.4 -put 从linux上传文件到hdfs
1.5 -get 从hdfs下载文件到linux
1.6 -text 查看文件内容
1.7 -rm 表示删除文件
1.7 -rmr 表示递归删除文件
wordcount测试
新建data文件夹
cd/user/hadoop-2.9.0
输入hadoop fs -mkdir /data/input
通过xftp5在linux中新建一个1.txt文件 随便搜一篇英文短文保存进去
然后
hadoop fs -put /user/test/1.txt /data/input 放进去
hadoop fs -ls /data/input可以看到里面多了一个文件
18/05/03 20:01:50 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
Found 1 items
-rw-r--r--1 root supergroup801 2018-05-03 20:01 /data/input/1.txt
然后切换到
cd /user/hadoop-2.9.0/share/hadoop/mapreduce
然后输入
hadoop jar hadoop-mapreduce-examples-2.9.0.jar wordcount /data/input /data/result
如果发现最开始某些地方配置错误 需要停止hadoop然后重新格式化namenode
MapReduce执行是不允许输出目录存在的,自动创建
执行完毕后
hadoop fs -ls /data/result
Found 2 items
-rw-r--r--1 root supergroup0 2018-05-03 20:02 /data/result/_SUCCESS
-rw-r--r--1 root supergroup792 2018-05-03 20:02 /data/result/part-r-00000
第一个文件表示成功

hadoop fs -cat/data/result/part-r-00000
可以查看运行结果
Look1
After1
Finally,1
His1
Johnson4
Mr.4
They1
Those1
We're1
a5
about2
accepting.1
accidents,1
aerophane1
again,1
air1
这个wordcount没有那么智能,它只是按空格来分辨是不是一个单词的。



】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇Hadoop与MongoDB整合(Hive篇) 下一篇生产环境下hadoop HA集群及Hbase ..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目