大数据从入门到弃坑

挂在本地yum
    mkdir /media/cdrom/
    mount /dev/cdrom  /media/cdrom/
    cd /etc/yum.repos.d/
    mkdir bak
    mv *.* bak/ 
    cd bak/
    mv CentOS-Media.repo ../
    cd ../
    vi CentOS-Media.repo
    vi 
    :i    进入编辑
    :q!    强制退出
    :w!    保存退出
    yum list 

[base]
name=RedHat
baseurl=file:///mnt/cdrom    #注:这里的baseurl就是你挂载的目录,在这里是/mnt/cdrom
enabled=1                            #注:这里的值enabled一定要为1  gpgckeck的值无所谓
gpgckeck=0
gpgkey=file:///mnt/cdrom/RPM-GPG-KEY-CentOS-7                    #注:这个你cd /mnt/cdrom/可以看到这个key,这里仅仅是个例子
安装新的编辑器
yum install nano

安装ssh
yum  install openssh-server openssh-clients

工具Xshell ssh上liunx


启动网卡
cd /etc/sysconfig/network-scripts
nano ifcfg-ens33
ONBOOT=no => ONBOOT=yes

设置固定IP
BOOTPROTO=dhcp => BOOTPROTO=static 
IPADDR=192.168.211.7 IP地址

GATEWAY=192.168.211.1 网关 
NETMASK=255.255.255.0 掩码

重启网络服务
systemctl restart network

网络工具
yum install net-tools
ifconfig ping命令

上传下载
yum install -y lrzsz
rz 上传
sz 下载


上传软件到服务器
tar -zcvf my.tar aaa/       压缩并打包
tar -xvf my.tar -C xx/xxx    解包

pwd 显示当前路径
上传 java包

配置java环境变量
export JAVA_HOME=/usr/lib/java/jdk1.8.0_11
export PATH=$PATH:$JAVA_HOME/bin
nano /etc/profile
刷新缓存
source /etc/profile

/root/bigdata/lib/hadoop-2.9.0/etc/hadoop


hadoop-env.sh
export JAVA_HOME=/root/bigdata/lib/jdk1.8.0_11

core-site.xml

<property>
<name>fs.defaultFS</name>
<value>hdfs://hdp01:9000</value>
</property>

<property>
<name>hadoop.tmp.dir</name>
<value>/home/hadoop/hdpdata</value>
</property>


hdfs-site.xml

<property>
<name>dfs.replication</name>
<value>2</value>
</property>

<property>
  <name>dfs.http.address</name>
  <value>0.0.0.0:50070</value>
</property>

不配置就是单机版
mapred-site.xml.template
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.map.memory.mb</name>
<value>512</value>
</property>
<property>
<name>mapreduce.reduce.memory.mb</name>
<value>1024</value>
</property>
配置老大
yarn-site.xml

<property>
<name>yarn.resourcemanager.hostname</name>
<value>hdp01</value>
</property>

<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>


克隆的改主机名
nano /etc/sysconfig/network
hostname hdp01

nano /etc/hosts

127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.211.7 hdp01
192.168.211.8 hdp02
192.168.211.9 hdp03


配置hadoop环境变量pwd 获取目录
/root/bigdata/lib/hadoop-2.9.0

export HADOOP_HOME=/root/bigdata/lib/hadoop-2.9.0
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
source /etc/profile
格式化hadoop
hadoop namenode -format
启动集群
hadoop-daemon.sh start namenode 
hadoop-daemon.sh start datanode 
yarn-daemon.sh start  resourcemanager

jps查看进程


systemctl stop firewalld.service #停止firewall
systemctl disable firewalld.service #禁止firewall开机启动
firewall-cmd --state #查看默认防火墙状态(关闭后显示notrunning,开启后显示running)

防火墙
nano /etc/sysconfig/iptables
service iptables restart/start/stop

8032
8042
8088
9000
50070
50010
50075



注意防火墙端口
权限不统一

hadoop fs -put 1.txt /    加入文件
hadoop fs -ls /        查看文件
hadoop fs -get /1.txt    下载文件
hadoop fs -mkdir -p /wordcount/input 建立文件夹
hadoop fs -put 1.txt 2.txt /wordcount/input 传多个

wordcount
/home/hadoop/apps/hadoop-2.9.0/share/hadoop/mapreduce
hadoop jar hadoop-mapreduce-examples-2.9.0.jar wordcount /wordcount/input /wordcount/output
hadoop jar wc.jar org.bigdata.mr.wcdemo.WordcountDriver /wordcount/input /wordcount/output
单机版
hadoop.tmp.dir下去找namenode和datanode的VERSION文件 只需要把其中一个clusterID改成相同的就可以了


/etc/hadoop/log4j.properties
log4j.logger.org.apache.hadoop.util.NativeCodeLoader=ERROR  



