Hadoop Notes I
程序员文章站
2022-07-12 17:13:09
...
hadoop
分布式计算框架。
[内置模块]
1.common
2.hdfs
分布式存储。
Namenode
DataNode
secondaryNamenode
3.mapreduce
4.yarn
ResourceManager
Nodemanager
hadoop部署模式
local(standalone) //本地模式
pesudo //伪分布(1)
full //完全分布(n)
128M
磁盘速率.
寻道时间 :10ms。(机械硬盘不是固态)
往往寻道时间占用读取文件的时间的百分之一 也就是一秒
磁盘速度大概是每秒百兆左右
128M.
虚拟机
20.
链接克隆。
centos命令
ifconfig
ping
nano
file x.txt //查看文件类型
uname -a //查看系统信息。
tar -cf a.tar 1.txt 2.txt //将1,2文件归档成tar
tar -xzvf a.tar -C out //z指定压缩,
gzip //原地压缩解压
gzip 1.txt 2.txt //压缩
gzip -d 1.txt 2.txt //解压
df //
df -h
cd -P . //进入物理目录
pwd //当前目录
whoami //当前用户
which which //
basename /a/b/c/d //d
basename /a/b/c/d/ //d
dirname /a/b/c // /a/b
环境变量
echo $PATH //ok
echo ${PATH}XXX //ok
echo "$PATH"XXX //ok
echo '$PATH'XXX //原样输出
脚本中for循环
//语法.
for x in 1 2 3 4; do echo $x ; done
[9.sh]
#!/bin/bash
for (( i=0 ; i<9 ; i=$i+1 )) ; do
echo $i
done
while循环
#!/bin/bash
#99表格
i=1
while (( i<=9 )) ; do
j=1
while (( j<=$i )) ; do
echo -ne ${j}x${i}=$(( j*i ))'\t'
j=$(( j+1 ));
done
i=$(( i+1 ))
echo
done
vmware网络连通方式
1.bridge
桥接,经过物理网卡。client等价于一台真实物理机.
2.NAT
net address tranform,网络地址转换.
通过虚拟网卡,v8.
host没有网络,client和host之间仍然可以通信。
client可以访问internet/局域网。
局域网的其他主机无法client.
3.only-host
和NAT相似,client无法外网。
更加安全。
配置网络文件
//配置ip dns
[/etc/sysconfig/network-scripts/ifcfg-enthxxx]
//hostname
[/etc/hostname]
//hosts
[/etc/hosts]
//resolv.conf
配置dns名称服务器。
sed
流方式的字处理程序。不需要打开文件,直接修改。
sed '1p' x.txt
//打印第一行
sed -n '1p' 1.txt //首行
sed -n '$p' 1.txt //最后一行
sed -n '1,$p' 1.txt //全部行
sed -n '/tom3/p' 1.txt //显式包含tom3的行
//删除第一行,直接修改源文件
sed -i '1d' 1.txt
//追加行
sed -i '1ahow you' 1.txt //在第一行之后追加一行
sed -i '1,3ahow you' 1.txt //在第一行之后追加一行
sed -i '1,3a how you' 1.txt //不好使
sed -i '1,3a\ how you' 1.txt //空格开头需要\转义
//插入,在指定行之前插入,
sed -i '1,3i\ how you' 1.txt //
//覆盖,整行覆盖。
sed -i '1,2chow' 1.txt //将1,2行整体替换成how
//使用dest替换src,按照单词替换
sed -i 's/src/dest/g' 1.txt
sed -i 's/hello/how/g' 1.txt
kill -9 2313423
awk
awk '{print $1}' 1.txt //打印文件的第一列,使用空格分割每行
awk -F ',' '{print $1}' 1.txt //指定分隔符
awk -F ',' 'BEGIN {print "start"} {print $1} END {print "end"}' 1.txt //输出页眉页脚
//动态提取ip
$>ifconfig | grep inet | head -1 | awk '{print $2}'
访问linux命令执行结果
echo $? //0:成功 非0:失败.
a && b //a和b都需要成功执行。
a || b //a成功,b不执行,a失败,b执行。
a ; b //a先执行,再执行b,没有逻辑关系,切换目录
(a ; b) //不切换目录
$的应用
s? //上次命令执行结果
$# //访问所有参数
$1 //第几个参数
$o //脚本名称
[email protected] //参数个数
shift //漂移.移动
netcat(linux)
[服务器]
nc -lk 8888 //启动服务器,k:多个连接 l:监听
[client]
nc localhost 8888 //通信
//传输文件
nc -l 8888 >> a.txt //重定向输出
nc localhost 8888 < k.txt //重定向输入
netcat(windows)
nc -l -L -p 8888 //监听-L:多个监听 -p:端口
nc localhost 8888 //客户端了连接
使用命令读取网络设备名称
nmcli d
/etc/sysconfig/network-scripts/ifcfg-ethxxxx
ens33
编写修改机器脚本
[/usr/local/bin/xmachine.sh 101]
#!/bin/bash
#ifcfg-xxx
cd /etc/sysconfig/network-scripts
cp ifcfg-eno16777736 ifcfg-eno16777736.bak2
mv ifcfg-eno16777736 ifcfg-eno16777736.bak
dev=`nmcli d | sed -n '2p' | awk '{print $1}'`
sed -i 's/eno16777736/'${dev}'/g' ifcfg-eno16777736.bak
sed -i 's/206/'$1'/g' ifcfg-eno16777736.bak
mv ifcfg-eno16777736.bak ifcfg-${dev}
#hostname
echo s$1 > /etc/hostname
/usr/local/bin/hosts
s100
s101
s102
s103
s104
/usr/local/bin/xcall.sh
#!/bin/bash
params=[email protected]
hosts=`cat /usr/local/bin/hosts`
for h in ${hosts} ; do
tput setaf 2
echo ============= $h =============
tput setaf 7
ssh -4 $h "source /etc/profile;$params"
done
/usr/local/bin/xsync.sh
#!/bin/bash
dest=$1
file=`basename $dest`
echo file=${file}
dir=`dirname $dest`
echo dir=${dir}
cd -P ${dir}
ppath=`pwd`
echo ppath=${ppath}
xpath=${ppath}/${file}
echo xpath=${xpath}
user=`whoami`
echo user=${user}
hosts=`cat /usr/local/bin/hosts | sed -n '2,$p'`
for h in ${hosts} ; do
echo $xpath ${user}@${h}:${ppath}
done
ssh无密登录
1.生成100公私秘钥对
$>ssh-****** -t rsa -P '' -f ~/.ssh/id_rsa
2.s100将公钥添加authorized_keys文件
$>cat ~/.ssh/id_rsa.pub > ~/.ssh/authorized_keys
3.s100修改authorized_keys权限
$>chmod 644 ~/.ssh/authorized_keys
4.xcall.sh创建.ssh目录
配置hadoop的完全分布式
1.配置文件
[core-site.xml]
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://s100:8020</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/home/centos/hadoop/full</value>
</property>
</configuration>
[hdfs-site.xml]
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file://${hadoop.tmp.dir}/dfs/name1,file://${hadoop.tmp.dir}/dfs/name2</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file://${hadoop.tmp.dir}/dfs/data1,file://${hadoop.tmp.dir}/dfs/data2</value>
</property>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>s104:50090</value>
</property>
</configuration>
[mapred-site.xml]
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
[yarn-site.xml]
<configuration>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>s100</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>
[slaves]
s101
s102
s103
2.分发/etc/hosts文件和full配置目录
$>cd /soft/hadoop/etc
$>xsync full
$>sudo xsync /etc/hosts
127.0.0.1 localhost
192.168.231.100 s100
192.168.231.101 s101
192.168.231.102 s102
192.168.231.103 s103
192.168.231.104 s104
3.清除logs和本地目录
$>xcall.sh "rm -rf /soft/hadoo/logs/*"
4.格式化文件系统
$>hadoop namenode -format
5.查看进程
$>xcall.sh jps
6.webui
修改windows的dns配置
上一篇: Golang(四)语言特性(上)
下一篇: k8s使用ceph分布式存储