eclipse参数伪造
-DHADOOP_USER_NAME=hadoop


进入conf/
spark-env.sh.template

export JAVA_HOME=/usr/lib/java/jdk1.8.0_11
export SPARK_MASTER_IP=hdp01
export SPARK_MASTER_PORT=7077

slaves.template
cp slaves.template slaves
设置IP
hdp02
hdp03

/home/hadoop/bigdata/spark-2.2.1-bin-hadoop2.7/bin


export JAVA_HOME=/usr/lib/java/jdk1.8.0_11
export HADOOP_HOME=/home/hadoop/bigdata/hadoop-2.9.0
export SPARK_HOME=/home/hadoop/bigdata/spark-2.2.1-bin-hadoop2.7
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$SPARK_HOME/bin:$SPARK_HOME/sbin
$SPARK_HOME/sbin/start-all.sh
nano /etc/selinux/config  
SELINUX=disabled  

全部环境变量
nano /etc/profile

export JAVA_HOME=/root/bigdata/lib/jdk1.8.0_11
export HADOOP_HOME=/root/bigdata/lib/hadoop-2.9.0
export SPARK_HOME=/root/bigdata/lib/spark-2.2.1-bin-hadoop2.7   
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$HADOOP_HOME/sbin:$SPARK_HOME/bin:$SPARK_HOME/sbin

source /etc/profile


pyspark 转换 .map(...)转换,每一行的转换 .filter(...)查询 .flatMap(...)转换,和map不同返回一个扁平结果 .distinct(...)转换,高开销去重 .sample(...)随机采样 (False,
0.1,6666) 是否替换,抽样10%,随机种子 .Join(...) .leftOuterJoin(...)连接查询 .instrsection(...)匹配相等部分 .repartition(...) 谨慎使用会更改分区 操作 .take(n)取前几行 .collect(...)返回所有谨慎使用 .reduce(...)使用指定方法过滤数据 .count(...)统计元素数量 .saveAsTextFile(...)保存文件 .foreach(...)一个接一个遍历元素,适合把数据保存到默认不支持的数据库 缓存 .cache() DataFrame json=spark.read.json(....)读取格式化数据 json.createOrReplaceTempView("json")创建零时表 DataFrameAPI查询 .show(n)查询前n行 .sql(...).collect()使用sql语句查询数据,这里可以使用.collect() .show(n) .take(n)非小数据时不建议使用.collect() 指定模式 .printSchema()查看字段类型(模式定义) 导入 from pyspark.sql.types import * stringCSVRDD=sc.parallelize([(123,'Katie',19,'brown')]) schema=StructType([StructField("id",LongType(),True)]) spark.createDataFrame(stringCSVRDD,schema) 利用 StructType和StructField定义类型,多数情况下我们不需要使用指定模式,使用默认的推断模式 利用DataFrameAPI查询 .collect() .show() .take() .count() .filter() 筛选子句 例句: csv.select("id","age").filter("age=22").show() csv.select(csv.id,csv.age,csv.name).filter(csv.age==22).show() csv.select("name","eyeColor","age").filter("eyeColor like 'b%'").show() 利用Sql查询 spark.sql() 例句: spark.sql("select count(0) from csv").show() spark.sql("select id,age from csv where age=22").show() spark.sql("select id,age,name,eyeColor from csv where eyeColor like 'b%'").show() 读取文件数据可以读取任何可以分割的序列数据 spark.read.csv(airportFilePath,header='true',inferSchema='true',sep='\t') .cache()缓存 数据建模 检查数据重复 df.count() 和 df.distinct().count()比较 df.dropDuplicates() 移除相同的行 df.select([c for c in df.columns if c!='id']).distinct().count() 不包含某列的查重 df.dropDuplicates(subset=[c for c in df.columns if c!='id']) 去除不包含某列的重复 查找相同数据 import pyspark.sql.functions as fn df.agg() df.agg( fn.count('id').alias('count'), fn.countDistinct('id').alias('distinct') ).show() 重新分配个新ID df.withColumn('new_id',fn.monotonically_increasing_id()).show() 熟悉你的数据 http://spark.apache.org/docs/latest/api/python/pyspark.sql.html#module-pyspark.sql.types。 描述性统计 import pyspark.sql.types as typ 聚合函数如下 avg()、count()、countDistinct()、first() kurtosis()、max()、mean()、min()、skewness()、stddev()、 stddev_pop()、stddev_samp()、sum()、sumDistinct()、 var_pop()、var_samp()和 variance()。 可视化 import matplotlib.pyplot as plt 数据达到数量级别是没法直接显示,首先得聚合

猜你喜欢

转载自www.cnblogs.com/ruralcraftsman/p/11387625.html